当前位置: 代码迷 >> 综合 >> Python(arcpy) 根据站点经纬度(坐标)批量提取对应格点值
  详细解决方案

Python(arcpy) 根据站点经纬度(坐标)批量提取对应格点值

热度:92   发布时间:2023-12-28 19:25:18.0

任务描述:我有站点的点shp文件,想从遥感降水产品中批量提取出站点所在栅格的值→ 多个站点+多幅图像的批量提取

#-*- coding: UTF-8 -*-
''' 这篇代码是用于根据站点的shp文件批量提取降雨图中该点所在像元的值并存为新的点元素文件 '''import arcpy
from arcpy import env
from arcpy.sa import *
import osarcpy.CheckOutExtension("Spatial")       #仅在使用浮动板许可情况下需要 CheckOutExtension获取许可#先遍历点元素文件,再遍历栅格文件,做提取
cFileNumber = 0
dir = 'F:\\station_point_shp\\' #指定点元素所在文件夹的路径
for root, dirs, files in os.walk(dir):                            #遍历该文件夹for point_file in files:                                      #遍历刚获得的文件名files(filename, extension) = os.path.splitext(point_file)      #将文件名拆分为文件名与后缀if (extension == '.shp'):                                 #判断该后缀是否为.shp文件cFileNumber= cFileNumber+1                            #记录.shp文件的个数为对应文件号in_point_features = dir+point_file                    #点元素位置#指定路径和工作区间path_file = 'F:\\MSWEP_V2.6_Monthly_tif\\'arcpy.env.workspace='F:\\MSWEP_V2.6_Monthly_tif\\'#读取路径中所有文件ls = os.listdir(path_file)print(len(ls))                             #输出文件总数#遍历路径中所有的tif文件,根据坐标输出新的带有属性值的点元素for i in ls:if os.path.splitext(i)[1] == ".tif":   #os.path.splitext函数用于分离文件名与扩展名in_raster = i                      #i作为输入栅格in_raster_name = i[0:6]#判断文件夹是否存在if os.path.exists(r'F:\\MSWEP_station_point_pre\\'+point_file[0:13]):out_point_features='F:\\MSWEP_station_point_pre\\'+point_file[0:13]+'\\'+in_raster_name+'.shp'  #输出位置else:os.makedirs(r'F:\\MSWEP_station_point_pre\\'+point_file[0:13])out_point_features='F:\\MSWEP_station_point_pre\\'+point_file[0:13]+'\\'+in_raster_name+'.shp'  #输出位置ExtractValuesToPoints(in_point_features, in_raster, out_point_features)       #调用函数print(i)

后记:

写博客的初衷是分享经验,同时是算是自己对思路和代码的整理,方便日后处理数据,应该可以帮到很多人。
我已免费分享我的心得,如果看官还有其他问题的,那么:知识付费,我的时间和经验正好可以解决你的问题。
咨询问题请添加QQ:819369354

2022年4月20日