Code Monkey home page Code Monkey logo

air-c2-cop-python's Introduction

air-c2-cop-python

This repository is no longer maintained.

Additional information is available in the repository's Wiki.

A collection of scripts and files necessary for the creation of the Defense Solutions Air C2 COP project.

The Air Operations Command and Control Common Operating Picture is a gallery of maps and apps for an Air Operations Officer to maintain a common operating picture for command and control. These include a 3D web application built in Web AppBuilder for situational awareness and analysis, an operations dashboard for real-time awareness and decision making, and story map journals to brief pre- and post-action. These applications all reference a central web map and web scene integrated with other real-time data inputs analyzed using GeoEvent Extension.

Repository Owner: Joe

Secondary: Gigzy

  • Merge Pull Requests
  • Creates Releases and Tags
  • Manages Milestones
  • Manages and Assigns Issues

Sections

Features

Requirements

  • ArcGIS 10.4.1 Enterprise

Instructions To Get Started

Fork and Clone the Repo

Start contributing to the solutions-geoprocessing-toolbox repo by making a fork and cloning it to your local machine.

  • Fork the dev branch from the repo on github.com.
  • Clone your remote onto your local system.

Set Your Upstream

Setting the parent repo to get changes from.

  • > git remote -v

if no upstream is listed continue with:

  • > git remote add upstream https://github.com/Esri/air-c2-cop-python
  • > git remote set-url upstream --push no_push

check that an upstream is registered:

  • > git remote -v

Getting Changes from Upstream

The solutions-geoprocessing-toolbox repo changes often, so make sure you are getting the latest updates often.

  • > git fetch upstream
  • > git merge upstream/dev

Resources

Issues

  • Find a bug or want to request a new feature? Please let us know by submitting an issue.

Contributing

Esri welcomes contributions from anyone and everyone through GitHub. Please see Esri's guidelines for contributing.

When you contribute to this repository we ask that you follow the guidelines below. If you've got questions, or you get stuck, please ask the Repository Owner. We are here to help! Thanks.

Share Your Mods

If you've made changes to the repo that you want to share with the community.

  • Commit your changes to your local
  • Sync local with your remote fork
  • Make a Pull Request from your remote fork on github.com.

Notes On Contributing

  • Always work in the dev branch, never in master. This helps us keep our releases clean.
  • Never merge Pull Requests. The Repository Owner needs to test any updates to make sure the repo is stable.
  • Always log an Issue for problems you find, though you should check through the existing issues to make sure it wasn't already logged.

Credits

Licensing

Copyright 2016 Esri

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

A copy of the license is available in the repository's license.txt file.

[](Esri Tags: ArcGIS Defense and Intelligence Military Emergency Management National Security) [](Esri Language: Python)

air-c2-cop-python's People

Contributors

abrowning80 avatar adgiles avatar joebayles avatar phornstein avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

air-c2-cop-python's Issues

[13] Add FlightAware feed to Dashboard

User Story:

  • As an operations officer I have the ability to see all current and planned flights in the area, which allows me to better understand the current air operations situation.

Acceptance Criteria:

  • A 2D layer displays all aircraft currently in the air or planning on departing in a 24-hour period in Operations Dashboard.
  • A list and a detail widget linked to the 2D layer in Operations Dashboard.
  • Search functionality in the list widget to search by flight number or other factors.

Attributes:
Position
Departure
Arrival
Flight Plan
Cancellation

Estimation 
no stream services support yet in Ops Dashboard - next release
GE has a simulator and can be used as a workaround

https://geoeventsample3.esri.com:6443/arcgis/rest/services
https://sedefense.esri.com/arcgis

[5] Add Weather Effects to Dashboard

User Story:

  • As an operations officer I have the ability to see the weather effects of those conditions,which allows me to make more informed decisions regarding air operations.

Acceptance Criteria:

  • The outputs from the MAoW tool in the webmap, and symbology and pop-ups working properly.
    -forecasted weather effects on operations.

