NetCDF Time Series To Feature Class (Discrete Sampling Geometry) (Multidimension)

Summary

Creates a feature class from timeseries in netCDF files. In the Climate and Forecast (CF) metadata convention, a timeseries is a type of discrete sampling geometry (DSG).

Learn more about how the Discrete Sampling Geometry (DSG) tools work

Usage

  • In the Climate and Forecast (CF) metadata convention, a time series is a series of data points at the same spatial location with monotonically increasing times.

  • Discrete sampling geometry (DSG) datasets are characterized by a lower dimensionality than the space-time region where the data is sampled.

  • The input netCDF files should be Climate and Forecast (CF) compliant (CF 1.6 or later). The CF conventions define metadata to describe the data represented by each variable and the spatial and temporal properties of the data.

  • If the input netCDF files are not CF complaint, you can specify an Input Climate and Forecast Metadata (in_cf_metadata in Python) file with additional or altered attributes. The Input Climate and Forecast Metadata file is an XML file with an .ncml extension. The attributes from this metadata file will extend or override the metadata in the netCDF file. The Input Climate and Forecast Metadata file can also be used to specify a grid mapping variable if the input netCDF file does not have one.

  • A DSG feature type is identified by an instance ID variable marked with a cf_role attribute. Multiple netCDF files with the same schema can be converted into a single feature class with a unique InstanceID field. Each netCDF file should have a variable marked with the same cf_role attribute, which will be used as the identifying field across multiple files. Aggregation will occur strictly along the instance dimension of this variable.

  • For both instance and observation variables, matching occurs by variable name. That is, if two variables in different netCDF files have the same name, they will be interpreted as representing the same thing.

  • Multiple instance and observation variables (cruise number, temperature, salinity, and so on) can be selected in the Instance Variables (instance_variables in Python) and Observation Variables (observation_variables in Python) parameters, respectively.

  • You can use the Analysis Extent (analysis_extent in Python) parameter to specify the output analysis area explicitly for a stand-alone tool operation or to override the environment setting as part of a workflow. You can specify the extent by typing values, choosing the display extent, selecting a layer, or browsing for an input dataset.

  • The default Analysis Extent value is calculated from the union extent of the input netCDF files.

  • If the extent is not explicitly specified as the parameter value, it will be derived from the analysis environment settings.

  • A 2D or 3D point feature class will be created that contains all the location information along with the selected instance fields, as well as a related table containing the selected observation variables. An optional layer can also be created, which will join the table to the feature class based on the InstanceID field.
  • A data variable in the netCDF file can use a grid_mapping variable to explicitly define the coordinate reference system (CRS) used for the spatial coordinate values. The grid mapping epsg_code attribute can be used to select a GCS or PCS. Also, the grid mapping esri_pe_string, crs_wkt, and spatial_ref attributes can all be used to define either a WKT 1 or WKT 2 string. If any of these attributes are present, no other attributes for the horizontal coordinate system are used. Supported WKT 1 and WKT 2 strings, along with their WKIDs, are listed here: Vertical coordinate systems, Projected coordinate systems and Geographic coordinate systems.

  • If the spatial coordinate values are 3D, the grid_mapping variable should also specify a vertical coordinate system (VCS). A VCS is a combination of a vertical datum, a linear unit of measure, and the direction (up or down) that vertical coordinates increase. The datum is typically obtained from an attribute of the grid mapping variable and the other properties are obtained from the vertical coordinate variable. An arbitrary vertical datum can be specified using a compound WKT string as the value of one of the WKT attributes listed above. A gravity-based datum can be specified using either the geoid_name or geopotential_datum_name attribute. In addition, a tidal datum can be implicitly specified using one of the tidal standard names for the vertical coordinate variable. If no VCS is specified and a vertical coordinate variable is present, Instantaneous Water Level Depth or Height (epsg:5831, epsg:5829) will be selected as the default.

Parameters

LabelExplanationData Type
Input NetCDF Files or Folders

The input netCDF files that will be used to create a feature class. Individual netCDF files, as well as folders that contain multiple netCDF files, can be used.

The input netCDF files must have the same DSG feature type and schema.

Folder; File
Target Workspace

The enterprise or file geodatabase in which the output feature class and table will be created. This must be an existing workspace.

Workspace
Output Point Name

The name of the feature class that will contain the locations from the netCDF variables. These variables will be added as fields from the Instance Variables parameter.

String
Observation Variables
(Optional)

The netCDF variables that contain all the observation values at each location and each vertical level. These will be added as fields to the output table

String
Output Join Table Name
(Optional)

The name of the output table that will contain all the records from the Observation Variables parameter.

String
Instance Variables
(Optional)

The netCDF variables that differentiate individual features and represent the locations where observations are made. These variables will be added as fields to the output feature class.

