【森气杂谈】Arcpy重采样tif并捕捉栅格

本文介绍如何使用ArcPy进行栅格数据重采样,并确保输出栅格与指定捕捉栅格完全对齐,实现像素级精确匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【森气杂谈】Arcpy重采样tif并捕捉栅格

最近在数据分析时,发现尽管数据重采样为相同分辨率,但是其栅格并未能够逐一对应,为后续分析造成麻烦。如下图所示。
在这里插入图片描述

现借助Arcgis环境设置的捕捉栅格来实现,使其达到像素对齐的目的。
具体详见代码。

# -*- encoding: utf-8 -*-
'''
@File    :   snap_tif.py
@Time    :   2022/05/26 14:31:17
@Author  :   HMX 
@Version :   1.0
@Contact :   kzdhb8023@163.com
'''

# here put the import lib
import arcpy
from arcpy import env
from arcpy.sa import *

env.workspace = r'E:\Project\python_gis\snap_tif\data'
snap_img = "prep.tif"
in_img = "lc.tif"
resample_img = "lc_resample.tif"
out_img = "ex_lc.tif"
arcpy.env.snapRaster = snap_img
img_sizeX = arcpy.GetRasterProperties_management(snap_img,"CELLSIZEX")
img_sizeY = arcpy.GetRasterProperties_management(snap_img,"CELLSIZEY")
cellSize = (img_sizeX,img_sizeY)
print(img_sizeX,img_sizeY)
arcpy.Resample_management(in_img
, resample_img
, str(img_sizeX)+' '+str(img_sizeY)
, "NEAREST")
outExtractByMask = ExtractByMask(resample_img, snap_img)
outExtractByMask.save(out_img)
print('ok')

借助Arcgis查看可以发现栅格已经很完美的匹配上了。输出像元大小与捕捉栅格像元大小相同,输出栅格中的像元与捕捉栅格的像元对齐。
在这里插入图片描述
如果对你有帮助的话,请‘点赞’、‘收藏’,‘关注’,你们的支持是我更新的动力。欢迎关注我的公众号【森气笔记】。

### 使用 ArcPy 捕捉和处理栅格数据的方法 ArcPy 是 Esri 提供的一个 Python 库,用于自动化地理信息系统 (GIS) 的任务。它提供了多种工具来捕捉、处理和分析栅格数据。 #### 导入必要的模块 在使用 ArcPy 进行栅格数据的操作之前,需要先导入 `arcpy` 和其他可能需要用到的库: ```python import arcpy from arcpy import env from arcpy.sa import * ``` #### 设置工作环境 为了简化文件路径管理提高效率,在执行任何操作前设置好工作空间是非常重要的[^2]。 ```python env.workspace = r"C:\path\to\your\workspace" ``` #### 栅格数据的读取与基本属性获取 通过 ArcPy 可以轻松加载栅格数据,提取其基本信息,例如像元大小、投影坐标系等。 ```python raster_path = r"C:\path\to\raster.tif" desc = arcpy.Describe(raster_path) print(f"Raster Name: {desc.name}") print(f"Spatial Reference: {desc.spatialReference.name}") print(f"Cell Size Width: {desc.meanCellWidth}, Height: {desc.meanCellHeight}") ``` #### 利用 Map Algebra 对栅格进行计算 Map Algebra 是一种强大的方法,允许用户基于数学表达式创建新的栅格图层。下面是一个简单的例子,展示如何将两个栅格相加。 假设存在两幅影像分别存储于变量 `raster1` 和 `raster2` 中,则可以如下实现叠加运算: ```python output_raster = Plus(Raster("raster1"), Raster("raster2")) output_raster.save(r"C:\path\to\output\total_raster.tif") ``` #### Excel 数据导入到 GIS 关联至栅格 如果希望从 Excel 文件中导入表格型数据与现有栅格建立联系,可以通过以下方式完成转换过程: 1. 将 Excel 转换为 Shapefile 或 Feature Class; 2. 基于这些矢量要素生成对应的栅格产品或者反之亦然。 具体代码片段如下所示: ```python # Convert an XLSX file to a feature class. in_table = r"C:\data\input.xlsx" out_location = r"C:\temp.gdb" out_fc_name = "ExcelData" arcpy.conversion.ExcelToTable(in_table, out_location + "\\" + out_fc_name) ``` 随后可以根据业务需求进一步加工上述成果集。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值