Estimation
Use MAoW tools on information we have
NetCDF data on more than one elevation
contingent on more than one elevation or it will be a go/no go

┆Issue is synchronized with this Asana task

[1] Create sample FlightAware dataset

Acceptance Criteria:
A simulated dynamic feed that we can use to test and demo this data.

Have we decided on location/area? Monterrey, California
capture a subset of time - may just be able to grab from Ben

already have FlightAware data from the team or Ben
making connectable to GeoEvent
flat file with rows or database table - flat file, run with geomessage simulator

spatial temporal datastore
creating a separate database

not for public release - demo only, no solutions website release

┆Issue is synchronized with this Asana task

[2] Play ATO and weather

Use the template

User story:
As an operations officer, I can hit play in the web app and watch the ATO/ACO/Weather change throughout the 24 hour period.
Acceptance Criteria:

Notes:
make sure ATO is time aware
has 3 fields that hold time
no early, target, no later

related table comes through on map service

add time aware widget - how advanced in web app builder?
how configure map service - and the web map
build up the time or chunks of time

┆Issue is synchronized with this Asana task

[2] Create Single Flight Monitoring dashboard (Operations Dashboard)

User Story:

  • As an operations officer, I have the ability to see all current flights in the area, multiple real-time information feeds, and analyze that information; which allows me to better understand the current air operations situation.

Acceptance Criteria:

  • A Single Screen Operations Dashboard that incorporates 2D FlightAware data, the current Airspace Coordination Order, current Air Tasking Orders, and is browser-friendly.

(Just save the multiple-screen dashboard as a single screen dashboard)

Create 2D Air Operations mission briefing story map (Portal)

User Story:

  • As an operations officer I have the ability to create a 2D story map which allows me to conduct regular briefings about what happened over the last 24 hours.

Acceptance Criteria:

  • A Story Map Journal that incorporates the Air Tasking Order web scene.

┆Issue is synchronized with this Asana task

[8] Add Special Instructions (SPINs) feed to Dashboard

User Story:
- As an operations officer or mission planner, I have the ability to read all Special Instructions included in the ATO, which allows me to better understand the current operation.

Acceptance Criteria:

  • A widget that lists all current SPINs included in the ATO.

Estimation Notes:
only coming from the ATO
coming from the script harvesting information from the aTO
widget that lists that - out of the box dashboard widget
attribute of the whole ATO
output of script will have a lot of features
spin applies to the entire ATO

┆Issue is synchronized with this Asana task

[5] Create Multiple Screen dashboard (Operations Dashboard)

User Story:

  • As an operations officer, I have the ability to see all current flights in the area, multiple real-time information feeds, and analyze that information; which allows me to better understand the current air operations situation.

Acceptance Criteria:

  • A Multiple Screen Operations Dashboard that incorporates 2D FlightAware data, the current Airspace Coordination Order, current Air Tasking Orders, and a chat widget.

┆Issue is synchronized with this Asana task

[8] Create Geofences from TFRs

User Story

  • As an operations officer, I have the ability to receive a visual alert when a civilian or military aircraft enters a temporary flight restriction, which allows me to send the necessary alerts.

Acceptance Criteria

  • Geofences created from TFRs
  • Incident Detector configured to send message and update feature service.

3D shapes is not currently supported in GEE. However, a workaround would be to use the unextruded 2D polygon for the geofence, and then run a further check on height/extruded height of the polygon against height of the aircraft.

TFR has height
can't fly above/below
TFR - forest fires...can fly over it

already have the geometry for TFR

Create Geoprocessing Service for harvesting ATO

User Story

  • As an operations officer, I have the ability to automatically look into the folder where the ATO is published, automatically harvest the information from the new ATO, and automatically create features from that information.

Accceptance Criteria

  • A GEE service that looks into the target folder, runs the script to extract the necessary information, and publish that information to a feature service.

