# 🧑🏽🚒 `palisades`
🧑🏽🚒 Post-disaster land Cover classification using [Semantic Segmentation](https://github.com/kamangir/roofai) on [Maxar Open Data](https://github.com/kamangir/blue-geo/tree/main/blue_geo/catalog/maxar_open_data) acquisitions.
```bash
pip install palisades
```
```mermaid
graph LR
palisades_ingest_target["palisades<br>ingest -<br>target=<target> -<br>predict - - - -<br>to=<runner>"]
palisades_ingest_query["palisades<br>ingest -<br><query-object-name> -<br>predict - - - -<br>to=<runner>"]
palisades_label["palisades<br>label<br>offset=<offset> -<br><query-object-name>"]
palisades_train["palisades<br>train -<br><query-object-name> -<br><dataset-object-name> -<br><model-object-name>"]
palisades_predict["palisades<br>predict - - -<br><model-object-name><br><datacube-id><br><prediction-object-name>"]
palisades_buildings_download_footprints["palisades<br>buildings<br>download_footprints -<br><input-object-name> -<br><output-object-name>"]
palisades_buildings_analyze["palisades<br>buildings<br>analyze -<br><prediction-object-name>"]
palisades_analytics_ingest["palisades<br>analytics<br>ingest -<br><analytics-object-name>"]
palisades_analytics_ingest_building["palisades<br>analytics<br>ingest_building<br>building=<building-id><br><analytics-object-name>"]
target["🎯 target"]:::folder
query_object["📂 query object"]:::folder
datacube["🧊 datacube"]:::folder
dataset_object["🏛️ dataset object"]:::folder
model_object["🏛️ model object"]:::folder
prediction_object["📂 prediction object"]:::folder
analytics_object["📂 analytics object"]:::folder
query_object --> datacube
target --> palisades_ingest_target
palisades_ingest_target --> palisades_ingest_query
palisades_ingest_target --> query_object
query_object --> palisades_ingest_query
palisades_ingest_query --> palisades_predict
query_object --> palisades_label
palisades_label --> datacube
datacube --> palisades_train
query_object --> palisades_train
palisades_train --> dataset_object
palisades_train --> model_object
model_object --> palisades_predict
datacube --> palisades_predict
palisades_predict --> palisades_buildings_download_footprints
palisades_predict --> palisades_buildings_analyze
palisades_predict --> prediction_object
prediction_object --> palisades_buildings_download_footprints
palisades_buildings_download_footprints --> prediction_object
datacube --> palisades_buildings_analyze
prediction_object --> palisades_buildings_analyze
palisades_buildings_analyze --> prediction_object
prediction_object --> palisades_analytics_ingest
palisades_analytics_ingest --> analytics_object
analytics_object --> palisades_analytics_ingest_building
palisades_analytics_ingest_building --> analytics_object
classDef folder fill:#999,stroke:#333,stroke-width:2px;
```
<details>
<summary>palisades help</summary>
```bash
palisades \
ingest \
[~download,dryrun] \
[target=<target> | <query-object-name>] \
[~ingest | ~copy_template,dryrun,overwrite,scope=<scope>,upload] \
[predict,count=<count>,~tag] \
[device=<device>,profile=<profile>,upload] \
[-|<model-object-name>] \
[~download_footprints | country_code=<iso-code>,country_name=<country-name>,overwrite,source=<source>] \
[~analyze | buffer=<buffer>,count=<count>] \
[~submit | dryrun,to=<runner>]
. ingest <target>.
target: Altadena | Altadena-100 | Altadena-test | Borger | Borger-250 | Borger-test | Brown-Mountain-Truck-Trail | Brown-Mountain-Truck-Trail-all | Brown-Mountain-Truck-Trail-test | LA | LA-250 | LA-test | Noto | Noto-250 | Noto-test | Palisades-Maxar | Palisades-Maxar-100 | Palisades-Maxar-test
scope: all + metadata + raster + rgb + rgbx + <.jp2> + <.tif> + <.tiff>
all: ALL files.
metadata (default): any < 1 MB.
raster: all raster.
rgb: rgb.
rgbx: rgb and what is needed to build rgb.
<suffix>: any *<suffix>.
device: cpu | cuda
profile: FULL | DECENT | QUICK | DEBUG | VALIDATION
country-name: for Microsoft, optional, overrides <iso-code>.
iso-code: Country Alpha2 ISO code: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
Canada: CA
US: US
source: microsoft | osm | google
calls: https://github.com/microsoft/building-damage-assessment/blob/main/download_building_footprints.py
buffer: in meters.
runner: aws_batch | generic | local
```
```bash
palisades \
label \
[download,offset=<offset>] \
[~download,dryrun,~QGIS,~rasterize,~sync,upload] \
[.|<query-object-name>]
. label <query-object-name>.
```
```bash
palisades \
train \
[dryrun,~download,review] \
[.|<query-object-name>] \
[count=<10000>,dryrun,upload] \
[-|<dataset-object-name>] \
[device=<device>,dryrun,profile=<profile>,upload,epochs=<5>] \
[-|<model-object-name>]
. train palisades.
device: cpu | cuda
profile: FULL | DECENT | QUICK | DEBUG | VALIDATION
```
```bash
palisades \
predict \
[~tag] \
[~ingest | ~copy_template,dryrun,overwrite,scope=<scope>,upload] \
[device=<device>,profile=<profile>,upload] \
[-|<model-object-name>] \
[.|<datacube-id>] \
[-|<prediction-object-name>] \
[~download_footprints | country_code=<iso-code>,country_name=<country-name>,overwrite,source=<source>] \
[~analyze | buffer=<buffer>,count=<count>]
. <datacube-id> -<model-object-name>-> <prediction-object-name>
device: cpu | cuda
profile: FULL | DECENT | QUICK | DEBUG | VALIDATION
country-name: for Microsoft, optional, overrides <iso-code>.
iso-code: Country Alpha2 ISO code: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes
Canada: CA
US: US
source: microsoft | osm | google
calls: https://github.com/microsoft/building-damage-assessment/blob/main/download_building_footprints.py
buffer: in meters.
```
```bash
palisades \
analytics \
ingest \
[acq_count=<-1>,building_count=<-1>,damage=<0.1>,dryrun,upload] \
[-|<object-name>]
. ingest analytics.
palisades \
analytics \
ingest_building \
[acq_count=<-1>,building_count=<-1>,building=<building-id>,deep,~download,dryrun,upload] \
[.|<object-name>]
. ingest building analytics.
```
</details>
| | | |
| --- | --- | --- |
| [`STAC Catalog: Maxar Open Data`](https://github.com/kamangir/blue-geo/tree/main/blue_geo/catalog/maxar_open_data) [](https://github.com/kamangir/blue-geo/tree/main/blue_geo/catalog/maxar_open_data) ["Satellite imagery for select sudden onset major crisis events"](https://www.maxar.com/open-data/) | [`Vision Algo: Semantic Segmentation`](https://github.com/kamangir/palisades/blob/main/palisades/docs/step-by-step.md) [](https://github.com/kamangir/palisades/blob/main/palisades/docs/step-by-step.md) [segmentation_models.pytorch](https://github.com/qubvel-org/segmentation_models.pytorch) | [`Building Damage Analysis`](https://github.com/kamangir/palisades/blob/main/palisades/docs/building-analysis.md) [](https://github.com/kamangir/palisades/blob/main/palisades/docs/building-analysis.md) using Microsoft, OSM, and Google footprints through [microsoft/building-damage-assessment](https://github.com/microsoft/building-damage-assessment) |
| [`Analytics`](https://github.com/kamangir/palisades/blob/main/palisades/docs/damage-analytics.md) [](https://github.com/kamangir/palisades/blob/main/palisades/docs/damage-analytics.md) per-building multi-observation damage analytics. | [`Los Angeles Wild Fires, Jan 25`](https://github.com/kamangir/palisades/blob/main/palisades/docs/WildFires-LosAngeles-Jan-2025.md) [](https://github.com/kamangir/palisades/blob/main/palisades/docs/WildFires-LosAngeles-Jan-2025.md) `2,685.88` sq. km = `1,148,351` buildings processed -> `10,133` with fire damage found. | |
## Acknowledgments
1. The concept and workflow of this tool is heavily affected by [microsoft/building-damage-assessment](https://github.com/microsoft/building-damage-assessment).
2. `palisades buildings download_footprints` calls [`download_building_footprints.py`](https://github.com/microsoft/building-damage-assessment/blob/main/download_building_footprints.py).
3. `palisades buildings analyze` is based on [`merge_with_building_footprints.py`](https://github.com/microsoft/building-damage-assessment/blob/main/merge_with_building_footprints.py).
4. Through [satellite-image-deep-learning](https://www.satellite-image-deep-learning.com/p/building-damage-assessment).
---
[](https://github.com/kamangir/palisades/actions/workflows/pylint.yml) [](https://github.com/kamangir/palisades/actions/workflows/pytest.yml) [](https://github.com/kamangir/palisades/actions/workflows/bashtest.yml) [](https://pypi.org/project/palisades/) [](https://pypistats.org/packages/palisades)
built by 🌀 [`blue_options-4.219.1`](https://github.com/kamangir/awesome-bash-cli), based on 🧑🏽🚒 [`palisades-4.341.1`](https://github.com/kamangir/palisades).
Raw data
{
"_id": null,
"home_page": "https://github.com/kamangir/palisades",
"name": "palisades",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Arash Abadpour (Kamangir)",
"author_email": "arash@kamangir.net",
"download_url": "https://files.pythonhosted.org/packages/c0/6c/ab14177d59514e9ab0c63e56219ab079a3a1572fcb404013d0af838a154a/palisades-4.341.1.tar.gz",
"platform": null,
"description": "# \ud83e\uddd1\ud83c\udffd\u200d\ud83d\ude92 `palisades`\n\n\ud83e\uddd1\ud83c\udffd\u200d\ud83d\ude92 Post-disaster land Cover classification using [Semantic Segmentation](https://github.com/kamangir/roofai) on [Maxar Open Data](https://github.com/kamangir/blue-geo/tree/main/blue_geo/catalog/maxar_open_data) acquisitions. \n\n```bash\npip install palisades\n```\n\n```mermaid\ngraph LR\n palisades_ingest_target[\"palisades<br>ingest -<br>target=<target> -<br>predict - - - -<br>to=<runner>\"]\n\n palisades_ingest_query[\"palisades<br>ingest -<br><query-object-name> -<br>predict - - - -<br>to=<runner>\"]\n\n palisades_label[\"palisades<br>label<br>offset=<offset> -<br><query-object-name>\"]\n\n palisades_train[\"palisades<br>train -<br><query-object-name> -<br><dataset-object-name> -<br><model-object-name>\"]\n\n palisades_predict[\"palisades<br>predict - - -<br><model-object-name><br><datacube-id><br><prediction-object-name>\"]\n\n palisades_buildings_download_footprints[\"palisades<br>buildings<br>download_footprints -<br><input-object-name> -<br><output-object-name>\"]\n\n palisades_buildings_analyze[\"palisades<br>buildings<br>analyze -<br><prediction-object-name>\"]\n\n palisades_analytics_ingest[\"palisades<br>analytics<br>ingest -<br><analytics-object-name>\"]\n\n palisades_analytics_ingest_building[\"palisades<br>analytics<br>ingest_building<br>building=<building-id><br><analytics-object-name>\"]\n\n target[\"\ud83c\udfaf target\"]:::folder\n query_object[\"\ud83d\udcc2 query object\"]:::folder\n datacube[\"\ud83e\uddca datacube\"]:::folder\n dataset_object[\"\ud83c\udfdb\ufe0f dataset object\"]:::folder\n model_object[\"\ud83c\udfdb\ufe0f model object\"]:::folder\n prediction_object[\"\ud83d\udcc2 prediction object\"]:::folder\n analytics_object[\"\ud83d\udcc2 analytics object\"]:::folder\n\n query_object --> datacube\n\n target --> palisades_ingest_target\n palisades_ingest_target --> palisades_ingest_query\n palisades_ingest_target --> query_object\n\n query_object --> palisades_ingest_query\n palisades_ingest_query --> palisades_predict\n\n query_object --> palisades_label\n palisades_label --> datacube\n\n datacube --> palisades_train\n query_object --> palisades_train\n palisades_train --> dataset_object\n palisades_train --> model_object\n\n model_object --> palisades_predict\n datacube --> palisades_predict\n palisades_predict --> palisades_buildings_download_footprints\n palisades_predict --> palisades_buildings_analyze\n palisades_predict --> prediction_object\n\n prediction_object --> palisades_buildings_download_footprints\n palisades_buildings_download_footprints --> prediction_object\n\n datacube --> palisades_buildings_analyze\n prediction_object --> palisades_buildings_analyze\n palisades_buildings_analyze --> prediction_object\n\n prediction_object --> palisades_analytics_ingest\n palisades_analytics_ingest --> analytics_object\n\n analytics_object --> palisades_analytics_ingest_building\n palisades_analytics_ingest_building --> analytics_object\n\n classDef folder fill:#999,stroke:#333,stroke-width:2px;\n```\n\n<details>\n<summary>palisades help</summary>\n\n```bash\npalisades \\\n\tingest \\\n\t[~download,dryrun] \\\n\t[target=<target> | <query-object-name>] \\\n\t[~ingest | ~copy_template,dryrun,overwrite,scope=<scope>,upload] \\\n\t[predict,count=<count>,~tag] \\\n\t[device=<device>,profile=<profile>,upload] \\\n\t[-|<model-object-name>] \\\n\t[~download_footprints | country_code=<iso-code>,country_name=<country-name>,overwrite,source=<source>] \\\n\t[~analyze | buffer=<buffer>,count=<count>] \\\n\t[~submit | dryrun,to=<runner>]\n . ingest <target>.\n target: Altadena | Altadena-100 | Altadena-test | Borger | Borger-250 | Borger-test | Brown-Mountain-Truck-Trail | Brown-Mountain-Truck-Trail-all | Brown-Mountain-Truck-Trail-test | LA | LA-250 | LA-test | Noto | Noto-250 | Noto-test | Palisades-Maxar | Palisades-Maxar-100 | Palisades-Maxar-test\n scope: all + metadata + raster + rgb + rgbx + <.jp2> + <.tif> + <.tiff>\n all: ALL files.\n metadata (default): any < 1 MB.\n raster: all raster.\n rgb: rgb.\n rgbx: rgb and what is needed to build rgb.\n <suffix>: any *<suffix>.\n device: cpu | cuda\n profile: FULL | DECENT | QUICK | DEBUG | VALIDATION\n country-name: for Microsoft, optional, overrides <iso-code>.\n iso-code: Country Alpha2 ISO code: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes\n Canada: CA\n US: US\n source: microsoft | osm | google\n calls: https://github.com/microsoft/building-damage-assessment/blob/main/download_building_footprints.py\n buffer: in meters.\n runner: aws_batch | generic | local\n```\n```bash\npalisades \\\n\tlabel \\\n\t[download,offset=<offset>] \\\n\t[~download,dryrun,~QGIS,~rasterize,~sync,upload] \\\n\t[.|<query-object-name>]\n . label <query-object-name>.\n```\n```bash\npalisades \\\n\ttrain \\\n\t[dryrun,~download,review] \\\n\t[.|<query-object-name>] \\\n\t[count=<10000>,dryrun,upload] \\\n\t[-|<dataset-object-name>] \\\n\t[device=<device>,dryrun,profile=<profile>,upload,epochs=<5>] \\\n\t[-|<model-object-name>]\n . train palisades.\n device: cpu | cuda\n profile: FULL | DECENT | QUICK | DEBUG | VALIDATION\n```\n```bash\npalisades \\\n\tpredict \\\n\t[~tag] \\\n\t[~ingest | ~copy_template,dryrun,overwrite,scope=<scope>,upload] \\\n\t[device=<device>,profile=<profile>,upload] \\\n\t[-|<model-object-name>] \\\n\t[.|<datacube-id>] \\\n\t[-|<prediction-object-name>] \\\n\t[~download_footprints | country_code=<iso-code>,country_name=<country-name>,overwrite,source=<source>] \\\n\t[~analyze | buffer=<buffer>,count=<count>]\n . <datacube-id> -<model-object-name>-> <prediction-object-name>\n device: cpu | cuda\n profile: FULL | DECENT | QUICK | DEBUG | VALIDATION\n country-name: for Microsoft, optional, overrides <iso-code>.\n iso-code: Country Alpha2 ISO code: https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes\n Canada: CA\n US: US\n source: microsoft | osm | google\n calls: https://github.com/microsoft/building-damage-assessment/blob/main/download_building_footprints.py\n buffer: in meters.\n```\n```bash\npalisades \\\n\tanalytics \\\n\tingest \\\n\t[acq_count=<-1>,building_count=<-1>,damage=<0.1>,dryrun,upload] \\\n\t[-|<object-name>]\n . ingest analytics.\npalisades \\\n\tanalytics \\\n\tingest_building \\\n\t[acq_count=<-1>,building_count=<-1>,building=<building-id>,deep,~download,dryrun,upload] \\\n\t[.|<object-name>]\n . ingest building analytics.\n```\n\n</details>\n\n| | | |\n| --- | --- | --- |\n| [`STAC Catalog: Maxar Open Data`](https://github.com/kamangir/blue-geo/tree/main/blue_geo/catalog/maxar_open_data) [](https://github.com/kamangir/blue-geo/tree/main/blue_geo/catalog/maxar_open_data) [\"Satellite imagery for select sudden onset major crisis events\"](https://www.maxar.com/open-data/) | [`Vision Algo: Semantic Segmentation`](https://github.com/kamangir/palisades/blob/main/palisades/docs/step-by-step.md) [](https://github.com/kamangir/palisades/blob/main/palisades/docs/step-by-step.md) [segmentation_models.pytorch](https://github.com/qubvel-org/segmentation_models.pytorch) | [`Building Damage Analysis`](https://github.com/kamangir/palisades/blob/main/palisades/docs/building-analysis.md) [](https://github.com/kamangir/palisades/blob/main/palisades/docs/building-analysis.md) using Microsoft, OSM, and Google footprints through [microsoft/building-damage-assessment](https://github.com/microsoft/building-damage-assessment) |\n| [`Analytics`](https://github.com/kamangir/palisades/blob/main/palisades/docs/damage-analytics.md) [](https://github.com/kamangir/palisades/blob/main/palisades/docs/damage-analytics.md) per-building multi-observation damage analytics. | [`Los Angeles Wild Fires, Jan 25`](https://github.com/kamangir/palisades/blob/main/palisades/docs/WildFires-LosAngeles-Jan-2025.md) [](https://github.com/kamangir/palisades/blob/main/palisades/docs/WildFires-LosAngeles-Jan-2025.md) `2,685.88` sq. km = `1,148,351` buildings processed -> `10,133` with fire damage found. | |\n\n## Acknowledgments\n \n1. The concept and workflow of this tool is heavily affected by [microsoft/building-damage-assessment](https://github.com/microsoft/building-damage-assessment).\n2. `palisades buildings download_footprints` calls [`download_building_footprints.py`](https://github.com/microsoft/building-damage-assessment/blob/main/download_building_footprints.py).\n3. `palisades buildings analyze` is based on [`merge_with_building_footprints.py`](https://github.com/microsoft/building-damage-assessment/blob/main/merge_with_building_footprints.py).\n4. Through [satellite-image-deep-learning](https://www.satellite-image-deep-learning.com/p/building-damage-assessment).\n\n---\n\n\n[](https://github.com/kamangir/palisades/actions/workflows/pylint.yml) [](https://github.com/kamangir/palisades/actions/workflows/pytest.yml) [](https://github.com/kamangir/palisades/actions/workflows/bashtest.yml) [](https://pypi.org/project/palisades/) [](https://pypistats.org/packages/palisades)\n\nbuilt by \ud83c\udf00 [`blue_options-4.219.1`](https://github.com/kamangir/awesome-bash-cli), based on \ud83e\uddd1\ud83c\udffd\u200d\ud83d\ude92 [`palisades-4.341.1`](https://github.com/kamangir/palisades).\n",
"bugtrack_url": null,
"license": "Public Domain",
"summary": "\ud83e\uddd1\ud83c\udffd\u200d\ud83d\ude92 Post-Disaster Land Cover Classification.",
"version": "4.341.1",
"project_urls": {
"Homepage": "https://github.com/kamangir/palisades"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1709ad697e5c9a7353c80b39d089489daf35b7204adbbbdab888a99c3c6e9e38",
"md5": "0dc95810910106ef86ababec0f8e2c62",
"sha256": "0836043f52e41e2d76082f80c1a22c28c887d100fc17990ee3fb123850470c94"
},
"downloads": -1,
"filename": "palisades-4.341.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0dc95810910106ef86ababec0f8e2c62",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 43689,
"upload_time": "2025-02-07T03:03:46",
"upload_time_iso_8601": "2025-02-07T03:03:46.536971Z",
"url": "https://files.pythonhosted.org/packages/17/09/ad697e5c9a7353c80b39d089489daf35b7204adbbbdab888a99c3c6e9e38/palisades-4.341.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c06cab14177d59514e9ab0c63e56219ab079a3a1572fcb404013d0af838a154a",
"md5": "2b3afc03e55716167f4eed9f2f4b8a3b",
"sha256": "11c7f500252a062bdd48f3d9c8b81f1ffe5e693eeeb11791642605f115bb405d"
},
"downloads": -1,
"filename": "palisades-4.341.1.tar.gz",
"has_sig": false,
"md5_digest": "2b3afc03e55716167f4eed9f2f4b8a3b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 30255,
"upload_time": "2025-02-07T03:03:48",
"upload_time_iso_8601": "2025-02-07T03:03:48.446324Z",
"url": "https://files.pythonhosted.org/packages/c0/6c/ab14177d59514e9ab0c63e56219ab079a3a1572fcb404013d0af838a154a/palisades-4.341.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-07 03:03:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "kamangir",
"github_project": "palisades",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "blue_geo",
"specs": []
},
{
"name": "roofai",
"specs": []
},
{
"name": "fiona",
"specs": []
},
{
"name": "osmnx",
"specs": []
},
{
"name": "pyproj",
"specs": []
},
{
"name": "dask_geopandas",
"specs": []
},
{
"name": "deltalake",
"specs": []
},
{
"name": "mercantile",
"specs": []
},
{
"name": "planetary_computer",
"specs": []
},
{
"name": "s3fs",
"specs": []
},
{
"name": "adlfs",
"specs": []
}
],
"lcname": "palisades"
}