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
-
ArcMap MapAction templates.
-
Complete data scrable using Crash Move Folder Version xx.
Packaging
python setup.py bdist_wheel
Installing
-
Clone git clone https://github.com/mapaction/mapactionpy_arcmap/
-
Change Directory at the command line
cd mapactionpy_arcmap
-
Run package
python setup.py bdist_wheel
-
Install
python -m pip install jsonpickle 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 .
-
If required, uninstall the ArcMap Esri Add-In.
-
Reinstall ArcMap Esri Add-In using file here: https://drive.google.com/open?id=14TJCqA6rDrnu6VmRTHSLXFrDBr8FADGP
-
Restart ArcMap and ensure the 'Map Generation Tool' is available within the MapAction toolbar.
-
To run the 'Map Generation Tool' the following paths MUST exist:
<Crash Move Folder> \GIS\3_Mapping\31_Resources\312_Layer_files\
This must contain the Layer files (.lyr) which correspond with the names quoted in the mapCookbook.json file.
-
Move the layerProperties.json and mapCookbook.json files from the Git repository to:
<Crash Move Folder> \GIS\3_Mapping\31_Resources\31A_Automation\
i.e.
<Crash Move Folder> \GIS\3_Mapping\31_Resources\31A_Automation\layerProperties.json <Crash Move Folder> \GIS\3_Mapping\31_Resources\31A_Automation\mapCookbook.json
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
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:
Authors
- Steve Hurst - https://github.com/mapaction/mapactionpy_arcmap
- Steve Penson
todo: [] enable installation via pypi.
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.dev75.tar.gz
.
File metadata
- Download URL: mapactionpy_arcmap-0.3.dev75.tar.gz
- Upload date:
- Size: 12.4 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.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/2.7.15
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16f8408913fe71d828faf327eed3d94bf9e0b05efcad239464b707519bf17319 |
|
MD5 | 5d9968da0c17b4a1162f75dc76f992a8 |
|
BLAKE2b-256 | 811f1fc307ae34659832ae6fe4fbb83d71aef3fa073582877e71129a16556896 |