學(xué)校網(wǎng)站制作2345網(wǎng)址導(dǎo)航大全
使用環(huán)境:
pycharm2020
arcgis pro 中的python3.8
一、pycharm中設(shè)置python編譯器。左上角“文件”——“設(shè)置”——找到python interpreter——找到arcgis pro安裝文件夾中的python
D:\ArcGIS Pro\bin\Python\envs\arcgispro-py3\python.exe
使用arcgis pro原因:自帶arcpy
庫(kù),不需要進(jìn)行pip install
安裝。(我是有python官網(wǎng)上的,但是不知道為什么裝不了arcpy,所以用的這個(gè)方法)(代碼是python3編寫的,如果用arcgis 10.x版本,是python2需要自行修改)
二、python編程
設(shè)置 input_folder
變量為包含要裁剪的柵格影像數(shù)據(jù)的文件夾路徑。shapefile
變量應(yīng)該是用于裁剪的 shapefile
文件的路徑。output_folder
變量是用于存儲(chǔ)裁剪后的影像數(shù)據(jù)的文件夾路徑。
代碼會(huì)循環(huán)處理輸入文件夾中的每個(gè) .tif
文件,使用 Extract by Mask
工具將其裁剪為指定的 shapefile
邊界,并將結(jié)果保存到輸出文件夾中。
請(qǐng)確保在運(yùn)行代碼之前,你已經(jīng)安裝了 ArcPy
庫(kù),并根據(jù)你的實(shí)際情況修改了文件夾路徑和文件名。
文件夾路徑中如果包含了非UTF-8編碼(中文)的字符,第一行加上# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-import arcpy
import os# 設(shè)置工作環(huán)境
arcpy.env.workspace = r"C:\path\to\workspace"
arcpy.CheckOutExtension("Spatial")# 輸入文件夾路徑和shapefile路徑
input_folder = r"C:\path\to\input_folder"
shapefile = r"C:\path\to\shapefile.shp"# 輸出文件夾路徑
output_folder = r"C:\path\to\output_folder"
if not os.path.exists(output_folder):os.makedirs(output_folder)# 獲取輸入文件夾中的所有tif文件
tif_files = [file for file in os.listdir(input_folder) if file.endswith(".tif")]# 循環(huán)處理每個(gè)tif文件
for tif_file in tif_files:# 輸入tif文件路徑input_tif = os.path.join(input_folder, tif_file)# 輸出tif文件路徑output_tif = os.path.join(output_folder, tif_file)# 使用Extract by Mask工具進(jìn)行裁剪arcpy.gp.ExtractByMask_sa(input_tif, shapefile, output_tif)print(f"Cropped {tif_file} successfully!")print("All files cropped successfully!")