c语言中if循环语句,c语言if循环用法

  c语言中if循环语句,c语言if循环用法

  此代码用于附加了网格像素数的多边形数据。例如,如果格网是土地覆被,则每种土地覆被类型都有一列,每个面中都有相应数量的像素。这个输出来自地理建模环境,因为选项卡网格破坏了我使用的大形状文件。最后我要的是面积值而不是单元格个数,用下面的代码就可以实现。

  因此,代码将遍历shapefile属性,提取原始计数字段,然后根据用户输入创建一个新字段。使用用户输入名称网格值在AddField中循环,以获取新的字段名称。然后遍历原始字段的值,并计算新字段的用户指定的面积值。本质上,我试图自动化“添加字段”和“计算字段”模型,它们通常由模型开发人员进行批处理。

  我费了好大劲才弄清楚计算新字段的正确逻辑。正如我刚刚写的,我使用for循环来获取原始字段,但是最后只使用了最后一个原始字段值,并且只输入了最后一个新字段。您必须循环获取第一个原始字段,并将其放在适当的新字段中。示例:

  If origFields=(NLCDV1 , NLCDV2 。)和addedFields=(KM2_LC1 , KM2_LC2 。),addField计算以适当的值结束。km2\ NLCDV1!*单位(KM2_LC2=)=换算(换算(!NLCDV2!*单位),同样,对于所有可能的值。

  # user inputs desired final units,loopthrough to find the desired units and calculates the new fields .

  unit=arcpy . getparameterastext(7)#必须是:平方米,平方公里,英亩,公顷,平方英里或平方英尺.

  # usermustnoworiginalunitsofraster,必须以米或英尺为单位!

  对于原始字段中的字段:

  如果rastunit==米:

  # tomakesquaremetersfinalareaunit .

  if unit==SqMeter :

  arcpy . calculate field _ management(输入池,添加字段,变换, PYTHON_9.3 ))

  # to convertssquaremetersintosquarekilometers .

  elif unit==SqKm :

  arcpy . calculate field _ management(输入池,addField,转换sqmsqkm, PYTHON_9.3 ))

  # to convertssquaremetersintoacres .

  elif单位==英亩:

  arcpy . calculate field _ management(输入池,addField,转换sqmac, PYTHON_9.3 ))

  # to convertssquaremetersintohectares .

  elif单位==公顷:

  arcpy . calculate field _ management(输入池,addField,转换sqmhec, PYTHON_9.3 ))

  # to convertpsquaremetersintosquaremiles .

  elif unit==SqMi :

  arcpy . calculate field _ management(输入池,addField,转换sqmsqmi, PYTHON_9.3 ))

  # to convertssquaremetersintosquarefeet .

  elif unit==SqFt :

  arcpy . calculate field _ management(输入池,添加字段,转换sqmsqft, PYTHON_9.3 ))

  否则:

  printarcpy.add警告( ineligibleunitprovided。)

  elif rastunit==Foot_US :

  #以平方英尺作为最终面积单位.

  if unit==SqFt :

  arcpy . calculate field _ management(输入池,添加字段,变换, PYTHON_9.3 ))

  否则:

  print thirasterhasteshe下列单位: rast单位。如果没有,请重新投影光栅。

  只需解释如何让相应的原始字段与新添加的字段相匹配。我们正在考虑使用定向字段(zip)、添加字段、调用(calcs)等。我这样做,它给我以下输出:

  (uNLCDV1 , KM2_LC1 ,!NLCDV1!* 900.0 )

  (uNLCDV2 , KM2_LC2 ,!NLCDV2!* 900.0 )

  (uNLCDV3 , KM2_LC3 ,!NLCDV3!* 900.0 )

  (uNLCDV4 , KM2_LC4 ,!NLCDV4!* 900.0 )

  (uNLCDV5 , KM2_LC5 ,!NLCDV5!* 900.0 )

  (uNLCDV7 , KM2_LC7 ,!NLCDV7!* 900.0 )

  (uNLCDV8 , KM2_LC8 ,!NLCDV8!* 900.0 )

  (uNLCDV9 , KM2_LC9 ,!NLCDV9!* 900.0 )

  这些行是我需要的,但我不知道这样的输出是否可以用于输入字段。就算能用,也不知道是python还是zip,所以不知道怎么用。

  感谢逻辑支持。欢迎您对清洁/分类提出建议。就像我说的,当这一切结束后,我还是个初学者。如果能顺理成章,我会很开心!谢谢你的确认。如果我的代码太复杂,我很抱歉(在这种情况下,请不要感到惊讶)。

  解决办法

  我不知道我是否还理解你的要求,但它可能是有用的:

  Origfields=(uNLCdv1 ,uNLCDV2 ,uNLCDV3 ))

  addedFields=(KM2_LC1 , KM2_LC2 , KM2_LC3 )

  calcs=()!NLCDV1!* 900.0 ,!NLCDV2!* 900.0 ,!NLCDV3!* 900.0 )

  对于orig、added、calcinzip(Origfields、addedFields、calcs):

  打印“{ 0!r}、{!r}、{!r}”。格式(原始,添加,计算).

  输出:

   uNLCDV1 , KM2_LC1 ,!NLCDV1!* 900.0

  uNLCDV2 , KM2_LC2 ,!NLCDV2!* 900.0

   uNLCDV3 , KM2_LC3 ,!NLCDV3!* 900.0

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • 详解c语言中的字符串数组是什么,详解c语言中的字符串数组结构,详解C语言中的字符串数组
  • 表达式求值c++实现,c语言实现表达式求值
  • 看懂c语言基本语法,C语言详解,C语言的基本语法详解
  • 用c语言实现快速排序算法,排序算法设计与实现快速排序C语言,C语言实现快速排序算法实例
  • 深入解析c语言中函数指针的定义与使用方法,深入解析c语言中函数指针的定义与使用情况,深入解析C语言中函数指针的定义与使用
  • 描述E-R图,E-R图举例,关于C语言中E-R图的详解
  • 折半查找法C语言,折半查找算法(算法设计题)
  • 折半查找法C语言,c语言折半法查找数据,C语言实现折半查找法(二分法)
  • 扫雷小游戏c++代码设计,c语言扫雷游戏源代码,C语言实现扫雷小游戏详细代码
  • 怎样统计程序代码行数,C语言统计行数,C#程序员统计自己的代码行数
  • 基于c语言的贪吃蛇游戏程序设计,用c语言编写贪吃蛇游戏程序,C语言实现简单的贪吃蛇游戏
  • 图的两种遍历算法,图的遍历算法代码c语言,Python算法之图的遍历
  • 留言与评论(共有 条评论)
       
    验证码: