def updateParameters(self, parameters): """Modify the values and properties of parameters before internal validation is performed. This method is called whenever a parameter has been changed.""" try: netCDFSource = parameters[0].valueAsText; if netCDFSource is not None: #Making sure that the layers source is a netCDF file if NetCDFFile.isNetCDF(netCDFSource): #NetCDFFile class deteremines the dimensions and variables that #applies to a lat/lon point netCDFFile = NetCDFFile(netCDFSource) #Getting Avalable Dimensions besides besides lat & lon dimensions = netCDFFile.getDimensions() parameters[2].filter.list = dimensions #if dimensions.count > 0: #parameters[2].value = dimensions[0] #Getting Variables that apply to lat & lon variables = netCDFFile.getVariables() parameters[1].filter.list = variables #if variables.count > 0: #parameters[1].value = variables[0] except Exception: pass return
def updateParameters(self, parameters): """Modify the values and properties of parameters before internal validation is performed. This method is called whenever a parameter has been changed. We want to populate the variables and dimensions dropdown list with all dimensions that are not lat, lon and only variables that contain lat/lon dimensions. The lat lon are already going to be represented from the point selected on the map""" try: layer = parameters[0].value; if layer is not None: #Getting the netCDF DataSource Path from the netCDF raster layer netCDFSource = NetCDFFile.getNetCDFPathfromLayer(layer) #Making sure that the layers source is a netCDF file if NetCDFFile.isNetCDF(netCDFSource): #NetCDFFile class deteremines the dimensions and variables that #applies to a lat/lon point netCDFFile = NetCDFFile(netCDFSource) #Getting Avalable Dimensions besides besides lat & lon dimensions = netCDFFile.getDimensions() parameters[2].filter.list = dimensions #if dimensions.count > 0: #parameters[2].value = dimensions[0] #Getting Variables that apply to lat & lon variables = netCDFFile.getVariables() parameters[1].filter.list = variables #if variables.count > 0: #parameters[1].value = variables[0] except Exception: pass return
def updateParameters(self, parameters): """Modify the values and properties of parameters before internal validation is performed. This method is called whenever a parameter has been changed. We want to populate the variables and dimensions dropdown list with all dimensions that are not lat, lon and only variables that contain lat/lon dimensions. The lat lon are already going to be represented from the point selected on the map""" try: layer = parameters[0].value if layer is not None: #Getting the netCDF DataSource Path from the netCDF raster layer netCDFSource = NetCDFFile.getNetCDFPathfromLayer(layer) #Making sure that the layers source is a netCDF file if NetCDFFile.isNetCDF(netCDFSource): #NetCDFFile class deteremines the dimensions and variables that #applies to a lat/lon point netCDFFile = NetCDFFile(netCDFSource) #Getting Avalable Dimensions besides besides lat & lon dimensions = netCDFFile.getDimensions() parameters[2].filter.list = dimensions #if dimensions.count > 0: #parameters[2].value = dimensions[0] #Getting Variables that apply to lat & lon variables = netCDFFile.getVariables() parameters[1].filter.list = variables #if variables.count > 0: #parameters[1].value = variables[0] except Exception: pass return
import os import sys import math import arcpy inNetCDF = "C:/Sandbox/python/NetCDF/Data/norfolk_slr_1m.nc" ncFileProp = arcpy.NetCDFFileProperties(inNetCDF) variables = ncFileProp.getVariables() dimensions = ncFileProp.getDimensions() timeVariable = ncFileProp.getVariablesByDimension("time") from netCDFFile import NetCDFFile print NetCDFFile.isNetCDF(inNetCDF) netcdfFile = NetCDFFile(inNetCDF) print netcdfFile.getDimensions() print netcdfFile.getVariables() print netcdfFile.getLatDimension() print netcdfFile.getLonDimension() print str(variables)