概述
任务描述:我有站点的点shp文件,想从遥感降水产品中批量提取出站点所在栅格的值→ 多个站点+多幅图像的批量提取
#-*- coding: UTF-8 -*-
'''
这篇代码是用于根据站点的shp文件批量提取降雨图中该点所在像元的值并存为新的点元素文件
'''
import arcpy
from arcpy import env
from arcpy.sa import *
import os
arcpy.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日
最后
以上就是整齐毛豆为你收集整理的Python(arcpy) 根据站点经纬度(坐标)批量提取对应格点值的全部内容,希望文章能够帮你解决Python(arcpy) 根据站点经纬度(坐标)批量提取对应格点值所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复