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
File details
Details for the file mapactionpy_arcmap-0.3.dev71.tar.gz
.
File metadata
- Download URL: mapactionpy_arcmap-0.3.dev71.tar.gz
- Upload date:
- Size: 11.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/2.7.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a69df45330c3b297e3df879c6f1daa2c64774841aae405f9c6e75e90da828af |
|
MD5 | 547a32818f03c042d509ba6a50dfbf6c |
|
BLAKE2b-256 | bcbef889c1c0b4bbe061e6dba86dc43e5f09f0c00f7c3ada87b8abbb0e7e63b8 |