Metadata-Version: 2.1
Name: coastal_resilience_utilities
Version: 0.1.9
Summary: Utilities for conducting coastal resilience assessments
Home-page: https://git.ucsc.edu/chlowrie/coastal-resilience-utilities
Author: Chris Lowrie
Author-email: chlowrie@ucsc.edu
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.12.3
Description-Content-Type: text/markdown
Requires-Dist: affine==2.4.0
Requires-Dist: aiohappyeyeballs==2.4.3
Requires-Dist: aiohttp==3.10.10
Requires-Dist: aiosignal==1.3.1
Requires-Dist: asciitree==0.3.3
Requires-Dist: attrs==24.2.0
Requires-Dist: blinker==1.8.2
Requires-Dist: branca==0.7.2
Requires-Dist: Brotli==1.1.0
Requires-Dist: cached-property==1.5.2
Requires-Dist: cachetools==5.5.0
Requires-Dist: certifi==2024.8.30
Requires-Dist: cffi==1.17.1
Requires-Dist: charset-normalizer==3.4.0
Requires-Dist: click==8.1.7
Requires-Dist: click-plugins==1.1.1
Requires-Dist: cligj==0.7.2
Requires-Dist: cloudpickle==3.1.0
Requires-Dist: colorama==0.4.6
Requires-Dist: colorcet==3.1.0
Requires-Dist: contourpy==1.3.0
Requires-Dist: cramjam==2.8.4rc3
Requires-Dist: cryptography==43.0.3
Requires-Dist: cycler==0.12.1
Requires-Dist: dask==2024.10.0
Requires-Dist: datashader==0.16.3
Requires-Dist: decorator==5.1.1
Requires-Dist: exceptiongroup==1.2.2
Requires-Dist: fasteners==0.17.3
Requires-Dist: fastparquet==2024.5.0
Requires-Dist: folium==0.18.0
Requires-Dist: fonttools==4.54.1
Requires-Dist: frozenlist==1.5.0
Requires-Dist: fsspec==2024.10.0
Requires-Dist: future==1.0.0
Requires-Dist: gcsfs==2024.10.0
Requires-Dist: geopandas==1.0.1
Requires-Dist: google-api-core==2.22.0
Requires-Dist: google-auth==2.35.0
Requires-Dist: google-auth-oauthlib==1.2.1
Requires-Dist: google-cloud-core==2.4.1
Requires-Dist: google-cloud-storage==2.18.2
Requires-Dist: google-crc32c==1.1.2
Requires-Dist: google-resumable-media==2.7.2
Requires-Dist: googleapis-common-protos==1.65.0
Requires-Dist: grpcio==1.67.1
Requires-Dist: h2==4.1.0
Requires-Dist: h5netcdf==1.4.0
Requires-Dist: h5py==3.12.1
Requires-Dist: hpack==4.0.0
Requires-Dist: hyperframe==6.0.1
Requires-Dist: idna==3.10
Requires-Dist: importlib-metadata==8.5.0
Requires-Dist: iniconfig==2.0.0
Requires-Dist: Jinja2==3.1.4
Requires-Dist: joblib==1.4.2
Requires-Dist: kiwisolver==1.4.7
Requires-Dist: llvmlite==0.43.0
Requires-Dist: locket==1.0.0
Requires-Dist: mapclassify==2.8.1
Requires-Dist: MarkupSafe==3.0.2
Requires-Dist: matplotlib==3.9.2
Requires-Dist: memory-profiler==0.61.0
Requires-Dist: msgpack==1.1.0
Requires-Dist: multidict==6.1.0
Requires-Dist: multipledispatch==0.6.0
Requires-Dist: munkres==1.1.4
Requires-Dist: networkx==3.4.2
Requires-Dist: numba==0.60.0
Requires-Dist: numcodecs==0.13.1
Requires-Dist: numpy==2.0.2
Requires-Dist: oauthlib==3.2.2
Requires-Dist: odc-geo==0.4.8
Requires-Dist: packaging==24.1
Requires-Dist: pandas==2.2.3
Requires-Dist: param==2.1.1
Requires-Dist: partd==1.4.2
Requires-Dist: pillow==11.0.0
Requires-Dist: pip==24.3.1
Requires-Dist: pluggy==1.5.0
Requires-Dist: propcache==0.2.0
Requires-Dist: proto-plus==1.25.0
Requires-Dist: protobuf==5.28.2
Requires-Dist: psutil==6.1.0
Requires-Dist: pyarrow==18.0.0
Requires-Dist: pyasn1==0.6.1
Requires-Dist: pyasn1-modules==0.4.1
Requires-Dist: pycparser==2.22
Requires-Dist: pyct==0.5.0
Requires-Dist: PyJWT==2.9.0
Requires-Dist: pyogrio==0.10.0
Requires-Dist: pyOpenSSL==24.2.1
Requires-Dist: pyparsing==3.2.0
Requires-Dist: pyproj==3.7.0
Requires-Dist: PySide6==6.8.0.2
Requires-Dist: PySocks==1.7.1
Requires-Dist: pytest==8.3.3
Requires-Dist: python-dateutil==2.9.0
Requires-Dist: pytz==2024.1
Requires-Dist: pyu2f==0.1.5
Requires-Dist: PyYAML==6.0.2
Requires-Dist: rasterio==1.4.2
Requires-Dist: requests==2.32.3
Requires-Dist: requests-oauthlib==2.0.0
Requires-Dist: rioxarray==0.17.0
Requires-Dist: rsa==4.9
Requires-Dist: s2sphere==0.2.5
Requires-Dist: scikit-learn==1.5.2
Requires-Dist: scipy==1.14.1
Requires-Dist: setuptools==75.3.0
Requires-Dist: shapely==2.0.6
Requires-Dist: shiboken6==6.8.0.2
Requires-Dist: six==1.16.0
Requires-Dist: snuggs==1.4.7
Requires-Dist: threadpoolctl==3.5.0
Requires-Dist: tomli==2.0.2
Requires-Dist: toolz==1.0.0
Requires-Dist: tornado==6.4.1
Requires-Dist: tqdm==4.66.6
Requires-Dist: tzdata==2024.2
Requires-Dist: unicodedata2==15.1.0
Requires-Dist: urllib3==2.2.3
Requires-Dist: wheel==0.44.0
Requires-Dist: xarray==2024.10.0
Requires-Dist: xarray-spatial==0.4.0
Requires-Dist: xyzservices==2024.9.0
Requires-Dist: yarl==1.16.0
Requires-Dist: zarr==2.18.3
Requires-Dist: zipp==3.20.2
Requires-Dist: zstandard==0.23.0

