ArcGis Python脚本——批量对影像、要素类定义投影

这一段是批量定义要素类(FeatureClasses)投影的ArcPy代码:

把要处理的要素类塞进一个文件夹(工作空间,workspace),然后将代码开头的路径换成这个“文件夹”的路径,处理完后再做其他处理(比如批量塞回原来文件夹,vba,python啥的代码、小工具处理即可)。

或者,把要处理的要素类都加载到ArcMap工作空间,然后把下面代码set environment workspace(设置工作空间)的这一行代码干掉,代码执行的默认工作空间就是当前ArcMap的工作空间了。

define coordinate system那里把坐标系信息改为自己需要定义的坐标系信息。不知道哪儿获取?先定义好一个Shpfile的投影信息,然后把它的.prj文件用记事本打开。

import arcpy
# set environment workspace
arcpy.env.workspace=r"C:\Users\Administrator\Desktop\ArcCode\新建文件夹"
# get files
clses = arcpy.ListFeatureClasses()
# define coordinate system
Coordinate_System = "PROJCS[‘CGCS2000_3_Degree_GK_CM_114E‘,GEOGCS[‘GCS_China_Geodetic_Coordinate_System_2000‘,DATUM[‘D_China_2000‘,SPHEROID[‘CGCS2000‘,6378137.0,298.257222101]],PRIMEM[‘Greenwich‘,0.0],UNIT[‘Degree‘,0.0174532925199433]],PROJECTION[‘Gauss_Kruger‘],PARAMETER[‘False_Easting‘,500000.0],PARAMETER[‘False_Northing‘,0.0],PARAMETER[‘Central_Meridian‘,114.0],PARAMETER[‘Scale_Factor‘,1.0],PARAMETER[‘Latitude_Of_Origin‘,0.0],UNIT[‘Meter‘,1.0]]"
# code source: https://www.cnblogs.com/yzhyingcool/ QQ:975601416
for cls in clses:
    print str(cls)
    arcpy.DefineProjection_management(cls, Coordinate_System)
print("OK")

这是一段批量定义影像投影的Arcpy代码:

影像图片格式:代码中定义为tif格式,其他格式自行更改。

基本设置如上,不复述。

import arcpy
# set environment workspace
arcpy.env.workspace=r"C:\Users\Administrator\Desktop\新建文件夹"
# get files
rasters = arcpy.ListRasters("*", "tif")
# define coordinate system
Coordinate_System = "PROJCS[‘CGCS2000_3_Degree_GK_CM_114E‘,GEOGCS[‘GCS_China_Geodetic_Coordinate_System_2000‘,DATUM[‘D_China_2000‘,SPHEROID[‘CGCS2000‘,6378137.0,298.257222101]],PRIMEM[‘Greenwich‘,0.0],UNIT[‘Degree‘,0.0174532925199433]],PROJECTION[‘Gauss_Kruger‘],PARAMETER[‘False_Easting‘,500000.0],PARAMETER[‘False_Northing‘,0.0],PARAMETER[‘Central_Meridian‘,114.0],PARAMETER[‘Scale_Factor‘,1.0],PARAMETER[‘Latitude_Of_Origin‘,0.0],UNIT[‘Meter‘,1.0]]"
#code source: https://www.cnblogs.com/yzhyingcool/ QQ:975601416
for ras in rasters:
    print str(ras)
    arcpy.DefineProjection_management(ras, Coordinate_System)
print("OK")

原文地址:https://www.cnblogs.com/yzhyingcool/p/10274153.html

时间: 2024-10-09 14:14:34

ArcGis Python脚本——批量对影像、要素类定义投影的相关文章

ArcGis Python脚本——批量删除字段

注意,ArcGis中shp属性表至少要保留除OID(FID).Shape之外的1个字段. 例:批量删除"省级行政区域"除"FID"."Shape"."Area"之外的字段. import arcpy #如果要素类已加载至工作空间,可以直接使用其名字(此处是"省级行政区域"),否,则使用.shp文件的全路径. fieldList=arcpy.ListFields("省级行政区域") for