Dependent on the completion of Create ACO/ATO Harvester and populate a feature service Item

[8] Add Notices to Airmen (NOTAMs) feed to Dashboard

User Story:

  • As an operations officer I have the ability to see all NOTAMs relevant to my chosen geographic area, which allows me to better understand the current air operations situation and make better decisions or plans.

Acceptance Criteria:

  • A widget that lists all current NOTAMs for a specific geographic area
  • A widget that lists all current TFRs for specific geographic area

https://www.notams.faa.gov/dinsQueryWeb/
https://esri.app.box.com/files/0/f/7312158245/1/f_59822019217

parse data XML
GEE
out of the box

[3] Visualize ACO/ATO in Web Map

User Story

Acceptance Criteria

2D map service
make sure ATO is time aware

create portal group - allow everyone to edit web map

publish data and

[3] Visualize ACO/ATO in Web Map

User Story

Acceptance Criteria

2D map service
make sure ATO is time aware

create portal group - allow everyone to edit web map

publish data and

┆Issue is synchronized with this Asana task

[21] Add Range Threat Domes to Dashboard

User Story

  • As an operations officer I can visualize the anti-air threat in 2D which allows me to make more informed decisions.

Acceptance Criteria:
-Importing the output from Range Dome analysis template and ensuring symbology and pop-ups are configured properly.

Estimation Notes:
Output is a 3D multi-patch
won't transfer to 2D nicely
hollow dome

┆Issue is synchronized with this Asana task

Add Military feed to Dashboard

User Story
- As an operations officer I have the ability to see all current and planned military flights in the area, which allows me to better understand the current air operations situation.

Acceptance Criteria
- A 2D layer displays all aircraft currently in the air or planning on departing in a 24-hour period in Operations Dashboard.
- A list and a detail widget linked to the 2D layer in Operations Dashboard.

http://niris.nc3a.nato.int/

Estimation Notes:
Basically FlightAware for military flights

┆Issue is synchronized with this Asana task

[3] Configure Air Plan app (Web AppBuilder)

User Story:

  • As an operations officer I have the ability to visualize Airspace Control Orders and Air Tasking Orders in 2D, which allows me to understand the airspace operations and situation for the next 24 hours.

Acceptance Criteria:

  • An application that shows web scene created from ATO/ACO visualization
  • Has same theme as NCIA requirement - multi-gray (need hex values)
  • Has a classification banner (Green Unclassified)

Notes:
portal has functionality
is there a theme we can create based on existing with the banner?

[5] Create Multiple Screen dashboard (Operations Dashboard)

User Story:

  • As an operations officer, I have the ability to see all current flights in the area, multiple real-time information feeds, and analyze that information; which allows me to better understand the current air operations situation.

Acceptance Criteria:

  • A Multiple Screen Operations Dashboard that incorporates 2D FlightAware data, the current Airspace Coordination Order, current Air Tasking Orders, and a chat widget.

[3] Create Alerts for ACO restricted zones