# Coastal Resilience Utilities
This repository contains utilities for coastal resilience analysis and design.

## Contents
- `damage_assessment`: damage assessments based on earth observation data and National Structure Inventory.
- `damage_assessment_usvi`: damage assessments based on low-res NSI grids + OpenBuildings 
- `mosaic`: Mosaicking datasets.
- `summary_stats`: Summarize raster datasets using vector points and polygons.
- `utils`: A variety of functionality for doing geospatial analysis.  Rasterize, vectorize, fetch features from OSM/OpenBuildings/ArcOnline, extract values from rasters.

## Installation
The recommended way to install this repo is to use the provided `Makefile` to build a Docker image.

For example:
```bash
EXTRA_DOCKER_ARGS="-v <YOUR DATA DIRECTORY>:/data -v /cccr-lab:/cccr-lab" make bash-terminal
```

There are two env files:
- `.env`, which at this moment just contains GCP credentials
- `.data.env`, which maps files necessary for damage assessment

Note that it's a little tricky to guarantee out-of-the-box until we get more developers actively using this repo, but I do attempt to deploy this on multiple computers and make sure things work.  If you have trouble let's work it out!

## Examples
Check out the testing directory for examples on running analysis.

There are two other relevant repos in Gitlab:
- Datacube, which basically scales raster analyses
- GeospatialServices, which runs a variety of servers such as:
  - Jupyter for an analysis env
  - Prefect for reproducibility
  - Tile servers for app development

You don't need either to run, but the examples in GeospatialServices/Jupyter/notebooks are useful to understand using damage assessment.

## Schematic
The Figjam schematic can be found [here](https://git.ucsc.edu/chlowrie/coastal-resilience-utilities/-/blob/main/coastal_resilience_utilities/damage_assessment/damage_assessment.py?ref_type=heads)
