如何在Anaconda'安装的Spyder中使用arcpy模块?
我最近安装了Anaconda的Python发行版,其中包括Spyder IDE.我有兴趣在Spyder中导入ArcGis 10.3 arcpy模块.不幸的是,运行import arcpy会导致以下错误: import arcpy Traceback (most recent call last): File "", line 1, in import arcpy File "C:\Program Files (x86)\ArcGIS\Desktop10.3\arcpy\arcpy\__init__.py", line 21, in from arcpy.geoprocessing import gp File "C:\Program Files (x86)\ArcGIS\Desktop10.3\arcpy\arcpy\geoprocessing\__in
4 2024-01-26
编程技术问答社区
不能在Jupyter笔记本中安装arcpy
我已经安装了Arcgis Pro,其中包括已安装的Python软件包.我正在尝试学习Python,并想使用Arcpy功能.我以前从未使用过jupyter笔记本电脑,但是为了开始,我创建了一个新的python 3文件.我输入了安装arcpy的代码,但收到了一个错误. pip install arcpy ERROR: Could not find a version that satisfies the requirement arcpy (from versions: none) ERROR: No matching distribution found for arcpy import arcpy ModuleNotFoundError: No module named 'arcpy' 我知道我在某个地方缺少链接,而且我猜这与环境有关.如何引用我的Arcgis Pro Program文件中安装的arcpy软件包? 解决方案 使用"非arcgis pro" conda
0 2024-01-26
编程技术问答社区
使用Python 2.7.5将文件夹中的所有压缩文件解压到同一文件夹中
我想编写一个简单的脚本以遍历文件夹中的所有文件,然后解压缩那些被拉开的文件(.zip)到同一文件夹.对于这个项目,我有一个文件夹,其中包含近100个zpipted .las文件,我希望有一种简单的方法来解压缩它们.我尝试以下脚本 import os, zipfile folder = 'D:/GISData/LiDAR/SomeFolder' extension = ".zip" for item in os.listdir(folder): if item.endswith(extension): zipfile.ZipFile.extract(item) 但是,当我运行脚本时,我会收到以下错误: Traceback (most recent call last): File "D:/GISData/Tools/MO_Tools/BatchUnzip.py", line 10, in extract = zipf
4 2023-12-26
编程技术问答社区
wxPython和ARCGIS
我正在使用WX Python构建的桌面应用程序.我希望应用程序像GIS软件一样可视化地图(Shapefiles),并提供与地图的交互.我正在浏览Arcpy和Arcgissripting,但我不确定它是否可以帮助我在面板上渲染Shapefile.请让我知道是否可能? 解决方案 有一个使用wxpython为GIS创建的应用程序: http://thuban.intevation.org/ 也有一个用于草:基于_gui_for_grass 您可能至少可以将这些用作起始地点. 其他解决方案 Arcgis具有自己的渲染引擎.您需要为Arcgis Explorer或付费版本ARCMAP创建一个Arcpy工具或脚本或附加功能.您还可以考虑为其ArcGIS运行时制作Arcpy工具,脚本或加载项.
2 2023-12-15
编程技术问答社区
追加到一个元组,覆盖之前的值
我正在使用Arcpy来获取形状文件的所有多聚线. SearchCursor返回光标,以便我可以在形状文件的所有功能上迭代.问题是我要保存光标返回的所有对象以供以后使用. import arcpy from arcpy import env env.workspace = r"C:\GIS Data\GIS data" desc = arcpy.Describe("River.shp") shapefieldname = desc.ShapeFieldName rows = arcpy.SearchCursor("River.shp") featureList = () for row in rows: feat = row.getValue(shapefieldname) featureList = featureList + (feat, ) print "%i %i" % (featureList[-1].firstPoint.X, fea
8 2023-10-27
编程技术问答社区
将arcpy模块导入anaconda'的Spyder中
我想将Arcpy用于Anaconda的Spyder.我有完整的ArcGIS许可证,因此这不是问题. I am able to semi-import the module by way of copying the the arcpy folder out of C:\Program Files (x86)\ArcGIS\Desktop10.1\arcpy and into C:\Anaconda\Lib\site-packages, but the导入永远不会完成,因为我遇到了" Importerror:No模块adcgissCripting"的错误.有什么办法让Arcpy在Spyder中工作? 解决方案 这是您需要做的: 如上所述,打开Arcgis中的Python窗口noreferrer">此处 在其中运行这两个命令: import sys sys.executable 复制最后一个命令的输出 打开Spyder,转到 Tools >
8 2023-09-15
编程技术问答社区
2D数组中的排名值
HI基本上我想输入一个2D数组,然后创建一个新排名的数组,其值从最低到最高. 我使用的阵列是一个高程栅格转换为numpyarray.该阵列具有高程的值.我只想按海拔排序.以下是我在代码方面走了多远,但没有生成我想要的! import arcpy import numpy array = arcpy.RasterToNumPyArray(r"C:\Current\SedMod\SedModv3\TestModel.gdb\Smallprepfin_Clip") order = array.argsort() ranks = order.argsort() print ranks 感谢您的帮助! 其他澄清: 我想将数组中包含的所有值从最高值到最低值,但要保持数组的索引和形状. 即,如果有100个值,则最高值(高程)为等级1,最低等级为100! 解决方案 这样的事情怎么样: >>> a array([[ 0.76303184, 0.177
8 2023-09-07
编程技术问答社区
如何使用空间掩码限制光栅处理范围?
我试图将MATLAB中的栅格处理限制在Shapefile边界内仅包含区域,类似于ArcGIS空间分析师功能的使用方式 mask .这是我正在使用的一些(可重现的)样本数据: a a 研究区域边界的shapefile 这是我用来计算的MATLAB脚本"> ndvi : file = 'C:\path\to\doi1m2011_41111h4nw_usda.tif'; [I R] = geotiffread(file); outputdir = 'C:\output\' % Calculate NDVI NIR = im2single(I(:,:,4)); red = im2single(I(:,:,1)); ndvi = (NIR - red) ./ (NIR + red); double(ndvi); imshow(ndvi,'DisplayRange',[-1 1]); % Stretch to 0 - 255 and convert to 8-bit unsi
8 2023-08-31
编程技术问答社区
检查 Sphinx doc 是否调用了脚本
我目前正在尝试为使用Arcgis Arcpy库的脚本生成sphinx文档. 当Sphinx在生成文档时试图运行脚本时,我正在遇到问题,因为Arcpy脚本从Arcgis GUI中获取输入参数.由于Sphinx正在调用没有GUI的脚本,因此这些参数是空的,并且引起了追溯: C:\VersionControl\PythonScripts\Source\src\_build\script_export_pdf.rst:4: WARNING: autodoc: failed to import module u'gis.scripts.script_export_pdf'; the following exception was raised: Traceback (most recent call last): File "C:\VersionControl\PythonScripts\Source\src\lib\Python27\ArcGIS10.1\lib\site
4 2023-07-25
编程技术问答社区
如何识别我的 python 代码在哪里创建了临时文件?
在我的Python代码中,我使用了多个库,例如Pathos,Arcpy和Numpy.但是,每次我运行代码时,驱动器C的约0.5 GB的可用空间都会减少,尽管Python文件在另一个驱动器上.看来代码生成了临时文件.现在,我的驱动器C没有任何自由空间,因此,代码执行在OSError: [Errno 28] No space left on device中导致.我检查了驱动器C上的所有临时文件夹,但其中的所有临时文件夹的音量很大.我的问题是,有什么方法可以识别在执行代码期间写入文件以找到不需要的临时文件的方向的方向? 我的操作系统是Windows 10,我使用Python 2.7. 解决方案 在命令提示符上键入echo%temp%,它应该提供临时目录的位置. 您可以通过在开始菜单中键入系统和在系统窗口上单击Advance System设置,请打开系统属性对话框,在此对话框中选择环境变量,并仔细将temp环境变量更改为其他驱动器位置的位置,请按照系统窗口设置来更改临时目录的
26 2023-07-22
编程技术问答社区
arcpy 中同一数据集中所有对象的重叠 (st_overlaps)
R软件包sf在标题"几何二进制谓词"下具有一组惊人的功能,这些功能详细描述如该链接中所述,如果仅提供一个sf -Object(请参见下面的示例),将函数递归应用于所有几何 如果缺少y,st_predicate(x, x)被有效地称为st_predicate(x, x),并用对角元素返回方形矩阵st_predicate(x[i], x[i]). 现在,我正在构建一些我从Arcgis arcpy的工具.在同一数据集中获得所有功能的正方形矩阵的快速方法是什么,指示各自的功能是否重叠? arcpy.SpatialJoin_analysis()仅比较两个数据集和arcpy.GenerateNearTable_analysis()以及arcpy.Near_analysis()仅计算特征之间的距离. 这是st_overlaps()在R中工作的方式: library(sf) #> Warning: Paket 'sf' wurde unter R Version 3.5.2
18 2023-07-22
编程技术问答社区
创建一个循环,从两个文件夹中提取相同的名称对?
一个主文件夹,其中一个名为old的文件夹,另一个称为new 旧的有一些文件夹.新的有一些这些文件夹,其名称相同,仅此而已. 我想删除old的文件夹,这些文件夹首先不存在,然后:制作一个循环,将每个文件列为" same -same name -pair",然后将其放入 以下行: arcpy.Append_management(["shpfromonefolder.shp", "shpfromsecondfolder.shp"],"NO_TEST") 例如:从一个文件夹中的一个文件夹中的land.shp land.shp来自另一个文件夹,所以它将是: arcpy.Append_management(["land.shp", "land.shp"],"NO_TEST") 解决方案 这将在old_path中删除文件夹,如果它们的存在不在new_path中: import os import shutil old_path = r"old file pat
12 2023-07-22
编程技术问答社区
arcpy + multiprocessing:错误:无法保存光栅数据集
我正在用arcpy在栅格上进行一些数字处理,并想使用multiprocessing软件包来加快速度.基本上,我需要循环浏览元组列表,使用每个元组进行一些栅格计算,然后将一些输出写入文件.我的输入包括一个数据栅格(测深),一个定义区域的栅格和两个浮子的元组(水面高度,深度).我的过程由一个函数computeplane组成,该功能computeplane进行元组并运行一系列的栅格计算,以产生五个射手(总,沿沿岸,表面,地下,涂鸦),然后将这些rasters的功能processtable调用使用arcpy.sa.ZonalStatisticsAsTable将值写入DBF,使用arcpy.AddField_management添加一些字段,使用arcpy.TableToTable_conversion将DBF转换为CSV,最后使用arcpy.Delete_management. 删除DBF文件 基于某些>其他如此的帖子,我已经用main()包装了代码,以便multiprocessing.Po
10 2023-07-21
编程技术问答社区
字典语法错误 "can't assign to function call" (不能赋值给函数调用)
我正在尝试使用以下代码找到" Cruderate"及其关联的" state_name"的最大值: import arcpy arcpy.env.workspace = "C:\\" shp = r"C:\\USCancer2000.dbf" rows = arcpy.SearchCursor(shp) CrudeRate = "CrudeRate" State_name = "State_name" out_dict = {} for row in rows: for C in CrudeRate: lst = [] if row.CrudeRate == C: lst.append(row.CrudeRate) out_dict(C) = max(lst) del row,rows for CrudeRate in out_dict: print(CrudeRate, State_name
12 2023-07-17
编程技术问答社区
我在哪里以及如何安装 ArcPy for Python 2.7?
我已经检查了 Pythonlibs/,这些逻辑场所都无法下载Arcpy进行安装.我还尝试了PIP安装Arcpy.没有什么可用. 解决方案 Arcpy是ArcGI的一部分,它不是免费软件.您需要获得Arcgis使用Arcpy的许可. 如果不是一个选项,请考虑开源选项,例如GDAL和许多其他选择.
34 2023-07-12
编程技术问答社区
为什么在'__main__'中导入模块不允许多进程使用模块?
我已经通过将导入转移到顶级声明中解决了问题,但是这让我想知道:为什么我不能在'__main__'中使用的模块在multiprocessing> multiprocessing的函数中导入的模块? 例如: import os import multiprocessing as mp def run(in_file, out_dir, out_q): arcpy.RaterToPolygon_conversion(in_file, out_dir, "NO_SIMPIFY", "Value") status = str("Done with "+os.path.basename(in_file)) out_q.put(status, block=False) if __name__ == '__main__': raw_input("Program may hang, press Enter to import ArcPy...") i
16 2023-07-11
编程技术问答社区
AttributeError: 'DataFrame' object has no attribute 'allah1__27'
我正在尝试解决这个问题,而且我很确定代码是正确的,但它会遇到同样的错误. 我尝试了以下方法: import datetime from datetime import datetime as datet test_df = shapefile.copy() test_df['timestamp'] = prediction_time test_df['allah1__27'] = shapefile.allah1__27.astype('int64') test_df['hour'] = prediction_time.hour test_df['weekday'] = prediction_time.weekday() test_df['month'] = prediction_time.month def add_join_key(df): df['join_key'] = df.allah1__27.map(int).map(str)+df.timestamp
12 2023-07-11
编程技术问答社区
错误: 在与Python迭代过程中出现非类型错误
我创建了一个工作代码,以将GPX文件转换为ArcGI中的特征类.不幸的是,我遇到了一个已损坏或加密的文件(我真的不知道).我想为这些文件创建一个例外,因为可能还有更多,并且我不希望这些文件中断漫长的过程.我试图使用Python的尝试和除外创建一个异常,但是现在我发现了第15行的错误" typeError:'nontype'bocke是不可能的",这是for循环.对我的代码的简短说明:首先,我设置并制作要转换文件的名称.然后它们进行了转换,我加入了一个计数器,因为我正在转换数千个文件.将转换后的文件放入列表中,然后在合并中使用该列表,以在地理数据库中创建一个大功能类.对于无法转换的文件,我希望代码使用arcpy.addmessage()给我文件的名称,然后转到其他文件.你有什么想法?这是我的代码: import arcpy import datetime from arcpy import env arcpy.env.overwriteOutput = True gpxFolder
22 2023-07-11
编程技术问答社区
如何计算一个日期在列表中出现的次数?
所以我有一个问题.我正在尝试创建一个脚本,该脚本将查看Arcmap中的一层(我们使用10.2.2)创建一个CSV文件,对于最终输出,该文件将具有技术人员的名称和他们在特定日期查看的片段数量.为此,我认为我需要创建一个特定于每个技术人员的字典,并将日期作为钥匙,以及它作为值的次数. 这就是我被卡住的地方.我如何创建一个词典来计算日期出现的次数? 到目前为止,我包括了我的代码,并且我损失了去哪里,或者我甚至在正确的路上.另外,我不确定如何使用我需要的所有三列(名称,日期,计数)制作CSV文件. import arcpy, datetime from arcpy import mapping from datetime import datetime # pass layer to script mxd = mapping.MapDocument("C:\\Users\\eschlueter\\Desktop\\test\\test.mxd") layers = mappi
14 2023-07-10
编程技术问答社区