NetCDF Trajectories To Feature Class (Discrete Sampling Geometry) (Multidimension)

Summary

Creates a feature class from trajectories in netCDF files. In the Climate and Forecast (CF) metadata convention, a trajectory 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 trajectory is a series of data points along a path through space 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.

  • When the Route and Event option is specified for the Output Schema parameter (out_schema = "ROUTE_AND_EVENT" in Python), two outputs will be created. One is a 2D or 3D polyline feature showing the path of the trajectory, with From Time and To Time fields indicating the start and end time of each trajectory. The other output is a table with observation values at each record time with related fields with time added. When the Point option is specified (out_schema = "POINT" in Python), a 2D or 3D point feature layer will be created that illustrates the locations along each trajectory where observations are made.
  • 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 or Polyline 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 Event Table Name
(Optional)

The name of the output table that will contain all the records from the observation variables.

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
Output Schema
(Optional)

Specifies the output feature class type that will be created.

  • Route and EventA 2D or 3D polyline feature class will be created showing the path information.
  • PointA 2D or 3D feature class will be created showing all locations where observations are made.
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

Derived Output

LabelExplanationData Type
Output Point or Polyline

The output point or polyline feature class.

Feature Class
Output Event Table

The output table.

Table

arcpy.md.NetCDFTrajectoriesToFeatureClass(in_files_or_folders, target_workspace, out_point_or_polyline_name, {observation_variables}, {out_table_name}, {instance_variables}, {out_schema}, {include_subdirectories}, {in_cf_metadata}, {analysis_extent})
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_or_polyline_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.

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
out_schema
(Optional)

Specifies the output feature class type that will be created.

  • ROUTE_AND_EVENTA 2D or 3D polyline feature class will be created showing the path information.
  • POINTA 2D or 3D feature class will be created showing all locations where observations are made.
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

Derived Output

NameExplanationData Type
out_point_or_polyline

The output point or polyline feature class.

Feature Class
out_table

The output table.

Table

Code sample

NetCDFTrajectoriesToFeatureClass example 1 (Python window)

This example creates a feature class and a table from a netCDF DSG trajectories file from NOAA.

import arcpy
arcpy.md.NetCDFTrajectoriesToFeatureClass(r"C:\AMLR\amlr_202002160447.nc", r"C:\ArcGIS\Projects\output.gdb", 
										  "amlr", "temperature", None, "amrl_table", "ROUTE_AND_EVENT", 
										  "INCLUDE_SUBDIRECTORIES", None, "DEFAULT")
NetCDFTrajectoriesToFeatureClass example 2 (stand-alone script)

This example creates a feature class and a table from a netCDF DSG trajectories file of hurricane tracks.

# Name: NetCDFTrajectoriesToFeatureClass_Ex_02.py
# Description: Creates a polyline feature class from a netCDF DSG trajectories file of hurricane track. 

# Import system modules
Import arcpy  

# Set the local variables 
in_files_or_folders = r"C:\IBTrACS\Katrina"  
target_workspace = r"C:\outputs\hurricane.gdb" 
out_point_or_polyline_name = “Katrina_2005” 
observation_variables = “wind_speed” 
out_table_name = “” 
instance_variables = “” 
out_schema = “ROUTE_AND_EVENT” 
include_subdirectories = “DO_NOT_INCLUDE_SUBDIRECTORIES” 
in_cf_metadata = “” 
analysis_extent = “” 

# Execute NetCDFTrajectoriesToFeatureClass
arcpy.md.NetCDFTrajectoriesToFeatureClass(in_files_or_folders, target_workspace,
                                      out_point_or_polyline_name, observation_variables,
                                      out_table_name, instance_variables, out_schema,
                                      include_subdirectories, in_cf_metadata,
                                      analysis_extent)

Licensing information

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

Related topics