Mapping the armed conflicts events of 24th February 2022

Jan Tschada
Geospatial Intelligence
3 min readFeb 26, 2023

By mapping the armed conflict events of 24th February 2022, you can recognize the Russian invasion of Ukraine without being a military expert. For this Open Source Intelligence workflow, we can rely on ready-to-use mapping and location services being deployed as a platform-as-a-service offering.

If you are a developer, or someone with Python scripting capabilities, the following approach is an effective way of getting your hands dirty with geospatial intelligence.

Setting up the Python environment

We created a new Python environment using conda, and installed our favorite geospatial intelligence module. The geoint module requires the arcgis module for geospatial visualization, analysis, and data management. Another required module named georapid offers geospatial knowledge services for intelligence related workflows. For mapping the armed conflict events, we only needed to install the geoint module, using pip from the activated conda environment.

python -m pip install geoint

Prototyping using a notebook

The arcgis module contains a notebook extension offering map and scene widgets with stunning 2D and 3D rendering capabilities. The gis module handles various authentication schemes against ArcGIS Online. We used two feature sets representing the raw and aggregated armed conflict events. A web map is a JSON serializable document describing all cartographic capabilities and metadata like layers related to space and time included. Creating a web map instance using Python returns 2D mapping capabilities of the default basemap. When adding feature sets as layers to a web map, you can tweak the rendering and drawing info.

The georapid module offers access to broadcast news/events worldwide, and easy-to-use spatial aggregations of geospatial features. We queried the armed conflict events using the conflicts module. The aggregate and query function expect a datetime value representing the date of interest. Both functions have a format parameter defining the feature's output format.

For our prototyping activities, the notebook needed the following import directives.

Geospatial Intelligence Imports

We implemented some utility functions offering a web map using the OpenStreetMap basemap, and reusable simple and class-breaks render instances for the armed conflict feature layers.

The official ArcGIS API for Python documentation explains the various rendering capabilities of the map view widget in more detail.

Geospatial Intelligence Utility Functions

We used one of our API keys accessing the RapidAPI hosted geoconflicts² services. The georapid module is equipped with a default environment factory implementation. This implementation expects an environment variable named x_rapid_api_key containing the API key. We created a client instance targeting the geoconflicts API and queried the armed conflict events as feature sets using the Esri FeatureSet output format.

The official georapid documentation explains the API key usage in more detail.

Armed conflict events feature sets of 24th February 2022

We added the aggregated armed conflict events to a web map using the appropriated render instance. Without being a military expert, you can easily recognize a spatial pattern around the country's border of Ukraine by just studying the displayed map view.

Mapping the armed conflict events of 24th February 2022
Aggregated armed conflict events of 24th February 2022
Armed conflict events of 24th February 2022

Summary

The map widget offers common spatial capabilities for identifying spatial patterns of the armed conflict events. With the help of platform-as-a-service offerings, we mapped the armed conflict events of 24th February 2022 using a web map in minutes.

Are you still wasting your time doing Open Source Intelligence workflows with legacy do-it-yourself on-premise technology stacks?

References:

[1] Yet another armed conflict database
Our Medium article introducing the armed conflict database as a mapping service offering.

[2] Geoconflicts API
Query armed conflict events worldwide and visualize them using spatial aggregations.

[3] Code Snippets
Public code snippets being hosted at GitHub.

[4] Armed Conflicts Dashboard
Armed Conflicts Dashboard showing all armed conflicts of 24th February 2022.

[5] ArcGIS Platform
Bring the power of maps and location services to your applications.

--

--