问题标签 [arcpy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何在 Python 中从负时代创建日期时间
StackExchange 上的第一个计时器。
我正在使用 ArcGIS Server 和 Python。在尝试使用 REST 端点对地图服务执行查询时,我在 JSON 响应的负纪元中获取了 esriFieldTypeDate 字段的值。JSON 响应如下所示:
我所指的字段是上述 JSON 中的“TRACK_DATE”。ArcGIS Server 返回的值始终以纪元以来的毫秒数为单位。ArcGIS Server 还提供 HTML 响应,并且同一查询的 TRACK_DATE 字段显示为“TRACK_DATE: 1851/06/27 00:00:00 UTC”。
所以,日期是 1900 年之前,我知道 Python 内置的 datetime 模块无法处理 1900 年之前的日期。我使用的是 32 位 Python v2.6。我正在尝试通过使用将其转换为日期时间
datetime.datetime.utcfromtimestamp(float(-3739996800000)/1000)
但是,这失败了
在 Python 2.6 中如何处理 1900 年以前的负数时代?我看过类似的帖子,但找不到解释如何处理负面时期的帖子。
matplotlib - matplotlib summary plot per record
I need to create a summary plot of a single parameter for each record in my database. Using the code below, I have managed to create a subplot for each record (5 in test database, ArcGIS 10.0 file geodatabase, Python 2.6.5, Matplotlib 1.0.0), but each subplot is identical. I have searched through the forum examples of summary plots/reports, subplot syntax, and looping techniques in my attempt to identify the proper syntax. I expect that my issue is an improper loop syntax, since I am plotting all records per plot instead of the desired one record per plot. After I resolve this basic plotting issues, I plan to expand the scope of my code to include 10-15 parameters per plot, 3-4 plots total, and some general summary information, all on a single page pdf per record. I am working with a few thousand records in total.
This is my first post on Stack Overflow. The forum has been an extremely helpful resource to me on numerous occasions over the past year. I am new to python and brand-new to using matplotlib, but I see the enormous potential of the language and this library. Any help or suggestions are much appreciated!
matplotlib - matplotlib 散点图在循环中使用轴对象
我无法使用 Matplotlib 在循环中绘制多个系列(Matplotlib 1.0.0、Python 2.6.5、ArcGIS 10.0)。论坛研究向我指出了 Axes 对象的应用,以便在同一个图上绘制多个系列。我看到这对于在循环之外生成的数据(示例脚本)非常有效,但是当我插入相同的语法并将第二个系列添加到从数据库中提取数据的循环中时,我收到以下错误:
“:不支持的操作数类型 -:'NoneType' 和 'NoneType' 无法执行 (ChartAge8)。”
以下是我的代码 - 任何建议或意见都非常感谢!
gis - 在 PostGIS / Netezza / 任何其他开源中寻找 ArcGIS 等效功能
我正在寻找下面提到的带有 PostGIS/Netezza/任何其他开源的 ArcGIS 功能。
- gp.Dissolve_management()
- gp.FeatureEnvelopeToPolygon_management()
- gp.FeatureToPoint_management()
如何在 PostGIS 中实现相同的功能?
任何想法?
提前致谢。
达梅什
python - 对二维数组中的值进行排名
嗨,基本上我想输入一个二维数组,然后创建一个新的排名数组,其值从最低到最高。
我使用的数组是转换为 numpyarray 的高程栅格。这个数组有一个海拔值。我只想按海拔排序。下面是我对代码的了解程度,但它并没有生成我想要的!
谢谢你的帮助!
补充说明:
我想对数组中包含的所有值从最大值到最小值进行排序,但要保持数组的索引和形状。
即,如果有 100 个值,则最高值(海拔)将是 1 级,而最低的 100 级!
python - 带有 if 语句的 Python for 循环
此代码将用于附加了栅格像元计数的多边形数据。例如,如果栅格是土地覆被,则每个土地覆被类型和每个多边形内的相应像元计数都有一个列。此输出来自地理空间建模环境,因为制表栅格不断在我正在使用的大型 shapefile 上崩溃。最终我想要一个面积值,而不是单元格计数,这是下面的代码将实现的。
因此代码将遍历 shapefile 属性,提取原始计数字段,然后根据用户输入创建新字段(通过 AddField 循环使用用户输入名称 + 栅格值以获取新字段名称),然后遍历原始字段的值并为新字段计算用户指定的面积值。本质上,我正在尝试自动化添加字段,计算字段模型,我通常在模型生成器中进行批处理。
我无法弄清楚计算新字段的正确逻辑。正如现在所写的那样,它使用 for 循环获取原始字段,但最终只使用最后一个原始字段值,并且只填充最后一个新字段。我需要循环获取第一个原始字段并将其放入相应的新字段中,例如:
如果 origFields = ('NLCDV1', 'NLCDV2'...) 和 addedFields = ('KM2_LC1', 'KM2_LC2'...) 那么 addField 计算将以适当的值结束: 'KM2_LC1' = convert (其中 convert = !NLCDV1! * cell) 'KM2_LC2' = convert (convert = !NLCDV2! * cell) 等等所有可能存在的值。
我只需要弄清楚如何获取相应的原始字段以匹配新添加的字段。我正在考虑使用 zip(origField, addedField, calcs) 之类的东西。当我这样做时,它给了我以下输出:
这些行正是我所需要的,但我不确定是否可以使用这样的输出来填充字段,即使可以使用它们,我也是 python 新手,对 zip 非常陌生,所以我不知道如何使用它们。
任何有关逻辑的帮助将不胜感激,欢迎任何有关清理/重新排序的建议。就像我说的,当这一切都说完后,我还是个新手。一旦我有了逻辑,我就可以走了!感谢您的关注,如果我的代码过于复杂,我们深表歉意(如果是这种情况,也不会感到惊讶)。
python - ArcPy Python 脚本 - 运行时错误:错误 010240:无法使用输出格式 GRID 将栅格数据集保存到 C:\L_B2dpy
我正在使用 python 和 arcpy 编写一个脚本来处理 Landsat 卫星图像。每次在同一位置出现错误的脚本接近尾声。一次成功运行代码后出现错误(即同一任务第二次出现错误)
我将 env.overwriteOutput 设置为 True 所以这不是问题。
我把这段代码给了一个朋友运行,他们让它处理这个代码块的所有 4 次出现,但他们的输出是空白的。我还使用了修改后的脚本(更改了一些路径条目)并在与第一个相同的位置得到了这个错误:
exceptions.EOFError:[Errno 10054] 现有连接被远程主机强行关闭
这个错误使 python 和编辑器崩溃。
该脚本会为第一次运行生成一个格网,但第二次运行会创建一个在 ArcGIS 中不可读的格网。
我正在使用具有 8 GB RAM 的 Mac 上的 Windows 虚拟机(并行)工作。虚拟机正在使用 4 GB 的 RAM。
我不知道发生了什么或如何调试它!任何帮助将非常感激。
解决方法 = 我通过将输出保存为 TIF 图像而不是光栅文件找到了解决方法。
python - ArcGIS 更新坐标的更新光标命令,但坐标位置未更新?
我正在编写一个脚本来允许用户输入坐标来更新一个点的位置。
脚本“有效”;也就是说,我最后创建的 shapefile 包含新坐标来代替旧坐标。但是,当我将新 shapefile 拖到 ArcMap 屏幕中时,该点会转到旧坐标的位置,即使属性表正在显示新坐标。
有什么想法吗?谢谢!
python - 在 Python while 循环中使用 =rand(between) 拉取 excel 表,并将结果导出为 .dbf
作为我的问题的序言:我对堆栈溢出很陌生,对 Python 也比较陌生。
我正在建立敏感性分析。我正在处理 0.1 - 1 范围内的 40 个参数。我的分析需要同时将这些参数更改 +-0.1 大约 ~500 次。然后将这些值输入到 ArcGIS 工具中。所以,对于 40 个参数,我需要 500 组随机值。然后将这些参数值与工具的输出进行比较,以查看模型对哪些参数最敏感。我设置了一个 Excel 表,每次打开时都会随机计算这些值,但问题是它们需要采用 .dbf 格式才能被 ArcGIS 工具读取。
我已经设置了一个 while 循环(开始 10 次迭代,但需要大约 500 次)并尝试了两种不同的方法,希望我可以自动化调用 .xls 以生成随机数,然后将其导出的过程到.dbf。
第一个,arcpy.CopyRows_management 正确导出到 .dbf。问题是每次迭代的输出都完全相同,而不是具有 0.1、0.2、0.3 等值,而是包含 0.22、0.37、0.68 等值。即使那是在 .xls 中的公式中指定。
我也尝试了 arcpy.TabletoTable_conversion 但那是抛出 ERROR 999999: Error execution function。
我愿意接受各种建议。也许有一种更简单的方法可以在 Python 中随机抽样并将结果导出到 .dbf。这不需要使用 arcpy 来完成,但这就是我真正使用过的全部。我非常感谢提供的任何帮助!谢谢你的时间。
python - python-要素类属性操作
有没有办法从要素类中删除所有属性,然后从现有要素类中添加新属性?我有一个指向特定路径的应用程序,但是它所代表的数据会定期从第三方来源更新,我必须下载更新的要素类。如果我只是将新的加载到旧的中,我会有重复的。我正在尝试使用 Python 2.6 自动化整个过程。