Summary
Updates annotation for features on specific charts. The features are updated in the existing feature class.
Discussion
As features are updated in charts, annotation also needs to be updated for these features. This function can be used to update annotation features in existing annotation feature classes based on what is in the chart. It can also update advanced annotation such as Vertical Morse code.
Syntax
UpdateAnnotation (aoi_info, data_frame, production_database, feature_class_list, {data_model})
Parameter | Explanation | Data Type |
aoi_info | An AviationChartInfo object that contains the information for the map ID for the areas of interest to be processed. The MapID can be retrieved using the GetAviationAOI function and will be formatted as Solution Name::Product Class Name::Series Name::Product Name::Instance Name::AOI Name. | AviationChartInfo |
data_frame | The data frame for which the annotation will be updated. | DataFrame |
production_database | The path to the Aviation geodatabase that contains the chart data. | String |
feature_class_list [feature_class_list,...] | The feature classes where annotation needs to be updated. The information required includes the name of the annotation feature class and the annotation classes. This means the feature class and annotation classes must be provided in the following format: ["FeatureClass1::Anno Class1 ","FeatureClass2::Anno Class2"]. | String |
data_model | The data model used to determine whether the MapID or MapID_Txt field is used to get the annotation information. Possible values are AIS or DOD. (The default value is AIS) | String |
Code sample
UpdateAnnotation example
This sample script updates annotation for a single chart.
# Name: UpdateAnnotation.py
# Description: Updates annotation for an Alaskan chart
# Author: Esri
# Date: March 2015
# Import arcpyproduction and aviation modules
import arcpy
import arcpyproduction
# Check out Aviation license
arcpy.CheckOutExtension("Aeronautical")
# Define dictionary
mxdDictionary = {
"c:/data/AK_H02.mxd": {
"AK H-2":"Aeronautical::IFR_Enroute::AK High::AK H-2::AK H-2::AK H-2 AOI"},
"c:/data/AK_H01.mxd": {
"AK H-1":"Aeronautical::IFR_Enroute::AK High::AK H-1::AK H-1::AK H-1 AOI",
"Seattle Inset":"Aeronautical::IFR_Enroute::AK High::AK H-1::Seattle Inset::Seattle Inset AOI"}}
# Set variables
product_library = "c:/data/FAA_PL.sde"
production_database = "c:/data/FAA_PD.sde"
feature_class_list = ["ADHP_C_A::Default"]
# Define mapidListfrom the mxdDictionary defined above
mapidList = list(set(mapidValue for dataframeList in mxdDictionary.values() for mapidValue in dataframeList.values()))
# Get Aviation AOI
mapObjects = arcpyproduction.aviation.charting.GetAviationAOI(product_library,mapidList)
# Update annotation
for mxdLocation in mxdDictionary.keys():
mxd = arcpy.mapping.MapDocument(mxdLocation)
dataframes = arcpy.mapping.ListDataFrames(mxd)
for dataframe in dataframes:
if mxdDictionary[mxdLocation].has_key(dataframe.name) == 0:
continue
mapid = mxdDictionary[mxdLocation][dataframe.name]
arcpyproduction.aviation.charting.UpdateAnnotation(mapObjects[mapid], data_frame, production_database, feature_class_list, "AIS")
# Check in Aviation license
arcpy.CheckInExtension("Aeronautical")