Used to drive ArcMap
Project description
MapChef
Adds geospatial data to an ArcMap MXD file based on a recipe from a cookbook configuration file and a product name.
Prerequisites
Python and ArcPy
C:\Python27\ArcGIS10.6\python.exe
Packaging
python setup.py bdist_wheel
Installing
python -m pip install jsonpickle
To install for development purposes: Clone the github repo then from the root of your local clone:
python -m pip install --user -e .
To install for use non-development purposes: Clone the github repo then from the root of your local clone:
python -m pip install .
todo: [] enable installation via pypi.
Configuration Files
Cookbook File
The mapCookbook.json file is a static configuration file which contains "recipes" for each map product.
This example cookbook only contains a single product: Country Overview
.
{
"recipes": [
{
"product": "Country Overview",
"classification": "Core",
"layers": [
"mainmap-s0-pt-settlements",
"mainmap-s0-pt-airports",
"mainmap-s0-pt-seaports",
"mainmap-s0-py-feather",
"Borders - Admin 0",
"mainmap-s1-ln-admin1",
"mainmap-s0-ln-roads",
"mainmap-s0-ln-rail",
"mainmap-s0-py-waterbodies",
"mainmap-s0-ln-rivers",
"mainmap-s0-py-admin1",
"mainmap-s0-py-affectedcountry",
"mainmap-s0-py-surroundingcountries",
"mainmap-s0-py-sea",
"mainmap-s0-ras-dem",
"mainmap-s0-ras-hillshade",
"Location Map - Admin 0 Polygon"
]
}
]
}
The layer names in the "layers
" array MUST correlate to layer files (.lyr
) in the specified layer directory.
layerConfig File
The Layer Config file (layerProperties.json) is a static file which defines how to add a particular layer.
{
"MapFrame": "Main Map",
"LayerName": "mainmap-s0-pt-settlements",
"RegExp": "^[a-z]{3}_stle_stl_pt_(.*?)_(.*?)_([phm][phm])(.*?).shp$",
"DefinitionQuery": "place IN ('national_capital', 'city', 'capital')",
"Display": "Yes",
"LabelClasses": [
{
"className": "National Capital",
"expression": "[name]",
"SQLQuery": "(\"place\" = 'national_capital')"
},
{
"className": "Admin 1 Capital",
"expression": "[name]",
"SQLQuery": "(\"place\" = 'city')"
}
]
},
Fields
# | Field | Description |
---|---|---|
1 | MapFrame |
Name of the Map Frame that the layer is to be added to |
2 | LayerName |
Name of the Layer. This must correlate with the layerFile.Name field in the mapCookbook.json file. |
3 | RegExp |
Regular Expression. Used when selecting files to display |
4 | DefinitionQuery |
Definition Query |
5 | Display |
Shows if set to 'Yes' |
6 | LabelClasses |
Details for displaying labels |
Execution
Parameters
# | Field | Description |
---|---|---|
1 | ```--cookbook`` | Path to the cookbook mapCookbook.json file. |
2 | --layerConfig |
Path to the layerProperties.json file. |
3 | --cmf |
Path to the Crash Move Folder root. |
4 | --template |
Path to the MXD file. |
5 | --product |
Name of product (must correlate with a product in the cookbook file). |
6 | --country |
Name of country. |
Example
C:\Python27\ArcGIS10.6\python.exe main.py \
--cookbook "D:\MapAction\2019-06-25 - Automation - El Salvador\GIS\3_Mapping\31_Resources\31A_Automation\mapCookbook.json" \
--layerConfig "C:\Users\steve\Source\Repos\mapactionpy_arcmap\poc\MapChef\Config\layerProperties.json" \
--cmf "D:\MapAction\2019-06-25 - Automation - El Salvador" \
--template "D:\MapAction\2019-06-25 - Automation - El Salvador\GIS\3_Mapping\32_MXD_Templates\arcgis_10_2\MapAction\01 Reference mapping\arcgis_10_2_ma000_reference_landscape_bottom_DEV.mxd" \
--product "Country Overview" \
--country "El Salvador"
Result
This Country Overview
map was generated:
Integration with MapAction Toolbar
In order to integrate this MapActionPy_ArcMap
module with the MapAction Toolbar, the following steps need to be carried out:
:information_source: The "Automation" add-in is in development in the automation
branch at: https://github.com/mapaction/mapaction-toolbox/tree/automation):
- All layer
.lyr
files should be made available under the crash move folder at the following location:\GIS\3_Mapping\31_Resources\312_Layer_files
- Layer properties file layerProperties.json copied to new directory under the crash move folder at the following location:
\GIS\3_Mapping\31_Resources\31A_Automation
- Map cookbook file mapCookbook.json copied to directory under the crash move folder at the following location:
\GIS\3_Mapping\31_Resources\31A_Automation
Authors
- Steve Hurst - https://github.com/mapaction/mapactionpy_arcmap
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for mapactionpy_arcmap-0.3.dev71.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a69df45330c3b297e3df879c6f1daa2c64774841aae405f9c6e75e90da828af |
|
MD5 | 547a32818f03c042d509ba6a50dfbf6c |
|
BLAKE2b-256 | bcbef889c1c0b4bbe061e6dba86dc43e5f09f0c00f7c3ada87b8abbb0e7e63b8 |