zoukankan      html  css  js  c++  java
  • 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科学数据及公开课
  • 相关阅读:
    利用杨辉三角和阶乘计算组合数
    验证字符串是否为回文数
    利用线性同余产生伪随机数+可变参数使用
    根据RandomStr.java:使用类型转换生成六位验证字符串。
    Java语言基础问题
    从命令行输入参数值,输出求和值。
    愚公移山_节选(伪代码)
    CodeForces
    CodeForces
    E
  • 原文地址:https://www.cnblogs.com/hustshu/p/15071141.html
Copyright © 2011-2022 走看看