String
Include Subdirectories
(Optional)

Specifies whether the files residing in the subdirectories of an input folder will be used.

  • Checked—All netCDF files in all subdirectories will be used.
  • Unchecked—Only files in the input folder will be used. This is the default.
Boolean
Input Climate and Forecast Metadata
(Optional)

The XML file with an .ncml extension that will supply missing or altered CF information for the input netCDF files.

File
Analysis Extent
(Optional)

The extent that defines the area of the output feature class.

Extent
Output Join Layer
(Optional)

The output layer that will be created by joining the output table to the output feature class. This is an optional output.

Feature Layer

Derived Output

LabelExplanationData Type
Output Point

The output point feature class.

Feature Class
Output Join Table

The output table.

Table

arcpy.md.NetCDFTimeSeriesToFeatureClass(in_files_or_folders, target_workspace, out_point_name, {observation_variables}, {out_table_name}, {instance_variables}, {include_subdirectories}, {in_cf_metadata}, {analysis_extent}, {out_join_layer})
NameExplanationData Type
in_files_or_folders
[in_files_or_folders,...]

The input netCDF files that will be used to create a feature class. Individual netCDF files, as well as folders that contain multiple netCDF files, can be used.

The input netCDF files must have the same DSG feature type and schema.

Folder; File
target_workspace

The enterprise or file geodatabase in which the output feature class and table will be created. This must be an existing workspace.

Workspace
out_point_name

The name of the feature class that will contain the locations from the netCDF variables. These variables will be added as fields from the instance_variables parameter.

String
observation_variables
[observation_variables,...]
(Optional)

The netCDF variables that contain all the observation values at each location and each vertical level. These will be added as fields to the output table

String
out_table_name
(Optional)

The name of the output table that will contain all the records from the observation_variables parameter.

String
instance_variables
[instance_variables,...]
(Optional)

The netCDF variables that differentiate individual features and represent the locations where observations are made. These variables will be added as fields to the output feature class.

String
include_subdirectories
(Optional)

Specifies whether the files residing in the subdirectories of an input folder will be used.

  • INCLUDE_SUBDIRECTORIESAll netCDF files in all subdirectories will be used.
  • DO_NOT_INCLUDE_SUBDIRECTORIESOnly files in the input folder will be used. This is the default.
Boolean
in_cf_metadata
(Optional)

The XML file with an .ncml extension that will supply missing or altered CF information for the input netCDF files.

File
analysis_extent
(Optional)

The Extent class determines the extent for the output raster dataset.

The form of the Extent class is as follows:

  • Extent (XMin, YMin, XMax, YMax)

    where:

    • XMin—The extent XMin value
    • YMin—The extent YMin value
    • XMax—The extent XMax value
    • YMax—The extent YMax value

Extent
out_join_layer
(Optional)

The output layer that will be created by joining the output table to the output feature class. This is an optional output.

Feature Layer

Derived Output

NameExplanationData Type
out_point

The output point feature class.

Feature Class
out_table

The output table.

Table

Code sample

NetCDFTimeSeriesToFeatureClass example 1 (Python window)

This example creates a feature class and a table from a netCDF DSG time series file from a weather station dataset.

import arcpy
arcpy.md.NetCDFTimeseriesToFeatureClass(r"C:\WOD\station_Tmax.nc", r"C:\ArcGIS\Projects\output.gdb", 
										"Tmax_1990_2020", "Tmax", None, "Tmax_1990_2020_table", 
										"INCLUDE_SUBDIRECTORIES", None, "DEFAULT", “”)
NetCDFTimeSeriesToFeatureClass example 2 (stand-alone script)

This example creates a feature class from a netCDF DSG time series file from climate re-analysis data with an .ncml file.

# Name: NetCDFTimeSeriesToFeatureClass_Ex_02.py
# Description: Creates a feature class from a netCDF DSG timeseries file from ARGO with a .ncml file. 

# Import system modules
Import arcpy  

# Set the local variables 
in_files_or_folders = r"C:\ARGO" 
target_workspace = r"C:\outputs\argo.gdb" 
out_point_name = “argo_point” 
observation_variables = “temperature;pressure” 
out_table_name = “” 
instance_variables = “” 
include_subdirectories = “DO_NOT_INCLUDE_SUBDIRECTORIES” 
in_cf_metadata = “” 
analysis_extent = “” 
out_join_layer = “” 

# Execute NetCDFTimeSeriesToFeatureClass
arcpy.md.NetCDFTimeSeriesToFeatureClass(in_files_or_folders, target_workspace,
                                      out_point_name, observation_variables,
                                      out_table_name, instance_variables,
                                      include_subdirectories, in_cf_metadata,
                                      analysis_extent, out_join_layer)

Licensing information

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

Related topics