Arcpy | NetCDF转栅格(投影3857)

发布时间 2023-10-25 01:05:17作者: 槑孒
# -*- coding: utf-8 -*-

import arcpy
import os


def NcToRaster(ncFile, workspace=None):
    if workspace is None:
        workspace = os.path.dirname(ncFile)
    arcpy.env.workspace = workspace

    # 允许覆盖输出
    arcpy.env.overwriteOutput = True

    # 查看必要的许可证
    arcpy.CheckOutExtension("spatial")
    arcpy.CheckOutExtension("ImageAnalyst")

    # Process: 创建 NetCDF 栅格图层 (创建 NetCDF 栅格图层) (md)
    z_Layer = arcpy.md.MakeNetCDFRasterLayer(in_netCDF_file=ncFile, variable="z", x_dimension="x", y_dimension="y")
    # Process: 投影栅格 (投影栅格) (management)
    z_Layer_ProjectRaster = arcpy.management.ProjectRaster(in_raster=z_Layer,
                                                           out_coor_system=arcpy.SpatialReference(3857),
                                                           resampling_type="BILINEAR",
                                                           cell_size="6250 6250",
                                                           vertical="NO_VERTICAL")

    # Process: 设为空函数 (设为空函数) (sa)
    SetNull_z_Layer = arcpy.sa.SetNull(in_conditional_raster=z_Layer_ProjectRaster,
                                       in_false_raster_or_constant=z_Layer_ProjectRaster, where_clause="VALUE = 0")
    # Process: 删除栅格图层
    arcpy.Delete_management(z_Layer_ProjectRaster)
    SetNull_z_Layer.save(r"asi-AMSR2-s6250-20231014-v5.4.tif")


if __name__ == '__main__':
    nc = r"D:/Desktop/asi-AMSR2-s6250-20231014-v5.4.nc"
    NcToRaster(nc)