【Python】arcpy栅格批量投影转换

一个文件夹,内有多个tif文件,另有一个模板tif,把文件夹内的tif转换为与模板文件相同的XY coordinate system.

import arcpy
import os

# 设置工作环境
arcpy.env.overwriteOutput = True

# 输入文件夹路径和模板文件路径
input_folder = r"输入文件夹路径"  # 替换为存放 tif 文件的文件夹路径
template_tif = r"模板文件路径"  # 替换为模板 tif 文件路径
output_folder = r"输出文件夹路径"  # 替换为保存结果 tif 文件的文件夹路径

# 获取模板文件的坐标系
template_sr = arcpy.Describe(template_tif).spatialReference

# 遍历文件夹中的 tif 文件
for file in os.listdir(input_folder):
    if file.endswith(".tif"):
        input_tif = os.path.join(input_folder, file)
        output_tif = os.path.join(output_folder, file)

        # 投影转换
        arcpy.management.ProjectRaster(
            in_raster=input_tif,  # 输入栅格
            out_raster=output_tif,  # 输出栅格
            out_coor_system=template_sr,  # 坐标系统
            resampling_type="NEAREST",  # 重采样方式
        )
        print(f"已处理: {file}")

print("所有文件已完成投影转换!")
python2.7栅格数据批量转换投影:ProjectRaster_management (in_raster, out_raster, out_coor_system, {resampling_type}, {cell_size}, {geographic_transform}, {Registration_Point}, {in_coor_system}) in_raster 输入栅格数据集。Mosaic Layer; Raster Layer out_raster 要创建的输出栅格数据集。以文件格式存储栅格数据集时,需要指定文件扩展名,具体如下:.bil - Esri BIL, .bip - Esri BIP, .bmp - BMP, .bsq - Esri BSQ, .dat - ENVI DAT,.gif - GIF,.img - ERDAS IMAGINE,.jpg - JPEG,.jp2 - JPEG 2000,.png - PNG,.tif - TIFF,无扩展名 - Esri Grid,以地理数据库形式存储栅格数据集时,不应向栅格数据集的名称添加文件扩展名。 将栅格数据集存储到 JPEG 文件、JPEG 2000 文件、TIFF 文件或地理数据库时,可以指定压缩类型和压缩质量。 Raster Dataset out_coor_system 输入栅格投影到的目标坐标系。默认值将基于“输出坐标系”环境设置进行设定。该参数的有效值是扩展名为 .prj 的文件。现有要素类、要素数据集、栅格目录(基本上包含了与坐标系相关的所有内容)。坐标系的字符串表示。要生成此类较长的字符串,可向模型构建器添加一个坐标系变量,并根据需要设置该变量的值,然后将模型导出到 Python 脚本。 Coordinate System resampling_type (可选) 要使用的重采样算法。默认设置为 NEAREST。 NEAREST —最邻近分配法 BILINEAR —双线性插值法 CUBIC —三次卷积插值法 MAJORITY —众数重采样法 NEAREST 和 MAJORITY 选项用于分类数据,如土地利用分类。NEAREST 选项是默认设置,因为它是最快的插值法,同时也因为它不会更改像元值。请勿对连续数据(如高程表面)使用 NEAREST 或 MAJORITY。BILINEAR 选项和 CUBIC 选项最适用于连续数据。不推荐对分类数据使用 BILINEAR 或者 CUBIC,因为像元值可能被更改。 cell_size (可选) 新栅格数据集的像元大小。默认像元大小为所选栅格数据集的像元大小。 Cell Size XY geographic_transform (可选) 在两个地理坐标系或基准面之间实现变换的方法。当输入和输出坐标系的基准面相同时,地理(坐标)变换为可选参数。如果输入和输出基准面不同,则必须指定地理(坐标)变换。 有关各个受支持的地理(基准面)变换的详细信息,请参阅位于 ArcGIS 安装目录的 \Documentation 文件夹下的 geographic_transformations.pdf 文件。 Registration_Point(可选)用于对齐像素的 x 和 y 坐标(位于输出空间中)。配准点的工作原理与捕捉栅格的概念类似。通过配准点可指定用于定位输出像元的原点,而不是仅将输出捕捉到现有栅格像元。所有输出像元与该点之间必须间隔一个像元。该点的坐标不必位于一角,也不必落入栅格数据集中。捕捉栅格环境设置参数将优先于 Registration_Point 参数。因此,如果您要设置配准点,请确保尚未设置捕捉栅格。 in_coor_system (可选) 输入栅格数据集的坐标系。Coordinate System
### 如何在ArcGIS中对栅格数据进行投影转换 #### 工具简介 在ArcGIS中,可以通过`Project Raster`工具完成栅格数据投影转换。该工具允许用户指定输入栅格数据集及其目标投影系统,从而实现不同地理参考系统之间的转换[^1]。 #### 操作流程 以下是具体的操作方法: 1. **启动工具** 打开ArcToolbox工具箱,在其中导航至 `Data Management Tools → Projections and Transformations → Raster → Project Raster` 或者通过搜索功能快速定位到此工具[^2]。 2. **设置参数** - 输入栅格数据:选择需要进行投影转换的源文件(如 `.tif` 文件)。 - 输出栅格数据:设定输出路径并提供新的文件名。 - 输出坐标系:点击右侧的小按钮来定义所需的投影系统(例如 WGS 1984, Albers 等)。可以浏览预设选项或手动配置自定义投影[^3]。 3. **可选参数调整** 如果涉及复杂的重采样过程,则需注意以下几点: - **重采样技术**:默认情况下会采用最近邻法 (Nearest Neighbor),适用于分类图像;连续型数据推荐双线性插值 (Bilinear Interpolation) 或三次卷积插值 (Cubic Convolution)[^4]。 - **像元大小控制**:确保新生成影像具有适当分辨率以匹配分析需求。 4. **运行与验证** 完成上述配置之后执行运算即可获得重新投影后的成果。最后建议核查输出结果属性窗口中的空间参照字段确认无误。 ```python import arcpy input_raster = r"C:\path\to\your\raster.tif" output_raster = r"C:\path\to\save\projected_raster.tif" out_coor_system = arcpy.SpatialReference("WGS 1984") arcpy.ProjectRaster_management(input_raster, output_raster, out_coor_system) print(f"Projection completed successfully! Output saved at {output_raster}") ``` 以上脚本展示了利用Python API调用相同逻辑自动化批量处理多个图层的可能性。 --- #### 注意事项 - 当前工作目录不应包含任何非法字符比如汉字以防程序报错中断作业流。 - 对于大规模高精度场景应用务必谨慎挑选合适的算法组合以免引入不必要的误差累积效应影响最终质量评估结论准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值