As an operations officer, I have the ability to be alerted when an aircraft flies into a restricted operating zone, so I can alert the proper entities.

  • An incident detector geoevent processor configured to send a new feature to the map and send an email with the relevant information (combining the attributes of the two features, the aircraft and the restricted zone.
  • Alerts list widget created and added to dashboard.

User Story

  • As an operations officer, I have the ability to see when a specific zone in the Air is hot, or has aircraft moving through it, so I can clearly see where operations are currently happening.

Acceptance Criteria

  • Geofences created from ACOs
  • Incident Detector configured to send message and update feature service.

3D shapes is not currently supported in GEE. However, a workaround would be to use the unextruded 2D polygon for the geofence, and then run a further check on height/extruded height of the polygon against height of the aircraft.

[21] Add Weather Effects to Dashboard

User Story:

  • As an operations officer I have the ability to see the weather effects of those conditions,which allows me to make more informed decisions regarding air operations.

Acceptance Criteria:

  • The outputs from the MAoW tool in the webmap, and symbology and pop-ups working properly.
    -forecasted weather effects on operations.

Estimation
Use MAoW tools on information we have
NetCDF data on more than one elevation
contingent on more than one elevation or it will be a go/no go

Extract demo material for NCIA demo

Acceptance Criteria - Anyone able to demo without a connection to NSEC or the dev environment.

host the app - need to extract everything from NSEC
if using own environment, need to extract

where do we host it? 10.5 server has IIS
can install stand alone web app dev edition
does dev edition run on same machine?

Visualize FlightAware feed to Dashboard

User Story:

  • As an operations officer I have the ability to see all current and planned flights in the area, which allows me to better understand the current air operations situation.

Acceptance Criteria:

  • A 2D layer displays all aircraft currently in the air or planning on departing in a 24-hour period in Operations Dashboard.
  • A list and a detail widget linked to the 2D layer in Operations Dashboard.
  • Search functionality in the list widget to search by flight number or other factors.

Attributes:
Position
Departure
Arrival
Flight Plan
Cancellation

Estimation 
no stream services support yet in Ops Dashboard - next release
GE has a simulator and can be used as a workaround

https://geoeventsample3.esri.com:6443/arcgis/rest/services
https://sedefense.esri.com/arcgis

┆Issue is synchronized with this Asana task

[5] Add Weather feed to Dashboard

User Story:

  • As an operations officer I have the ability to see current and forecasted weather conditions, which allows me to make more informed decisions regarding air operations.
    Acceptance Criteria:
    - A 2D layer that displays current and

https://skyvector.com/
http://www.aviationweather.gov/adds/tafs/
https://tmservices1.esri.com/arcgis/rest/services/LiveFeeds/NOAA_METAR_current_wind_speed_direction/MapServer
http://www.arcgis.com/home/item.html?id=f2538bd21c844f2cb04371a3b3d4dc7b

Wind
Visibility
Ceiling
Clouds
Weather

Estimation Notes:
Stations
Radar

[3] Configure Air Plan app template (Web AppBuilder)

User Story:

  • As an operations officer I have the ability to visualize Airspace Control Orders and Air Tasking Orders in 2D, which allows me to understand the airspace operations and situation for the next 24 hours.

Acceptance Criteria:

  • An application that shows web scene created from ATO/ACO visualization
  • Has same theme as NCIA requirement - multi-gray (need hex values)
  • Has a classification banner (Green Unclassified)

Notes:
portal has functionality
is there a theme we can create based on existing with the banner?

┆Issue is synchronized with this Asana task

[8] Add Notices to Airmen (NOTAMs) feed to Dashboard

User Story:

  • As an operations officer I have the ability to see all NOTAMs relevant to my chosen geographic area, which allows me to better understand the current air operations situation and make better decisions or plans.

Acceptance Criteria:

  • A widget that lists all current NOTAMs for a specific geographic area
  • A widget that lists all current TFRs for specific geographic area

https://www.notams.faa.gov/dinsQueryWeb/
https://esri.app.box.com/files/0/f/7312158245/1/f_59822019217

parse data XML
GEE
out of the box

[2] Create Single Flight Monitoring dashboard (Operations Dashboard)

User Story:

  • As an operations officer, I have the ability to see all current flights in the area, multiple real-time information feeds, and analyze that information; which allows me to better understand the current air operations situation.

Acceptance Criteria:

  • A Single Screen Operations Dashboard that incorporates 2D FlightAware data, the current Airspace Coordination Order, current Air Tasking Orders, and is browser-friendly.

(Just save the multiple-screen dashboard as a single screen dashboard)

┆Issue is synchronized with this Asana task

[8] Create sample Military Feed dataset

Acceptance Criteria:
A static sample dataset that we can use to test and demo this data.
Military Symbology

doesn't need to be NIRIS, but needs to look like a military feed
use a subset of flightaware and make it look "military"
change attribute
symbolize differently
do they need to fly faster, hang out in an area longer?
attributes -
Link16 - values would be different, not additional attributes from FlightAware
existing tools to create tracks to create flight path, but missing flight altitude

another feed from FAA (ASDI) that the geoevent team has

[8] Add Special Instructions (SPINs) feed to Dashboard

User Story:
- As an operations officer or mission planner, I have the ability to read all Special Instructions included in the ATO, which allows me to better understand the current operation.

Acceptance Criteria:

  • A widget that lists all current SPINs included in the ATO.

Estimation Notes:
only coming from the ATO
coming from the script harvesting information from the aTO
widget that lists that - out of the box dashboard widget
attribute of the whole ATO
output of script will have a lot of features
spin applies to the entire ATO

[1] Create sample FlightAware dataset

Acceptance Criteria:
A simulated dynamic feed that we can use to test and demo this data.

Have we decided on location/area? Monterrey, California
capture a subset of time - may just be able to grab from Ben

already have FlightAware data from the team or Ben
making connectable to GeoEvent
flat file with rows or database table - flat file, run with geomessage simulator

spatial temporal datastore
creating a separate database

not for public release - demo only, no solutions website release

Extract demo material for NCIA demo

Acceptance Criteria - Anyone able to demo without a connection to NSEC or the dev environment.

host the app - need to extract everything from NSEC
if using own environment, need to extract

where do we host it? 10.5 server has IIS
can install stand alone web app dev edition
does dev edition run on same machine?

┆Issue is synchronized with this Asana task

[3] Visualize Military feed in Web App

User Story
- As an operations officer I have the ability to see all current and planned military flights in the area, which allows me to better understand the current air operations situation.

Acceptance Criteria
- A 3D layer that displays all aircraft currently in the air or planning on departing in a 24-hour period in the Web App.

NIRIS shows up in KMZ format. We have sample data that we could use, system integrator can connect to the feed.

http://niris.nc3a.nato.int/

┆Issue is synchronized with this Asana task

Create Proximity Alerts for Stream Services

User Story

  • As an operations officer, I have the ability to be alerted when an aircraft flies into a restricted flight area, so I can alert that aircraft and take the proper precautions.

Acceptance Criteria

  • An incident detector geoevent processor configured to send a new feature to the map and send an email with the relevant information (combining the attributes of the two features, the aircraft and the Restricted Zone.

[8] Create sample Military Feed dataset

Acceptance Criteria:
A static sample dataset that we can use to test and demo this data.
Military Symbology

doesn't need to be NIRIS, but needs to look like a military feed
use a subset of flightaware and make it look "military"
change attribute
symbolize differently
do they need to fly faster, hang out in an area longer?
attributes -
Link16 - values would be different, not additional attributes from FlightAware
existing tools to create tracks to create flight path, but missing flight altitude

another feed from FAA (ASDI) that the geoevent team has

┆Issue is synchronized with this Asana task

Create database and schema

User Story

  • As a data manager, I have the ability to install and administer to the Air C2 COP, which allows me to ensure everything is running smoothly.
    Acceptance Criteria
  • For everything that is a feed
    ACO
    ATO
    FlightAware
    Weather
    NOTAMS

Estimation Notes:
Done after build ATO and ACO
ATO and ACO explain every part of the standard
Will create a basic standard because the ATO/ACO one is LIMDIS
Domain values
ATO - Points, LInes, Polygons; will have airframe (pick airplane), armormen; time on, time off
6 feature classes total
Tables for time
Gigzy has a working schema - has not set domains on fields

Use one we have for ACO/ATO
Add flightaware schema to it

┆Issue is synchronized with this Asana task

Create Classification Banner

User Story:
As an Operations Officer, I have the ability to tell very clearly that I am working in the UNCLASSIFIED space, so I know to only use UNCLAS data.

Acceptance Criteria:
A green bar along the top (optionally on the bottom as well) that says "UNCLASSIFIED" in the middle.

[13] Add Military feed to Dashboard

User Story
- As an operations officer I have the ability to see all current and planned military flights in the area, which allows me to better understand the current air operations situation.

Acceptance Criteria
- A 2D layer displays all aircraft currently in the air or planning on departing in a 24-hour period in Operations Dashboard.
- A list and a detail widget linked to the 2D layer in Operations Dashboard.

http://niris.nc3a.nato.int/

Estimation Notes:
Basically FlightAware for military flights

[3] Create database and schema

User Story

  • As a data manager, I have the ability to install and administer to the Air C2 COP, which allows me to ensure everything is running smoothly.
    Acceptance Criteria
  • For everything that is a feed
    ACO
    ATO
    FlightAware
    Weather
    NOTAMS

Estimation Notes:
Done after build ATO and ACO
ATO and ACO explain every part of the standard
Will create a basic standard because the ATO/ACO one is LIMDIS
Domain values
ATO - Points, LInes, Polygons; will have airframe (pick airplane), armormen; time on, time off
6 feature classes total
Tables for time
Gigzy has a working schema - has not set domains on fields

Use one we have for ACO/ATO
Add flightaware schema to it

[3] Visualize FlightAware live feed in 2D Web App

User Story:

  • As an operations officer I have the ability to see all current and planned flights in the area, which allows me to better understand the current air operations situation.

Acceptance Criteria:

  • A 3D layer that displays all aircraft currently in the air or planning on departing in a 24-hour period in the Web App.

Minimal support for lines in 3D web scene
Cap on polygons, cap may be different on points
Do web scenes support stream services?

notes:
potential to use temporal data store - new tech - slight unknown
stream service
can stream from spatial temporal data store
either store in data store and also create a stream service
live or create a piece of it

store in data store
simulated feed
live feed - most important

┆Issue is synchronized with this Asana task

[13] Create Geofences from Range Domes

User Story

  • As an operations officer, I have the ability to receive a visual alert when a civilian or military aircraft enters a threat dome which allows me to send the necessary alerts.

Acceptance Criteria

  • Geofences created from range domes
  • Incident Detector configured to send message and update feature service.

3D shapes is not currently supported in GEE. However, a workaround would be to use the unextruded 2D polygon for the geofence, and then run a further check on height/extruded height of the polygon against height of the aircraft.

┆Issue is synchronized with this Asana task

Add Weather feed to Dashboard

User Story:

  • As an operations officer I have the ability to see current and forecasted weather conditions, which allows me to make more informed decisions regarding air operations.
    Acceptance Criteria:
    - A 2D layer that displays current and

https://skyvector.com/
http://www.aviationweather.gov/adds/tafs/
https://tmservices1.esri.com/arcgis/rest/services/LiveFeeds/NOAA_METAR_current_wind_speed_direction/MapServer
http://www.arcgis.com/home/item.html?id=f2538bd21c844f2cb04371a3b3d4dc7b

Wind
Visibility
Ceiling
Clouds
Weather

Estimation Notes:
Stations
Radar

┆Issue is synchronized with this Asana task

[1] Create Alerts for ACO restricted zones

Use ACO status

As an operations officer, I have the ability to be alerted when an aircraft flies into a restricted operating zone, so I can alert the proper entities.

  • An incident detector geoevent processor configured to send a new feature to the map and send an email with the relevant information (combining the attributes of the two features, the aircraft and the restricted zone.
  • Alerts list widget created and added to dashboard.

User Story

  • As an operations officer, I have the ability to see when a specific zone in the Air is hot, or has aircraft moving through it, so I can clearly see where operations are currently happening.

Acceptance Criteria

  • Geofences created from ACOs
  • Incident Detector configured to send message and update feature service.

3D shapes is not currently supported in GEE. However, a workaround would be to use the unextruded 2D polygon for the geofence, and then run a further check on height/extruded height of the polygon against height of the aircraft.

┆Issue is synchronized with this Asana task

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.