python编写arcgis脚本教程_【】向精通ArcGIS——python脚本开发的同学请教

如何用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脚本批量裁切栅格

发布给他人,涉及到个人知识产权的问题,怎样让他人使用工具,又不能看到脚本代码?如果编辑调试完成了,在脚本工具右键可导入脚本。

设置密码后,即可。

Python写arcgis脚本,要怎么import arcpy呢,我用的IDE是pycharm,直

arcpy放哪里的?

请问大家谁有《面向ArcGIS的Python脚本编程》这本书中提到的配套练习数据吗?

请问大家谁有《面向ArcGIS的Python脚本编程》这本书中提到的配套练习数据吗?

arcgis 10.0 的python脚本怎么用

找到工具条,上面Python的按钮:

打开之后,在里面输入代码就行:

关于arcgis的python脚本编程, shape文件出png图片问题

1类型的PointToRaster example 1 (Python

window)

Converts point features to a raster dataset.

import arcpy

from arcpy import env

env.workspace = "c:/data"

arcpy.PointToRaster_conversion("ca_ozone_pts.shp", "ELEVATION",

"c:/output/ca_elev", "MAXIMUM", "", 2000)

PointToRaster example 2

(stand-alone script)

Converts point features to a raster dataset.

# Name: PointToRaster_Ex_02.py

# Description: Converts point features to a raster dataset.

# Requirements: ArcInfo

# Import system modules

import arcpy

from arcpy import env

# Set environment settings

env.workspace = "C:/data"

# Set local variables

inFeatures = "ca_ozone_pts.shp"

valField = "ELEVATION"

outRaster = "c:/output/ca_elev02"

assignmentType = "MAXIMUM"

priorityField = ""

cellSize = 2000

# Execute PointToRaster

arcpy.PointToRaster_conversion(inFeatures, valField, outRaster,

assignmentType, priorityField, cellSize)

2、面类型的转栅格:PolygonToRaster example 1

(Python window)

Converts polygon features to a raster dataset.

import arcpy

from arcpy import env

env.workspace = "c:/data"

arcpy.PolygonToRaster_conversion("ca_counties.shp", "NAME",

                                 "c:/output/ca_counties.img", 

"MAXIMUM_AREA", "MALES", 0.25)

PolygonToRaster example 2

(stand-alone script)

Converts polygon features to a raster dataset.

# Name: PolygonToRaster_Ex_02.py

# Description: Converts polygon features to a raster dataset.

# Requirements: ArcInfo

# Import system modules

import arcpy

from arcpy import env

# Set environment settings

env.workspace = "C:/data"

# Set local variables

inFeatures = "ca_counties.shp"

valField = "NAME"

outRaster = "c:/output/ca_counties"

assignmentType = "MAXIMUM_AREA"

priorityField = "MALES"

cellSize = 0.5

# Execute PolygonToRaster

arcpy.PolygonToRaster_conversion(inFeatures, valField, outRaster,

assignmentType, priorityField, cellSize)

3、线类型转栅格PolylineToRaster example 1

(Python window)

Converts polyline features to a raster dataset.

import arcpy

from arcpy import env

env.workspace = "c:/data"

arcpy.PolylineToRaster_conversion("roads.shp", "CLASS", "c:/output/roads.img",

"MAXIMUM_COMBINED_LENGTH", "LENGTH", 30)

PolylineToRaster example 2

(stand-alone script)

Converts polyline features to a raster dataset.

# Name: PolylineToRaster_Ex_02.py

# Description: Converts polyline features to a raster dataset.

# Requirements: ArcInfo

# Import system modules

import arcpy

from arcpy import env

# Set environment settings

env.workspace = "C:/data"

# Set local variables

inFeatures = "roads.shp"

valField = "CLASS"

outRaster = "c:/output/roads.tif"

assignmentType = "MAXIMUM_COMBINED_LENGTH"

priorityField = "LENGTH"

cellSize = 30

# Execute PolylineToRaster

arcpy.PolylineToRaster_conversion(inFeatures, valField, outRaster,

assignmentType, priorityField, cellSize)

python 可以调用arcgis工具吗

arcgis可以用Python脚本

在Pyhton写的一些代码,用户交互不方便,用验比较差,不方便重在ArcGIS以将用写的Python代码导入到ToolBox中,这样用起来就比较方便了。这里用按要素裁剪栅格的Python来演示如何导入ArcGIS中。代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

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脚本批量裁切栅格

发布给他人,涉及到个人知识产权的问题,怎样让他人使用工具,又不能看到脚本代码?如果编辑调试完成了,在脚本工具右键可导入脚本。

设置密码后,即可。

但必须注意的是:整个代码中不能有中文字符,否则,不能正常导入脚本,发布出去的脚本工具就有问题。没办法,对中文支持不好。

向精通ArcGIS——python脚本开发的同学请教

No设成字符串,如No=“1”;select句,改成select("XYSheet1.shp","XYSheet1_Select1.shp","\"矿区编号\"

=" No)。

版权声明:本站所有文章皆为原创,欢迎转载或转发,请保留网站地址和作者信息。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值