arcgisforpython
❶ 谁有python for arcgis的函数集啊必当重谢
Python是一种编程语言,话说是发展势头比较好的语言。arcgis有些内容需要用到编程的东西专,所以属会有Java虚拟机、Python啥的,学GIS的应该都会学基于arcgis server的Java/C# 开发吧。arcgis本身可能也有些组件是Python写的,所以有安装时会同时安装Python。如果电脑里原来有安装Python,则可以不装。
❷ 如何用Arcgis里的Python进行批处理
目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图片编辑软件Photoshop的,用来批版量处理图片的脚本;
而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。更复杂的情况,需要使用if、for、goto等命令控制程式的运行过程,如同C、Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批权处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。
❸ 如何在安装arcgis 10.0之后安装pythonwin 2.6 for win64
ArcGIS 10 安装后,默认会为我们安装python2.6,但是在使用Python IDLE的时候,可能会碰到无法导入arcpy的问题。安装pythonWin 之后,也可能碰到pythonWin崩溃的问题。导致这些问题的关键点在哪?安装python2.6和pythonwin的具体流程如何?在这里,总结一下解决这些问题的关键点和具体操作流程。
python 安装的关键点:
1、安装目录一定要是C:\Python2.6\ArcGIS10.0 或C:\Python26\ArcGIS10.0
默认安装python2.6时是不会带着ArcGIS10.0这一级目录的,这样就会出错,导致IDLE中无法引用arcpy。
2、配置Desktop10.pth文件,将文件放置到C:\Python2.6\ArcGIS10.0\Lib\site-packages目录
3、pythonWin 2.6.2安装后,可能有bug, 运行任何python 命令,pythonwin都会崩掉。bug说明:NIM059899 - PythonWin crashes when running commands from the i..
修复办法:下载scintilla.dll,替换掉C:\Python2.6\ArcGIS10.0\Lib\site-packages\pythonwin目录下的scintilla.dll。scintilla.dll的下载地址:scintilla.dll download。
具体安装流程:
1、安装deskop安装光盘上的python-2.6.5.msi,默认安装文件位于:安装光盘\Desktop\Python。切记安装目录要指定到C:\Python2.6\ArcGIS10.0;
2、安装numpy-1.3.0-win32-superpack-python2.6.exe,安装目录按默认即可。
3、安装pythonWin, 默认安装文件位于:安装光盘\Desktop\PythonWin。安装目录默认会指定到C:\Python2.6\ArcGIS10.0\Lib\site-packages,这个不需要更改。
4、在C:\Python2.6\ArcGIS10.0\Lib\site-packages目录下创建Desktop10.pth文件,用文本编辑器打开,里面填上下列三行:
C:\Program Files (x86)\ArcGIS\Desktop10.0\Bin
C:\Program Files (x86)\ArcGIS\Desktop10.0\arcpy
C:\Program Files (x86)\ArcGIS\Desktop10.0\ArcToolbox\Scripts
5、下载scintilla.dll文件,替换掉C:\Python2.6\ArcGIS10.0\Lib\site-packages\pythonwin目录下的scintilla.dll。
❹ 如何在ArcGIS for Desktop中实现批量任务
ModelBuilder 是 ArcGIS for Desktop
产品中最可爱的功能之一,它可以尽可能免代码地将我们从重复劳动中解放出来。使用 ModelBuilder
的过程常常被比喻为“搭积木”,我们只需要拿着 ArcGIS for Desktop 中为我们提供的“积木”去搭建满足于自己的特定工作流模型。
再打个比方,我们要实现的某个功能比作是自己做面包。首先要准备食材,例如面粉、牛奶、鸡蛋、黄油、糖、盐、酵母,类比为 地理数据; 食材齐备了,就可以顺序开始和面、发酵、烘焙,这些工作由特定的器具承担,例如各种烘焙工具、烤箱,就好比ArcGIS提供的 工具,例如 ArcToolbox中的工具们; 面包制作过程中可以根据自己口味,规定发酵时间、控制糖和盐的多少等,这就类比为工具的自定义 参数 。
如果自己享受整个烘焙的过程,不厌其烦地面面俱到,那大可维持现状;可是如果你觉得做面包是个体力活,你只是想吃到自家面包,而希望把做面包的过程“外包”出去,那么面包机的市场就来了。这篇blog就和大家说说如何制作“面包机”。
1 明确需求
我们从一个简单常见的实例开始……
需求:现有一些表示各种研究对象的地理数据,小明希望把所有研究数据变换到需要的坐标系统,并且全部裁剪至研究范围。
如果只有一份数据,小明会不假思索的找到 ArcToolbox中的 Project和Clip工具,顺序执行即可解决问题;如果是3+份数据,小明可能会想,该做个工具了。
2 构建工作流
从【地理处理】菜单,打开 ModelBuilder,依次拖拽和连接 Project 和 Clip 两个工具。Project 工具的输出作为 Clip 工具的输入。
双击工具可以打开工具继续填补工具需要的参数,直至Model因参数完全而变成彩色。
3 使用迭代器
前一步的工具已经满足一次任务的需要了,接着就是解决批量处理的问题。ModelBuilder提供了一些额外的自带工具来满足我们的一些高级需求,其中一类就是 迭代器,它用来实现循环。
在这个例子中,需要遍历的对象是表示各种研究对象的要素类,因此选择 迭代要素类 / Iterate Feature Classes。当然也可以根据自己的实际需求选择其他迭代器。
接下来就是把迭代器与工具串联起来。首先,双击迭代器的六边形为迭代器设置工作空间,即地理数据库/GDB,或者文件夹目录(例如
shapefile所在的目录)。这样,迭代器会在指定的工作空间遍历要素类。删除现有Project工具的输入数据,将迭代器的输出数据连接到
Project工具。
工具基本准备完毕,但是还差了重要的一步。目前,最后的输出数据是常量,也就是说,即使前面的工具执行了N次,那结果都将被同名覆盖。那么,行内变量 就显出用武之地了。
迭代器每次遍历到一个要素类,会返回一个 Name,内容是当前要素类的名称,这个Name就是行内变量。引用的方法就是使用百分号括起来,即 %Name% 。
输出数据设置示例:
至此我们就完成了一次批量任务。
4 复用工具
如果我们以后想按照这个相同的需求处理数据,完全可以将其做成模型工具。将输入数据和输出数据设置为模型变量,我们就可以在“运行”状态下使用。
设置方法,在需要作为参数方便后续修改的项目上右键,勾选 “模型参数”即可,然后项目的头上顶了个“P”,( ̄▽ ̄)”。
将模型保存至工具箱后,双击运行工具。现在就可以把它当成“面包机”,放入食材,等面包即可。
5 注意事项
下面是些有用的提示,FYI:
每个模型仅可使用唯一一个迭代器。如果模型中已经存在一个迭代器,那么用于添加迭代器的菜单就不可用了。这是限制之一。
如果将含有迭代器的模型导出为 Python 脚本,则导出的脚本中将不会包括迭代逻辑。这是限制之二。Python中有list函数,也可以实现类似的需求,但是需要重写。
尽管Model可以嵌套调用,但是迭代器的嵌套循环逻辑不佳,不建议使用。如果需要实现嵌套循环,强烈建议使用python脚本。例如,实现遍历工作空间内每个要素类中的每个要素(记录)这样的需求,可以使用 ArcPy中的函数 ListFeatureClasses 和 SearchCursor来实现。
❺ ArcGIS 应用Python中arcpy模块
需要用Arcpy的代码么?
应该不难,直接读取字段属性就可以了。
❻ python for Arcgis的一段程序,始终调试不通,求助
点击安装License Manger,一路复next,当提示需要制许可文件时,选择"I received the license by email..." ,然后单击“browse”选择刚才保存的licence文件,next到安装完毕。选择不重启机器。 将crack目录下的arcgis.exe拷贝覆盖授权管理目录(c:\program files\esri\license\arcgis9x)下的文件,然后重启机器
❼ 怎样用arcgis中的python进行批量投影
接到的需求是对文件夹下包括子目录所有影像进行投影变换,在网上找了找,大家的代码好像和需求不太一致,自己写了一个小工具。
思路是遍历文件夹所有.tif文件。
1.用os.walk()函数来获取路径和文件名
2.用 if 语句限制读取后缀为.tif的文件
3.将文件路径和文件名组合起来
4.调用arcpy.ProjectRaster_management语句投影变换并输出
由于刚刚接触python,难点主要在于os.walk()目录的读取这个函数的了解上。
以下是代码
#coding=utf-8
importos
importarcpy
fromarcpyimport*
#定义一个函数,第一个参数是一个集合,用来接收所有.tif的路径。第二个函数是指定的文件夹。
defhuoqu(jieshou,lujing):
fordirpath,dirnames,filenamesinos.walk(lujing):
forfilenameinfilenames:
ifos.path.splitext(filename)[1]=='.tif':
file1=dirpath+'\'+filename
jieshou.append(file1)
#这里变量的设置,GetParameterAsText函数来获取对应在python工具箱中的位置
env.workspace=GetParameterAsText(0)
work=env.workspace
ref=GetParameterAsText(1)
tifz=[]
#调用自定义的函数
huoqu(tifz,work);
#对所有的影像进行循环投影变换,并且将输出路径设置为指定的文件夹+原本的名字
forfileintifz:
out=GetParameterAsText(2)+"/"+os.path.basename(file)
ProjectRaster_management(file,out,ref)
❽ 有没有吧友有《面向arcgis的python脚本编程》的PDF
密码:m6jz
❾ 如何用arcgis的python进行批处理
目前比较常见的批处理包含两类:DOS批处理和PS批处理。PS批处理是基于强大的图版片编辑软件Photoshop的,用来权批量处理图片的脚本;
而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。更复杂的情况,需要使用if、for、goto等命令控制程式的运行过程,如同C、Basic等高级语言一样。如果需要实现更复杂的应用,利用外部程式是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。批处理程序虽然是在命令行环境中运行,但不仅仅能使用命令行软件,任何当前系统下可运行的程序都可以放在批处理文件中运行。
❿ 怎么用python开发arcgis
在Pyhton写的一些代码,用户交互不方便,用户体验比较差,不方便重用。在ArcGIS中可以将用写的Python代码导入到ToolBox中,这样用起来就比较方便了。这里用按要素裁剪栅格的Python来演示如何导入ArcGIS中。代码如下:
import sys
reload(sys)
sys.setdefaultencoding( "utf-8" )
import arcpy
import string
from arcpy.sa import *
try:
raster = arcpy.GetParameterAsText(0) #要裁剪的栅格
clip_feat = arcpy.GetParameterAsText(1) #裁剪要素类
field = arcpy.GetParameterAsText(2) #命名字段
outworkspace = arcpy.GetParameterAsText(3) #命名字段裁剪后输出目录
for row in arcpy.SearchCursor(clip_feat):
mask=row.getValue("Shape")
outPath=outworkspace+"\\"+str(row.getValue(field))
outExtractByMask = ExtractByMask(raster,mask)
outExtractByMask.save(outPath)
except arcpy.ExecuteError:
print arcpy.GetMessages() 在用户工具箱中新建工具箱(在系统工具箱中不能新建),在工具箱右键,添加脚本;
输入名称、标签、描述等信息。下一步,选择脚本文件。(这里需要注意的是:一定要勾选"存储相对路径名"这个选项)
设置参数,这是最重要的一步。其中参数即代码中GetParameterAsText(n),并选择合适的数据类型,在参数属性中也可以进行相关设置。如果输出栅格名称按裁剪要素中的某个字段,需要设置"获取息"属性,还要进行过滤一下。
设置好一切参数过后,就可以来进行测试了。在本机上测试通!
接下来便是怎样移植到其他电脑了的问题了。前面我说说过要存储为相对路径,否则,将报错00576:脚本工具使用的脚本未处于所需位置。创建脚本工具时,有一个选项用于存储相对路径名(而不是绝对路径名)。设置此选项后,脚本的相对位置和保存脚本工具的工具箱必须保持不变。执行工具时移动两者中的任何一个都会出现此错误。
但改为相对路径后,在其他电脑上也能正常运行,但弹出了警告窗口。原因是客户机上没有勾选扩展模块相应的功能。这个示例需要勾选空间分析模板,因为使用了按掩膜提取这个工具。这个脚本实现的详情参考:使用Python脚本批量裁切栅格
发布给他人,涉及到个人知识产权的问题,怎样让他人使用工具,又不能看到脚本代码?如果编辑调试完成了,在脚本工具右键可导入脚本。
设置密码后,即可。