python脚本批量生成数据

在平时的工作中,经常会遇到造数据,特别是性能测试的时候更是需要大量的数据.如果一条条的插入数据库或者一条条的创建数据,效率未免有点低.如何快速的造大量的测试数据呢?在不熟悉存储过程的情况下,今天给大家介绍一种方法,很简单的也很实用.思路是用python代码写一段小程序,生成一定数量的SQL语句,再把这些SQL语句拷贝黏贴到数据库工具执行SQL即可. 假如有个联系人的学生表student,其表结构为姓名name.学校school.电话telphone.邮箱email. 以Mysq为例子,sql语句

使用Python脚本批量裁切栅格

????对栅格的裁切,我们通常使用裁切(数据管理-栅格-栅格处理)或按掩膜提取(空间分析-提取分析)来裁切,裁切的矢量要素通常是一个要素图层或Shape文件.如果要进行批量处理,可以使用ToolBox中的批量处理工具.但是,有时我们选择的裁切矢量要素不是一个要素图层,而是要素图层中的一个要素,如按标准图幅裁切栅格影像,以前的做法是将要素一个一个的导出来,再进行批量处理.快速导出方法:ArcGIS按字段属性分割文件. ????现在,可以使用Python脚本来批量裁切,在网上找了位大神的原始代码学习

ArcGis Python脚本——将细碎小面合并到相邻的面积最大的面

参数: polygon_fc 面要素类 area_limit 给定面积值,小于它的面会被合并 给定两个参数即可,这回没有注释. 1 #polygon_fc 面要素类 2 #area_limit 给定面积值,小于它的面会被合并 3 polygon_fc="C:\Users\Administrator\Desktop\yang\New Folder\Export_Output_4.shp" 4 area_limit=4000 5 fieldList=arcpy.ListFields(pol

python脚本批量修改华为交换机端口配置

用python写的,主要是telnetlib库的应用,华为交换机批量修改端口配置,把已经UP的端口做一个port sec的mac sticky绑定,DOWN的端口,就clear配置信息. 使用前,先在交换机上 dis int bri,查出交换机的端口状态信息并复制到此脚本同目录下,以 IP.txt这样的格式命名的文件(比如 192.168.0.1对应 192.168.0.1.txt),以下内容记得把IP跟账号密码改成自己的. import sys,os,telnetlib,re ip = '你的

使用python脚本批量向多个主机发送ssh公钥

适用场景: 流行的自动化运维之一:ansible是基于ssh通信来实现的.因此,使用ansible之前,需要先解决ansible服务端与各个被管理节点之间的ssh通信问题.第一种方法是使用用户名和密码的方式进行ssh通信,密码需要以明文方式保存在ansible的hosts文件中,存在泄漏密码的安全隐患.第二种方法是基于密钥来实现免密码的ssh通信,因此需要先将自己的公钥发送给所有被管理节点. 以下脚本可以免交互地自动向多个远程主机发送公钥.脚本是使用python 2.7编写的,需要先安装pexp

Python脚本--批量更改本地md文件的图片链接

#-*- coding:utf-8 -*- import re import os def patch_md(filename): if filename.endswith('.md'): return True return False def _patch_replace(text): pattern=re.compile(r'(?<=!)\[.*\]\((.*)(?=\))') result = re.findall(pattern,text)for filedir in result:

python脚本批量生成50000条插入数据的sql语句

1 f = open("xx.txt",'w') 2 for i in range(1,50001): 3 str_i = str(i) 4 realname = "lxs"+str_i 5 phone = 13678101715 + i 6 email = "lxs" + str_i +"@126.com" 7 sql = 'insert into table_a (realname,phone,email,sign,eve

ArcGIS Python实现批量化裁剪影像

一.程序代码: import arcpy arcpy.CheckOutExtension("spatial") arcpy.gp.overwriteOutput=1 arcpy.env.workspace = "F:\\Modis_16\\1Moasic" rasters = arcpy.ListRasters("*", "tif") mask= "F:\\Vegetation Change\\Data\\Bound