GIS中表格数据CSV批量展点到shp(Python接口、模型构建器)

1.目标:近期需要对气象站点数据进行空间插值,前提是将含有气候数据的站点数据在空间中展示出来。

2. 问题:GIS中可以通过添加表数据———为表数据添加xy坐标——数据导出为shp文件

但是涉及年份较多的时候批量转换可以节省很多时间

3.方法(依旧找到了两种方法。R中应该也能实现,只是我一时摸索不出来)

3.1 Python接口

# -*- coding: utf-8 -*-
import arcpy
from arcpy import env
import glob
import os
import arcgisscripting
gp=arcgisscripting.create()
spatial_ref=r'F:\Shujuchuli\Export_Output_feature_to_shp.prj' #转换点文件需要的投影信息数据prj
env.workspace =r'F:\Shujuchuli\Pre_huanglongxian' #工作环境设置、输入路径
pathout=r'F:\Shujuchuli\Pre_csv_to_shp' #输出文件路径
 
# 点文件信息
x_corrods='Longitude' #经度字段
y_corrods='Latitude' #纬度字段
Z_filed='MEAN_year' # 转换点文件需要保留的字段
try:    
    for file1 in arcpy.ListFiles("*.csv"): #列出当前工作环境下csv文件
        print file1
        info=os.path.basename(file1).split('.')[0]  #获取csv文件的基本文件名,并去掉后缀
        intable=file1 #转换点文件的输入表
        outlayer=info  #输出图层名称
        print'outlayer',outlayer
        gp.MakeXYEventLayer_management(intable,x_corrods,y_corrods,outlayer,spatial_ref,Z_filed) #建立XY事件图层
        print'MakeXYEventLayer over'
##        OUTdata=gp.describe(outlayer)
##        print gp.getparameter(outlayer)  #输出数据参数信息
##        print'OUTdata over '
        gp.FeatureClassToShapefile_conversion(outlayer,pathout) #将图层要素类转为shp
        print'ToShapefile over'
 
except:
    print gp.GetMessages()

3.2 模型构建器

①GIS目录下“我的工具箱”——“新建”——“模型”,将模型重命名为“csvtoshp”

②在编辑窗口依次选择:

插入——迭代器——表;

工具箱——系统工具箱——Data Management Tools.tbx——图层和表视图——创建xy事件图层;

工具箱——系统工具箱——Data Management Tools.tbx——要素——要素转点;

并将输出文件夹拖入窗口;

GIS中表格数据CSV批量展点到shp(Python接口、模型构建器)_第1张图片

 ③之后依次进行:

双击“迭代表”,在“工作空间”种选择CSV文件所存储的文件夹位置,点击确定;

GIS中表格数据CSV批量展点到shp(Python接口、模型构建器)_第2张图片

接着,将迭代与“创建xy时间图层”建立联系,选择“xy表”

GIS中表格数据CSV批量展点到shp(Python接口、模型构建器)_第3张图片

下一步,为创建xy时间图层与“要素转点”建立联系,并选择“输入要素”;

GIS中表格数据CSV批量展点到shp(Python接口、模型构建器)_第4张图片

 接着一步,就是为输出结果进行命名,让其保持与最初的CSV文件名保持一致,且输出路径与最开始拖入的输出文件夹保持一致;方法就是点击下图1中的“FeatureToPoint”进行图2的设置,得到图3的结果。

GIS中表格数据CSV批量展点到shp(Python接口、模型构建器)_第5张图片

 GIS中表格数据CSV批量展点到shp(Python接口、模型构建器)_第6张图片

GIS中表格数据CSV批量展点到shp(Python接口、模型构建器)_第7张图片

最后对模型进行保存、测试、运行,就可以得出结果。

 

 

 

 

                                       

你可能感兴趣的:(python,开发语言)