Prepare Aviation Data (Aviation)

Available with Aviation Charting license.

Summary

Migrates attributes from main aviation data to their cartographic features based on specific JSON scripts. These attributes are used for labeling and symbolizing cartographic features. Attributes defined in the JSON will be copied from their locations in the main feature classes and formatted into output attributes also defined in the JSON.

Usage

  • Attributes will be migrated to the cartographic features in the format || <> <value> <> || in which features are delimited by || and the attribute values of those features are delimited by <>.

    For example, to migrate the TYPE_CODE, IDENT_TXT, and MAGNETICVARIATION_VAL features from the main ADHP feature class, the output in the ADHP_C cartographic feature class will be <> TYPE_CODE <> IDENT_TXT <> MAGNETICVARIATION_VAL <>.

    Note:

    The || symbols may not be included in the migrated information if a single feature is being migrated from the main features to the cartographic features.

    Tip:

    The ArcGIS Aviation Charting product data files contain Arcade scripts for parsing this delimited data. These scripts are located at <installation location>\ArcGIS Aviation Charting\Product Files\<version>\SampleConfigs\ICAO\Enroute\ArcadeExpressions.

  • The optional Input Datasets parameter is populated by a list of tables and feature classes from the provided JSON. You can select specific tables and features classes for evaluation. If none are selected, they will all be evaluated.

    Caution:

    There are existing limitations with using a file geodatabase that will affect the performance of this tool.

  • The Configuration File (.json) parameter lists all of the rules used to extract information from the main aviation data and migrates the information to the cartographic features so that it can be used for symbology and labeling expressions. For each cartographic feature class, a list of rules can be added, with each consisting of the following elements:

    • calcfield—The required field on the cartographic feature where the output will be written. This is required.
    • fields—A list of the main feature fields from which information will be extracted. Fields from multiple related tables can be used. This is required.
    • tables—A list of the tables or feature classes from which attribute information will be extracted. All of the tables referenced by a field in the fields list should be included. This is required.
    • where—An SQL expression that defines the relationships between the tables and optionally filters the results. This is required.
    • distinct—When set to true, duplicate values are removed from the results and only distinct values are written to the calcfield field. This is optional.
    • requires—A property that sets dependencies for the calcfield elements to determine the order in which they are written. This is optional.
  • There is no set order for the calcfield elements when they are processed from the .json configuration file. There may be times where a calcfield value has a dependency on the output of another calcfield value.

    • When a calcfield value depends on the output of another calcfield value, you must add a requires key value pair to the calcfield value in the JSON.
    • The value is a string with a key value pair of the table and the calcfield value required to be processed before the current calcfield value. For example, "requires":"airspace_c.service_info".
    • A list can also be provided if the output of multiple other calcfield elements are required, for example, "requires":["airspace_c.service_info", "navaidsystem_c.fss_info"].
    • If listing a required calcfield value, which also has its own dependency, it is not necessary to also list its required field. However, it must have its own requires key value pair in the JSON.

  • This tool will adjust the processing order to ensure that any required dependencies are run first.

  • The following sample configuration file can be used to populate the Configuration File (.json) parameter:

    {
        
        "adhp_c":[{ 
                "calcfield":"adhp_info", 
                "fields": [ 
                    "adhp.TYPE_CODE",
                    "adhp.IDENT_TXT",
                    "adhp.MAGNETICVARIATION_VAL"
                ],
                "tables": [
                    "adhp" 
                ],
                "where": "Master_ID = adhp.gfid" 
            },
            {
                "calcfield":"airspace_info",
                "fields": [
                    "airspace.class_code",
                    "airspace.workhr_code"
                ],
                "tables": [
                    "adhp",
                    "airspace"
                ],
                "where": "Master_ID = adhp.gfid and adhp.gfid = airspace.adhp_id and airspace.class_code IN ('C', 'D')"
            }],
        "navaidsystem": [
            {
                "calcfield":"availability_info",
                "fields": [
                    "availability.operationstatus_code"
                ],
                "tables": [
                    "navaidsystem",
                    "availability"
                ],
                "where": "navaidsystem.gfid = availability.predicated_id"
            },
            {
                "calcfield":"navaidcomponent_info",
                "fields": [
                    "navaidcomponent.subtype_code",
                    "navaidcomponent.slavedvariation_val",
                    "navaidcomponent.channel_txt",
                    "navaidcomponent.frequency_val",
                    "navaidcomponent.status_code",
                    "navaidcomponent.workhr_code",
                    "navaidcomponent.voice_code"
                ],
                "tables": [
                    "navaidsystem",
                    "navaidassociation",
                    "navaidcomponent"
                ],
                "where": "navaidsystem.gfid = navaidassociation.navaidsystem_id and navaidassociation.navaidcomponent_id = navaidcomponent.gfid", 
                "distinct" : true,
                "requires": ["adhp_c.adhp_info", "adhp_c.availability_info"] 
    
    
            }
        ]

    The migration data will be stored in the target feature class in the calcfield value. This is populated with the values, such as attributes, from the fields value, which target the source feature class.

    Note:

    The distinct property allows duplicate values to be removed from the results.

Parameters

LabelExplanationData Type
Target Geodatabase

The ArcGIS Aviation Charting schema workspace on which the evaluation will be run.

Workspace
Configuration File (.json)

The .json file containing the evaluation criteria.

File
Input Datasets
(Optional)

The names of the tables and feature classes that will be evaluated.

String
Area of Interest Features
(Optional)

An area of interest polygon layer that will be used to spatially filter source features.

Feature Layer

Derived Output

LabelExplanationData Type
Output Workspace

The output aviation workspace containing the evaluation results.

Workspace

arcpy.aviation.PrepareAviationData(target_gdb, config_file, {in_dataset_names}, {aoi_features})
NameExplanationData Type
target_gdb

The ArcGIS Aviation Charting schema workspace on which the evaluation will be run.

Workspace
config_file

The .json file containing the evaluation criteria.

File
in_dataset_names
[in_dataset_names,...]
(Optional)

The names of the tables and feature classes that will be evaluated.

String
aoi_features
(Optional)

An area of interest polygon layer that will be used to spatially filter source features.

Feature Layer

Derived Output

NameExplanationData Type
out_workspace

The output aviation workspace containing the evaluation results.

Workspace

Code sample

PrepareAviationData example (stand-alone script)

The following Python script demonstrates how to use the PrepareAviationData function.

import arcpy

# set gp environment
arcpy.CheckOutExtension("Aeronautical")

# Input database where data 
target_gdb = r"C:\data\MyData.gdb"

# config file for data calculation
config_file = r"C:\data\config.json"

# subset of tables or feature classes that will be calculated
in_datasets = "adhp;navaidsystem"

#Input your area of interest features
aoi_features = r"C:\data\MyData.gdb\AOI"

# Running tool
arcpy.aviation.PrepareAviationData(target_gdb, config_file, in_datasets, aoi_features)

arcpy.CheckInExtension("Aeronautical")

Environments

This tool does not use any geoprocessing environments.

Licensing information

  • Basic: No
  • Standard: Requires ArcGIS Aviation Charting
  • Advanced: Requires ArcGIS Aviation Charting

Related topics