NetCDF数据在ArcMap中的使用

NetCDF又称科学数据集,可以存储温度、湿度、风速、风向等多个维度的文件格式。

pic_23ea994c.png

1、在ArcMap中显示NetCDF数据

ArcMap不能直接读取NetCDF数据,需要使用GP工具Make NetCDF Raster Layer(创建NetCDF栅格图层),将NetCDF生成栅格图层。

pic_13f6570f.png

2、显示特定年份的温度图层

方式一:直接在图层属性中设置。
pic_61c28fd7.png

方式二:使用GP工具Select by Dimention(按维度选择)。

pic_46e9ef4c.png

3、按照时间动态展示数据

首先对图层启用时间,然后打开时间滑块。

pic_309d8d36.png

4、按照年份,导出NetCDF的每幅栅格

1)设置NetCDF图层的波段维度为Year。

pic_96cb21ff.png

2)点击这里下载NetCDF_time_slice_to_Raster.zip,解压后,添加到目录窗口中,然后运行工具。

pic_e2581d33.png

生成结果是以Band_命名的。我们可以稍微改下代码,以年份命名。打开脚本方法如下:

pic_e0a75640.png

修改后的脚本如下:

# ---------------------------------------------------------------------------
# export_netCDF_slice.py
# Created on: 2011-06-02 10:18:49.00000
# Description: This scipt will create a TIFF raster from a NetCDF layer, and
# save each band of that TIFF as a seperate TIF raster (for each time slcie in a netcdf file) 
# ---------------------------------------------------------------------------

# Import modules
import arcpy, os

#Inputs
Input_NetCDF_layer = arcpy.GetParameterAsText(0)
Output_Folder = arcpy.GetParameterAsText(1)

Input_Name = Input_NetCDF_layer
Output_Raster = Output_Folder + os.sep + "NetCDF_Raster.tif"

#Copy the NetCDF layer as a TIF file. 
arcpy.CopyRaster_management(Input_Name, Output_Raster)
arcpy.AddMessage(Output_Raster + " " + "created from NetCDF layer")

#Reading number of band information from saved TIF
bandcount = arcpy.GetRasterProperties_management (Output_Raster, "BANDCOUNT") 
resultValue = bandcount.getOutput(0)

count = 1

# Year
yearN = 1875

arcpy.AddMessage("Exporting individual bands from" + Output_Raster)

#Loop through the bands and copy bands as a seperate TIF file.
while count <= int(resultValue):
    Input_Raster_Name = Output_Raster + os.sep+ "Band_" + str(count)
    Output_Band = Output_Folder + os.sep +  str(yearN) +".tif"
    arcpy.CopyRaster_management(Input_Raster_Name, Output_Band)
    arcpy.AddMessage("Band_" + str(count) +".tif" + " " "exported" + " " + "successfully")
    yearN +=5
    count +=1
    

# The following will delete the TIFF file that was created by CopyRaster tool.  
arcpy.Delete_management(Output_Raster,"#")
    
arcpy.AddMessage("Tool Executed Successfully")

关于NetCDF位置错误,请参考NetCDF位置显示错误解决方案
如何发布NetCDF,请参考Web端显示NetCDF数据

欢迎关注公众号~

pic_203d56ae.png

参考及扩展阅读

  1. NetCDF介绍
  2. NetCDF教程
  3. 导出NetCDF的每个图层
  4. 关于显示时态数据
  5. ArcGIS科学数据及公开课
原文地址:https://www.cnblogs.com/hustshu/p/15071141.html