diff --git a/.gitignore b/.gitignore
index a58e94d..ea6dffd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,16 +1,18 @@
-cloudsql
-delete_later
-sp.sql
-db_data
-cloud_sql_proxy
-credentials.json
-test_connection.py
-*.ini
-*.pkl
-**/RF_models/**
-logs/**
-docker-compose.yml
+**/__pycache__
.idea/
+cloud_sql_proxy.exe
+sqlauthproxy.bat
+config.ini
+logs/
+analysis/src/shellcast_pqpf/tests
+analysis/data/pqpf/raw
+analysis/data/pqpf/nc/intermediate
+analysis/data/pqpf/nc/outputs
+analysis/data/pqpf/sc/intermediate
+analysis/data/pqpf/sc/outputs
+analysis/src/tests
+dependencies
+
# History files
.Rhistory
diff --git a/Dockerfile b/Dockerfile
deleted file mode 100644
index c89f01f..0000000
--- a/Dockerfile
+++ /dev/null
@@ -1,30 +0,0 @@
-# Ubuntu 20.04 LTS
-# Python 3.8.10
-# GDAL 3.0.4
-FROM rocker/geospatial
-
-RUN export DEBIAN_FRONTEND=noninteractive
-RUN apt-get update
-RUN apt-get install -y \
- software-properties-common \
- dirmngr \
- apt-transport-https \
- apt-utils \
- gnupg \
- gnupg2 \
- gnupg1 \
- wget \
- python3 \
- python3-pip
-
-
-RUN R -e 'install.packages(c("sf", "geojsonsf", "raster", "rgdal", "tidyverse", "lubridate", "lwgeom", "here"))'
-
-ENV PYTHONDONTWRITEBYTECODE=1
-ENV PYTHONUNBUFFERED=1
-
-RUN mkdir -pv /shellcast
-COPY . /shellcast
-COPY ./requirements.txt /shellcast
-#COPY install_packages.R /app
-RUN pip3 install -r /shellcast/requirements.txt
diff --git a/README.md b/README.md
index a93d449..361d616 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,76 @@
-# shellcast_analysis
\ No newline at end of file
+# shellcast_analysis
+
+### PQPF data
+Source: NOAA
+About PQPF: https://www.wpc.ncep.noaa.gov/pqpf/about_pqpf_products.shtml
+Data URL: https://ftp.wpc.ncep.noaa.gov/pqpf/conus/
+
+### Data ShellCast uses for analysis
+**URL**: https://ftp.wpc.ncep.noaa.gov/pqpf/conus/pqpf_24hr/
+**Z run**: 06Z
+**Interval**: 24 hours
+**Data format**: GRIB
+**Projection**: Lambert Conformal Conic 2SP
+**Special resolution**: approx. 2.5km
+
+**Data type**: Exceedance grids
+**Data files**:
+
+* pqpf_p24i_conus_{date}06f030.grb - 24 hour totals starting 12Z Monday and ending 12Z Tuesday (Day 1)
+* pqpf_p24i_conus_{date}06f054.grb - 24 hour totals starting 12Z Tuesday and ending 12Z Wednesday (Day 2)
+* pqpf_p24i_conus_{date}06f078.grb - 24 hour totals starting 12Z Wednesday and ending 12Z Thursday (Day 3)
+
+**GRIB file content**:
+
+- 0.25" |Total_precipitation_surface_24_Hour_Accumulation_probability_above_6p35
+- 0.5" |Total_precipitation_surface_24_Hour_Accumulation_probability_above_12p7
+- 1" |Total_precipitation_surface_24_Hour_Accumulation_probability_above_25p4
+- 1.5" |Total_precipitation_surface_24_Hour_Accumulation_probability_above_38p1
+- 2" |Total_precipitation_surface_24_Hour_Accumulation_probability_above_50p8
+- 2.5" |Total_precipitation_surface_24_Hour_Accumulation_probability_above_63p5
+- 3" |Total_precipitation_surface_24_Hour_Accumulation_probability_above_76p2
+- 4" |Total_precipitation_surface_24_Hour_Accumulation_probability_above_101p6
+- 5" |Total_precipitation_surface_24_Hour_Accumulation_probability_above_127
+- 6" |Total_precipitation_surface_24_Hour_Accumulation_probability_above_152p4
+- 8" |Total_precipitation_surface_24_Hour_Accumulation_probability_above_203p2
+- 16" |Total_precipitation_surface_24_Hour_Accumulation_probability_above_406p4
+
+**Notes**:
+
+- NC thresholds (as of April 2023): 1.0, 1.5, 2.0, 2.5, 3.0, 4.0
+- SC thresholds (as of April 2023): 4.0
+
+
+### System Settings
+#### Prerequisite
+* MySQL database and database tables should be created before running ShellCast analysis.
+* Create virtual environment.
+ * Note: If you encountered "rasterio" installation problem with pip, try to use conda virtual environment.
+
+* wgrib2 installed - wgrib2 is available for Linux/MacOS. Cygwin installation is required for Windows.
+ * https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/
+ * https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/compile_questions.html
+ * https://www.ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/INSTALLING
+ * https://ftp.cpc.ncep.noaa.gov/wd51we/wgrib2/_README.cygwin
+ * https://theweatherguy.net/blog/weather-links-info/how-to-install-and-compile-wgrib2-on-mac-os-10-14-6-mojave/
+
+* GDAL installed - For windows [OSGEO4W](https://trac.osgeo.org/osgeo4w/) installation might be easiest. Set environment variable after successful OSGEO4W installation.
+ * https://gisforthought.com/setting-up-your-gdal-and-ogr-environmental-variables/
+
+* gcloud CLI installed
+ * https://cloud.google.com/sdk/docs/install
+
+* Cloud SQL Auth proxy downloaded
+ * https://cloud.google.com/sql/docs/mysql/sql-proxy
+
+* Input data prepared
+
+#### Optional tool
+* Panoply to visualize GRIB file. https://www.giss.nasa.gov/tools/panoply/
+
+### Analysis Settings
+
+* Modify config_template.ini and rename it to config.ini
+* Install Cloud SQL Proxy in analysis folder. Follow steps [here](https://cloud.google.com/sql/docs/mysql/sql-proxy#windows-64-bit).
+* (Windows only) Modify sqlauthproxy_template.bat and rename it to sqlauthproxy.bat.
+* (Windows only) Set Task Scheduler to run ```analysis_run.bat```
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_10kmbuf_albers.dbf b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_10kmbuf_albers.dbf
deleted file mode 100644
index 4dceea1..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_10kmbuf_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_10kmbuf_albers.prj b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_10kmbuf_albers.prj
deleted file mode 100644
index 2bf5bea..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_10kmbuf_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD_1983_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_10kmbuf_albers.shp b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_10kmbuf_albers.shp
deleted file mode 100644
index b3e0c71..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_10kmbuf_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_10kmbuf_albers.shx b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_10kmbuf_albers.shx
deleted file mode 100644
index 3fda895..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_10kmbuf_albers.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_albers.dbf b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_albers.dbf
deleted file mode 100644
index 6890399..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_albers.prj b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_albers.prj
deleted file mode 100644
index 2bf5bea..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD_1983_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_albers.shp b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_albers.shp
deleted file mode 100644
index 88bcca2..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_albers.shx b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_albers.shx
deleted file mode 100644
index 3847f44..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_albers.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_wgs84.geojson b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_wgs84.geojson
deleted file mode 100644
index 6e9e329..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds/cmu_bounds_wgs84.geojson
+++ /dev/null
@@ -1 +0,0 @@
-{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"cmu_name":"U133","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.54808,35.32583],[-76.5417,35.3233],[-76.54031,35.32471],[-76.5376,35.3246],[-76.52891,35.31915],[-76.5257,35.31545],[-76.52601,35.31244],[-76.52168,35.31076],[-76.52,35.30812],[-76.51283,35.31019],[-76.52098,35.30709],[-76.52058,35.30603],[-76.51759,35.30319],[-76.5145,35.30328],[-76.51211,35.301],[-76.51068,35.30117],[-76.51051,35.30021],[-76.5024,35.29729],[-76.5025,35.29706],[-76.51083,35.30023],[-76.51104,35.30043],[-76.51135,35.2993],[-76.51453,35.30169],[-76.51805,35.2996],[-76.51792,35.29528],[-76.51938,35.29592],[-76.51831,35.29687],[-76.52047,35.29556],[-76.51837,35.29702],[-76.5185,35.30077],[-76.52492,35.3074],[-76.52697,35.30612],[-76.52863,35.29601],[-76.5321,35.29521],[-76.52853,35.29312],[-76.52809,35.29349],[-76.52723,35.29376],[-76.5269,35.29368],[-76.52852,35.29283],[-76.53172,35.29329],[-76.53308,35.2894],[-76.52773,35.28251],[-76.53126,35.28386],[-76.53509,35.2889],[-76.53804,35.28833],[-76.53899,35.2884],[-76.53554,35.28946],[-76.53389,35.29166],[-76.53511,35.29409],[-76.53974,35.29404],[-76.54057,35.29529],[-76.53598,35.29451],[-76.53454,35.29602],[-76.53584,35.29765],[-76.53196,35.29822],[-76.53203,35.30397],[-76.53368,35.30821],[-76.53567,35.30347],[-76.53657,35.30539],[-76.54192,35.30641],[-76.5446,35.30241],[-76.54521,35.30371],[-76.54722,35.30312],[-76.5471,35.30092],[-76.54787,35.30123],[-76.54839,35.3036],[-76.54555,35.3054],[-76.54947,35.3058],[-76.55196,35.30735],[-76.54568,35.307],[-76.54253,35.30895],[-76.54478,35.31157],[-76.54433,35.31189],[-76.54055,35.30906],[-76.53449,35.31395],[-76.53831,35.31652],[-76.54353,35.31695],[-76.54848,35.32194],[-76.55331,35.31925],[-76.55186,35.31658],[-76.55264,35.31214],[-76.5553,35.32204],[-76.54808,35.32583]]],[[[-76.54005,35.29398],[-76.54004,35.29397],[-76.5404,35.29381],[-76.54039,35.29388],[-76.54005,35.29398]]]]}},{"type":"Feature","properties":{"cmu_name":"U038","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.46984,35.37274],[-76.43806,35.38898],[-76.38484,35.38431],[-76.37754,35.38981],[-76.3794,35.39018],[-76.3774,35.39102],[-76.37971,35.39235],[-76.37773,35.39182],[-76.37638,35.39344],[-76.37749,35.39149],[-76.37607,35.38977],[-76.37879,35.38685],[-76.36786,35.38406],[-76.36737,35.38211],[-76.359,35.3794],[-76.36212,35.37718],[-76.36124,35.37307],[-76.36504,35.37079],[-76.36433,35.36892],[-76.3615,35.36866],[-76.361,35.36536],[-76.36798,35.3611],[-76.3796,35.36356],[-76.38306,35.36186],[-76.38298,35.35979],[-76.38036,35.36008],[-76.37748,35.35803],[-76.37297,35.36045],[-76.36863,35.35818],[-76.36496,35.35852],[-76.35992,35.35352],[-76.3551,35.34314],[-76.35818,35.34311],[-76.36404,35.34591],[-76.3681,35.3445],[-76.39737,35.35265],[-76.39342,35.35482],[-76.39321,35.36023],[-76.3886,35.3606],[-76.38582,35.36368],[-76.38338,35.36235],[-76.38176,35.36325],[-76.37947,35.36652],[-76.38143,35.36809],[-76.38971,35.36838],[-76.38995,35.3696],[-76.40018,35.37175],[-76.40168,35.36827],[-76.40712,35.37417],[-76.40986,35.37194],[-76.40874,35.3702],[-76.41104,35.37035],[-76.41168,35.37306],[-76.41331,35.37317],[-76.41247,35.37562],[-76.41975,35.37468],[-76.42065,35.37174],[-76.41749,35.37084],[-76.41613,35.36803],[-76.41894,35.36818],[-76.42026,35.36592],[-76.42259,35.367],[-76.42212,35.3629],[-76.41654,35.36751],[-76.41327,35.36815],[-76.41218,35.36596],[-76.40945,35.36533],[-76.41286,35.36168],[-76.40978,35.36159],[-76.40697,35.3657],[-76.40344,35.36027],[-76.39846,35.36169],[-76.39928,35.36014],[-76.39761,35.35932],[-76.39971,35.35728],[-76.39679,35.354],[-76.39761,35.35292],[-76.46984,35.37274]],[[-76.39304,35.36013],[-76.39304,35.36012],[-76.39304,35.36012],[-76.39304,35.36012],[-76.39304,35.36013]],[[-76.39806,35.37118],[-76.39807,35.37118],[-76.39807,35.37118],[-76.39806,35.37118]],[[-76.36183,35.36825],[-76.3618,35.36837],[-76.3619,35.36843],[-76.36196,35.36829],[-76.36183,35.36825]],[[-76.36752,35.37992],[-76.3677,35.37813],[-76.3656,35.37874],[-76.36435,35.37721],[-76.36004,35.37956],[-76.36341,35.37962],[-76.36613,35.38159],[-76.36752,35.37992]],[[-76.37781,35.35761],[-76.37767,35.35758],[-76.37758,35.3577],[-76.37783,35.35762],[-76.37781,35.35761]],[[-76.46677,35.37296],[-76.46636,35.37287],[-76.46569,35.3733],[-76.46649,35.37328],[-76.46677,35.37296]]]}},{"type":"Feature","properties":{"cmu_name":"U111","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-75.63067,35.85181],[-75.63098,35.85216],[-75.62945,35.85347],[-75.63079,35.85493],[-75.62499,35.8593],[-75.6192,35.85355],[-75.61367,35.85159],[-75.62087,35.86661],[-75.6237,35.86725],[-75.6228,35.86865],[-75.62075,35.86685],[-75.63204,35.88924],[-75.63101,35.88983],[-75.63526,35.89443],[-75.62484,35.89593],[-75.6193,35.88494],[-75.60202,35.87387],[-75.59996,35.87534],[-75.60121,35.87287],[-75.60008,35.87211],[-75.59724,35.86346],[-75.59708,35.8643],[-75.5956,35.86574],[-75.59697,35.86234],[-75.59511,35.86134],[-75.59567,35.85743],[-75.59377,35.8567],[-75.59567,35.85727],[-75.59544,35.85605],[-75.59397,35.85602],[-75.59365,35.85561],[-75.59516,35.85572],[-75.5953,35.85433],[-75.58941,35.85041],[-75.59001,35.84629],[-75.58709,35.84568],[-75.58693,35.84743],[-75.58453,35.84721],[-75.58261,35.84344],[-75.58046,35.84435],[-75.5804,35.84198],[-75.57853,35.84309],[-75.57962,35.83997],[-75.57723,35.84211],[-75.57665,35.84206],[-75.57953,35.83935],[-75.57675,35.83522],[-75.56998,35.82976],[-75.56644,35.83049],[-75.56645,35.82961],[-75.56715,35.82938],[-75.56937,35.82918],[-75.57036,35.82827],[-75.56794,35.82796],[-75.57055,35.82777],[-75.57039,35.82623],[-75.57268,35.82655],[-75.57598,35.82375],[-75.57469,35.82088],[-75.61751,35.83141],[-75.61258,35.83138],[-75.61247,35.84333],[-75.61516,35.84745],[-75.61907,35.84467],[-75.62345,35.85018],[-75.62858,35.85314],[-75.63067,35.85181]],[[-75.62288,35.84834],[-75.62275,35.84841],[-75.62288,35.84847],[-75.62287,35.84842],[-75.62288,35.84834]],[[-75.56903,35.82956],[-75.56727,35.82946],[-75.56729,35.83018],[-75.56756,35.82971],[-75.56903,35.82956]],[[-75.5712,35.8275],[-75.57101,35.82746],[-75.57089,35.82755],[-75.5712,35.82759],[-75.5712,35.8275]],[[-75.58245,35.83765],[-75.58227,35.83768],[-75.58227,35.8379],[-75.58248,35.8378],[-75.58245,35.83765]],[[-75.58163,35.84323],[-75.58146,35.84327],[-75.58149,35.84335],[-75.58166,35.84328],[-75.58163,35.84323]],[[-75.58428,35.84341],[-75.5841,35.8434],[-75.58388,35.84351],[-75.58427,35.84355],[-75.58428,35.84341]],[[-75.58451,35.84623],[-75.58454,35.84628],[-75.58463,35.84623],[-75.58459,35.84617],[-75.58451,35.84623]],[[-75.58873,35.84098],[-75.58833,35.841],[-75.58818,35.8413],[-75.58888,35.84143],[-75.58873,35.84098]],[[-75.59527,35.84878],[-75.59489,35.8487],[-75.59461,35.84908],[-75.59529,35.84922],[-75.59527,35.84878]],[[-75.60058,35.83771],[-75.60224,35.84223],[-75.60416,35.84352],[-75.60205,35.83883],[-75.60058,35.83771]],[[-75.60562,35.84805],[-75.60629,35.84629],[-75.60437,35.84627],[-75.60525,35.84812],[-75.60562,35.84805]],[[-75.60674,35.85024],[-75.60594,35.85005],[-75.60538,35.85048],[-75.60718,35.85074],[-75.60674,35.85024]],[[-75.60065,35.87083],[-75.60022,35.87098],[-75.60057,35.87155],[-75.60083,35.87107],[-75.60065,35.87083]],[[-75.61386,35.85108],[-75.61453,35.85082],[-75.61345,35.85014],[-75.61351,35.85084],[-75.61386,35.85108]],[[-75.62268,35.84853],[-75.62237,35.84857],[-75.6226,35.84878],[-75.62263,35.84873],[-75.62268,35.84853]],[[-75.62292,35.84914],[-75.62292,35.84901],[-75.62267,35.84885],[-75.62269,35.84897],[-75.62292,35.84914]],[[-75.62326,35.84944],[-75.62346,35.8492],[-75.62326,35.84903],[-75.62298,35.8492],[-75.62326,35.84944]]],[[[-75.6243,35.8179],[-75.62443,35.8179],[-75.62422,35.818],[-75.62421,35.81798],[-75.6243,35.8179]]]]}},{"type":"Feature","properties":{"cmu_name":"U010","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-77.92334,33.96199],[-77.9279,33.95408],[-77.92905,33.94793],[-77.93988,33.92831],[-77.9417,33.92165],[-77.94624,33.91705],[-77.94663,33.91172],[-77.94905,33.90909],[-77.95223,33.91045],[-77.95157,33.90366],[-77.95568,33.89506],[-77.95452,33.89404],[-77.9562,33.89249],[-77.95646,33.88533],[-77.95906,33.88452],[-77.95788,33.8809],[-77.96005,33.88164],[-77.95841,33.87966],[-77.95934,33.87027],[-77.96049,33.86728],[-77.96247,33.86789],[-77.95959,33.86695],[-77.9603,33.86368],[-77.96499,33.8643],[-77.96466,33.86552],[-77.96555,33.86448],[-77.96905,33.86549],[-77.9655,33.86088],[-77.96091,33.85955],[-77.9627,33.85741],[-77.96131,33.85613],[-77.96212,33.85382],[-77.96899,33.8574],[-77.97007,33.86005],[-77.97266,33.86128],[-77.97239,33.85957],[-77.97606,33.86187],[-77.97752,33.86332],[-77.97617,33.86414],[-77.97822,33.86424],[-77.97808,33.86573],[-77.9787,33.86424],[-77.98009,33.8652],[-77.9812,33.86867],[-77.98208,33.86761],[-77.9819,33.86941],[-77.98424,33.86982],[-77.98496,33.87174],[-77.98607,33.87109],[-77.98636,33.87213],[-77.98625,33.87108],[-77.98351,33.86815],[-77.99214,33.86655],[-77.99532,33.87076],[-77.99701,33.8706],[-78.0017,33.87445],[-77.9979,33.87675],[-77.99632,33.88059],[-77.99877,33.88077],[-78.00153,33.87879],[-78.00294,33.87492],[-78.03198,33.89106],[-78.01985,33.88694],[-78.01649,33.88754],[-78.0138,33.89282],[-78.01657,33.89618],[-78.0185,33.9102],[-77.97921,33.93681],[-77.95363,33.95889],[-77.94644,33.96145],[-77.94188,33.96021],[-77.94414,33.95954],[-77.94814,33.95744],[-77.94958,33.95343],[-77.94912,33.94976],[-77.94807,33.95738],[-77.94377,33.95963],[-77.94178,33.95963],[-77.94287,33.95874],[-77.94148,33.95822],[-77.94011,33.95966],[-77.93668,33.9586],[-77.92976,33.96023],[-77.92925,33.95897],[-77.93244,33.95858],[-77.93198,33.95733],[-77.93707,33.95617],[-77.93557,33.95508],[-77.9351,33.95499],[-77.92499,33.96026],[-77.92809,33.95932],[-77.92916,33.96054],[-77.92334,33.96199]],[[-77.94063,33.95839],[-77.94075,33.95826],[-77.94048,33.95811],[-77.94045,33.95819],[-77.94063,33.95839]],[[-77.96761,33.9202],[-77.94797,33.9417],[-77.94758,33.9412],[-77.94701,33.94118],[-77.94766,33.94191],[-77.94694,33.9422],[-77.94733,33.94242],[-77.94708,33.94368],[-77.94746,33.94511],[-77.94795,33.94612],[-77.94816,33.94157],[-77.96761,33.9202]],[[-77.97804,33.87251],[-77.97045,33.86651],[-77.9696,33.86652],[-77.97248,33.87054],[-77.9735,33.86996],[-77.9789,33.87374],[-77.97804,33.87251]]]}},{"type":"Feature","properties":{"cmu_name":"U108","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.58809,34.70178],[-76.5846,34.70169],[-76.5799,34.69839],[-76.56198,34.69438],[-76.56106,34.69227],[-76.55893,34.69194],[-76.55776,34.69371],[-76.54474,34.68969],[-76.54436,34.68844],[-76.54259,34.68961],[-76.53754,34.68849],[-76.53093,34.68466],[-76.52547,34.68498],[-76.49288,34.66815],[-76.499,34.66319],[-76.49765,34.66259],[-76.49909,34.65981],[-76.51343,34.6376],[-76.52357,34.62432],[-76.52846,34.62148],[-76.52849,34.61557],[-76.53487,34.60882],[-76.53846,34.61029],[-76.53849,34.61267],[-76.54726,34.61328],[-76.5508,34.61526],[-76.5525,34.62062],[-76.55038,34.62608],[-76.55047,34.63185],[-76.54417,34.63957],[-76.54546,34.64353],[-76.53616,34.63225],[-76.52931,34.62925],[-76.52702,34.6343],[-76.52844,34.63269],[-76.53245,34.63739],[-76.5314,34.63881],[-76.5391,34.63938],[-76.53858,34.64204],[-76.54061,34.64252],[-76.5373,34.64312],[-76.53069,34.64125],[-76.52766,34.64346],[-76.53045,34.64382],[-76.53145,34.64567],[-76.54019,34.6475],[-76.54123,34.64984],[-76.54001,34.65177],[-76.5472,34.65136],[-76.55961,34.65487],[-76.5642,34.65726],[-76.56309,34.65792],[-76.56514,34.65823],[-76.56539,34.66016],[-76.5661,34.65912],[-76.56585,34.66033],[-76.56947,34.66133],[-76.56874,34.66378],[-76.57142,34.66578],[-76.57279,34.66588],[-76.57159,34.66436],[-76.57165,34.66327],[-76.57237,34.66524],[-76.57602,34.66413],[-76.58174,34.66558],[-76.5835,34.66754],[-76.58319,34.67017],[-76.58671,34.66937],[-76.59037,34.67251],[-76.59153,34.67567],[-76.58809,34.70178]],[[-76.50606,34.65482],[-76.50595,34.65479],[-76.50592,34.65482],[-76.50605,34.65487],[-76.50606,34.65482]],[[-76.5154,34.6577],[-76.51564,34.65636],[-76.51339,34.65369],[-76.51386,34.65642],[-76.5154,34.6577]],[[-76.52755,34.63452],[-76.52681,34.63456],[-76.52614,34.63592],[-76.52708,34.63595],[-76.52755,34.63452]],[[-76.52772,34.6344],[-76.52792,34.63392],[-76.52762,34.634],[-76.52772,34.6344]],[[-76.52449,34.66159],[-76.52532,34.65983],[-76.5228,34.65786],[-76.52266,34.66075],[-76.52449,34.66159]],[[-76.52752,34.64008],[-76.52823,34.63986],[-76.52825,34.63938],[-76.52724,34.64008],[-76.52752,34.64008]],[[-76.52758,34.6757],[-76.52907,34.67528],[-76.52879,34.67388],[-76.52689,34.67485],[-76.52758,34.6757]]]}},{"type":"Feature","properties":{"cmu_name":"U039","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.50186,34.77394],[-76.50123,34.7672],[-76.50311,34.76833],[-76.50349,34.76657],[-76.5034,34.76836],[-76.50582,34.77],[-76.50789,34.76844],[-76.51116,34.7697],[-76.51101,34.77218],[-76.5067,34.77264],[-76.50752,34.77359],[-76.50453,34.77162],[-76.50348,34.77231],[-76.50657,34.77743],[-76.50186,34.77394]]]}},{"type":"Feature","properties":{"cmu_name":"U082","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.88957,34.06574],[-77.88661,34.06932],[-77.88869,34.0698],[-77.8864,34.0707],[-77.88813,34.07347],[-77.88628,34.0749],[-77.8867,34.07718],[-77.88478,34.07692],[-77.88489,34.08077],[-77.88065,34.07981],[-77.87613,34.08316],[-77.87199,34.08308],[-77.87428,34.07542],[-77.87736,34.07864],[-77.88002,34.07675],[-77.87917,34.07477],[-77.87815,34.07695],[-77.87629,34.07467],[-77.88363,34.05534],[-77.88556,34.05648],[-77.88602,34.06112],[-77.88821,34.06227],[-77.88946,34.06063],[-77.89074,34.0613],[-77.88957,34.06574]],[[-77.88386,34.07294],[-77.88426,34.07074],[-77.87989,34.07388],[-77.8809,34.07646],[-77.88376,34.07484],[-77.88386,34.07294]],[[-77.88487,34.06836],[-77.88715,34.06469],[-77.88675,34.06198],[-77.88518,34.06408],[-77.88487,34.06836]],[[-77.88515,34.06869],[-77.8843,34.06921],[-77.88486,34.07033],[-77.88558,34.06953],[-77.88515,34.06869]]]}},{"type":"Feature","properties":{"cmu_name":"U086","rain_in":3.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-77.86452,34.12998],[-77.865,34.12897],[-77.8643,34.13077],[-77.86226,34.13118],[-77.86401,34.13364],[-77.85666,34.15094],[-77.8263,34.19186],[-77.8223,34.18999],[-77.81605,34.18152],[-77.81902,34.18201],[-77.81932,34.18075],[-77.81784,34.18087],[-77.82163,34.17577],[-77.82444,34.17525],[-77.82367,34.17275],[-77.83231,34.16301],[-77.83328,34.15866],[-77.83656,34.15557],[-77.83703,34.15247],[-77.84364,34.14265],[-77.85024,34.12689],[-77.86308,34.128660000000007],[-77.86452,34.12998]],[[-77.82893,34.18644],[-77.83073,34.18233],[-77.82455,34.18699],[-77.82433,34.1899],[-77.82684,34.18928],[-77.82893,34.18644]],[[-77.83221,34.17567],[-77.83134,34.17587],[-77.83031,34.17653],[-77.83062,34.17651],[-77.83221,34.17567]],[[-77.83296,34.17955],[-77.83092,34.17965],[-77.83231,34.18171],[-77.83346,34.18066],[-77.83296,34.17955]],[[-77.83302,34.1792],[-77.83498,34.17938],[-77.84,34.17221],[-77.83574,34.1744],[-77.83302,34.1792]],[[-77.8399,34.16984],[-77.84271,34.1685],[-77.84973,34.15847],[-77.84439,34.16508],[-77.84278,34.16466],[-77.83885,34.1682],[-77.8399,34.16984]],[[-77.85338,34.15484],[-77.85547,34.15202],[-77.85473,34.15123],[-77.85104,34.15444],[-77.85092,34.15637],[-77.85338,34.15484]],[[-77.85747,34.14678],[-77.85585,34.14674],[-77.85568,34.14724],[-77.85707,34.14771],[-77.85747,34.14678]],[[-77.86165,34.13397],[-77.85803,34.13866],[-77.85909,34.14171],[-77.86198,34.1375],[-77.86165,34.13397]],[[-77.85768,34.14526],[-77.85645,34.14579],[-77.8576,34.14644],[-77.85782,34.14561],[-77.85768,34.14526]],[[-77.85598,34.14941],[-77.85556,34.14992],[-77.85633,34.15002],[-77.8564,34.14946],[-77.85598,34.14941]],[[-77.85878,34.14391],[-77.85949,34.14277],[-77.85834,34.14229],[-77.85797,34.14301],[-77.85878,34.14391]]]}},{"type":"Feature","properties":{"cmu_name":"U142","rain_in":3.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-77.71555,34.32318],[-77.71586,34.32376],[-77.70696,34.32946],[-77.7,34.34379],[-77.68125,34.3549],[-77.67978,34.35003],[-77.67606,34.34692],[-77.67254,34.34668],[-77.67097,34.34157],[-77.6671,34.34119],[-77.6684,34.3377],[-77.68138,34.32907],[-77.68507,34.32356],[-77.69385,34.31793],[-77.69369,34.3166],[-77.6947,34.31733],[-77.69545,34.3158],[-77.69629,34.3168],[-77.6966,34.3144],[-77.70708,34.3026],[-77.70854,34.30796],[-77.71204,34.31179],[-77.71176,34.31748],[-77.71519,34.32248],[-77.71302,34.32389],[-77.71555,34.32318]],[[-77.68274,34.35106],[-77.68146,34.35131],[-77.68292,34.35239],[-77.68307,34.3519],[-77.68274,34.35106]],[[-77.68183,34.35371],[-77.68253,34.35356],[-77.68329,34.35304],[-77.68149,34.35255],[-77.68183,34.35371]],[[-77.68421,34.35001],[-77.68326,34.35088],[-77.68455,34.35225],[-77.68533,34.35174],[-77.68421,34.35001]],[[-77.68578,34.35135],[-77.68635,34.35064],[-77.68626,34.3502],[-77.68526,34.35061],[-77.68578,34.35135]],[[-77.68942,34.34731],[-77.68709,34.34841],[-77.68755,34.35006],[-77.69059,34.34833],[-77.68942,34.34731]],[[-77.69337,34.34509],[-77.69187,34.34554],[-77.69248,34.347],[-77.69806,34.34279],[-77.69337,34.34509]],[[-77.70702,34.31321],[-77.70376,34.31578],[-77.70377,34.31601],[-77.70599,34.3149],[-77.70702,34.31321]],[[-77.69832,34.34136],[-77.69943,34.34244],[-77.70054,34.34156],[-77.69948,34.34078],[-77.69832,34.34136]],[[-77.70144,34.33699],[-77.7022,34.33678],[-77.70118,34.33569],[-77.70053,34.33654],[-77.70144,34.33699]],[[-77.70052,34.33782],[-77.70005,34.339],[-77.70095,34.3395],[-77.70135,34.33837],[-77.70052,34.33782]],[[-77.7034,34.33304],[-77.7036,34.33235],[-77.70263,34.33211],[-77.70235,34.33311],[-77.7034,34.33304]],[[-77.70444,34.33114],[-77.70578,34.33046],[-77.70495,34.32891],[-77.70352,34.33053],[-77.70444,34.33114]],[[-77.70704,34.32826],[-77.70726,34.3273],[-77.70652,34.32695],[-77.70577,34.32783],[-77.70704,34.32826]],[[-77.70815,34.32737],[-77.70844,34.32637],[-77.70773,34.32595],[-77.70727,34.32671],[-77.70815,34.32737]],[[-77.70752,34.32821],[-77.70788,34.32814],[-77.70784,34.32777],[-77.70746,34.32781],[-77.70752,34.32821]],[[-77.71004,34.32629],[-77.71032,34.32574],[-77.70919,34.32517],[-77.70948,34.32596],[-77.71004,34.32629]]]}},{"type":"Feature","properties":{"cmu_name":"U144","rain_in":3.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-77.68012,34.35045],[-77.68125,34.3549],[-77.64538,34.37583],[-77.59471,34.41067],[-77.59341,34.40617],[-77.58707,34.40053],[-77.58948,34.39759],[-77.60957,34.38357],[-77.60854,34.38238],[-77.61245,34.38377],[-77.61539,34.38153],[-77.61459,34.37853],[-77.61578,34.37933],[-77.61822,34.37555],[-77.62671,34.37205],[-77.63071,34.36619],[-77.63293,34.36565],[-77.63246,34.36463],[-77.64072,34.35773],[-77.64696,34.3538],[-77.64866,34.35526],[-77.65385,34.35217],[-77.65255,34.35105],[-77.65963,34.34683],[-77.66125,34.3439],[-77.6571,34.34349],[-77.66697,34.33756],[-77.66655,34.34039],[-77.67098,34.34156],[-77.67255,34.34666],[-77.67607,34.3469],[-77.68012,34.35045]],[[-77.60171,34.39387],[-77.60272,34.39371],[-77.60275,34.3936],[-77.60127,34.39378],[-77.60171,34.39387]],[[-77.60098,34.40373],[-77.60014,34.40374],[-77.6001,34.40488],[-77.60146,34.40475],[-77.60098,34.40373]],[[-77.60192,34.40209],[-77.60085,34.40325],[-77.60324,34.40373],[-77.60267,34.40235],[-77.60192,34.40209]],[[-77.60351,34.39371],[-77.6042,34.39381],[-77.60462,34.39348],[-77.60452,34.39341],[-77.60351,34.39371]],[[-77.60314,34.40209],[-77.60387,34.40262],[-77.60447,34.40245],[-77.60406,34.40179],[-77.60314,34.40209]],[[-77.61547,34.39338],[-77.607,34.39886],[-77.60651,34.40082],[-77.61543,34.3959],[-77.61547,34.39338]],[[-77.60849,34.39537],[-77.6084,34.39546],[-77.60843,34.39557],[-77.60846,34.39543],[-77.60849,34.39537]],[[-77.61934,34.39054],[-77.61719,34.39131],[-77.61812,34.39346],[-77.62014,34.39215],[-77.61934,34.39054]],[[-77.62383,34.3877],[-77.62023,34.38956],[-77.62039,34.39072],[-77.62447,34.38927],[-77.62383,34.3877]],[[-77.62567,34.3868],[-77.62475,34.3877],[-77.62591,34.38821],[-77.62624,34.38729],[-77.62567,34.3868]],[[-77.62894,34.38489],[-77.62633,34.38576],[-77.62632,34.38687],[-77.62891,34.38612],[-77.62894,34.38489]],[[-77.63104,34.3822],[-77.62857,34.38342],[-77.63032,34.38504],[-77.63294,34.38336],[-77.63104,34.3822]],[[-77.63488,34.36885],[-77.63734,34.36879],[-77.6379,34.36689],[-77.63527,34.36808],[-77.63398,34.36944],[-77.63488,34.36885]],[[-77.63708,34.3615],[-77.63743,34.36133],[-77.63832,34.36061],[-77.63768,34.36094],[-77.63708,34.3615]],[[-77.63866,34.36045],[-77.63852,34.3604],[-77.63841,34.36052],[-77.63859,34.36051],[-77.63866,34.36045]],[[-77.63669,34.37889],[-77.6341,34.37977],[-77.63447,34.38136],[-77.63741,34.37993],[-77.63669,34.37889]],[[-77.63877,34.36726],[-77.63825,34.36741],[-77.63833,34.36784],[-77.63899,34.36746],[-77.63877,34.36726]],[[-77.64029,34.36697],[-77.63963,34.36709],[-77.64156,34.36688],[-77.64112,34.36659],[-77.64029,34.36697]],[[-77.6434,34.36611],[-77.64272,34.36484],[-77.64047,34.36473],[-77.64026,34.36606],[-77.64179,34.36496],[-77.6434,34.36611]],[[-77.64272,34.3744],[-77.63919,34.37592],[-77.63821,34.37883],[-77.64354,34.37624],[-77.64272,34.3744]],[[-77.6409,34.36784],[-77.64111,34.36768],[-77.64104,34.3675],[-77.64082,34.36766],[-77.6409,34.36784]],[[-77.64856,34.37107],[-77.6436,34.37316],[-77.6439,34.37487],[-77.64942,34.37275],[-77.64856,34.37107]],[[-77.64898,34.36159],[-77.64868,34.36112],[-77.6519,34.35773],[-77.6486,34.3605],[-77.64846,34.36185],[-77.64898,34.36159]],[[-77.65238,34.35773],[-77.65327,34.35743],[-77.65332,34.35711],[-77.65215,34.35734],[-77.65238,34.35773]],[[-77.65407,34.36842],[-77.6508,34.36914],[-77.6511,34.37194],[-77.65478,34.36964],[-77.65407,34.36842]],[[-77.65425,34.3575],[-77.65479,34.35752],[-77.65667,34.35621],[-77.65484,34.35627],[-77.65425,34.3575]],[[-77.65721,34.36595],[-77.65432,34.36693],[-77.65525,34.36891],[-77.65768,34.36741],[-77.65721,34.36595]],[[-77.65839,34.36588],[-77.65757,34.36591],[-77.65862,34.36723],[-77.65906,34.36646],[-77.65839,34.36588]],[[-77.66035,34.36448],[-77.65953,34.36504],[-77.66036,34.36636],[-77.66105,34.36563],[-77.66035,34.36448]],[[-77.66399,34.35525],[-77.66424,34.35472],[-77.6638,34.35442],[-77.66319,34.35496],[-77.66399,34.35525]],[[-77.66237,34.36323],[-77.66149,34.36414],[-77.66261,34.3652],[-77.66316,34.36423],[-77.66237,34.36323]],[[-77.66348,34.36223],[-77.6626,34.36291],[-77.66376,34.36385],[-77.66444,34.36305],[-77.66348,34.36223]],[[-77.66633,34.35588],[-77.66644,34.35506],[-77.66515,34.3548],[-77.66523,34.35559],[-77.66633,34.35588]],[[-77.66409,34.36218],[-77.66528,34.36317],[-77.66595,34.36265],[-77.66507,34.36125],[-77.66409,34.36218]],[[-77.66602,34.35622],[-77.66538,34.35656],[-77.66568,34.3569],[-77.66642,34.35666],[-77.66602,34.35622]],[[-77.66993,34.35928],[-77.66608,34.36039],[-77.66702,34.36224],[-77.67103,34.36012],[-77.66993,34.35928]],[[-77.66673,34.35942],[-77.66638,34.35968],[-77.66668,34.3599],[-77.66699,34.35972],[-77.66673,34.35942]],[[-77.67313,34.35629],[-77.67403,34.35829],[-77.67985,34.35381],[-77.67787,34.3532],[-77.67313,34.35629]]]}},{"type":"Feature","properties":{"cmu_name":"U143","rain_in":2.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.67995,34.36039],[-77.68189,34.36302],[-77.67501,34.36702],[-77.67269,34.36291],[-77.6633,34.36624],[-77.65399,34.37295],[-77.6515,34.37322],[-77.63864,34.38408],[-77.63709,34.38279],[-77.63484,34.38459],[-77.63586,34.38544],[-77.62792,34.38883],[-77.62215,34.39333],[-77.62349,34.39475],[-77.61877,34.39804],[-77.61758,34.39749],[-77.61798,34.39809],[-77.60725,34.40553],[-77.60452,34.4059],[-77.60477,34.40726],[-77.59946,34.40874],[-77.59411,34.41253],[-77.59471,34.41065],[-77.64536,34.37581],[-77.68124,34.35489],[-77.68123,34.3572],[-77.67897,34.35916],[-77.67995,34.36039]],[[-77.61709,34.39809],[-77.61688,34.39776],[-77.61714,34.39724],[-77.61623,34.39815],[-77.61709,34.39809]],[[-77.61792,34.39708],[-77.61789,34.39704],[-77.61778,34.39709],[-77.61784,34.39712],[-77.61792,34.39708]],[[-77.61831,34.3969],[-77.61819,34.39691],[-77.61811,34.39697],[-77.61819,34.39698],[-77.61831,34.3969]],[[-77.61836,34.39688],[-77.61885,34.39667],[-77.61919,34.39552],[-77.61875,34.39652],[-77.61836,34.39688]]]}},{"type":"Feature","properties":{"cmu_name":"U129","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-77.50743,34.47069],[-77.50034,34.47279],[-77.50212,34.47448],[-77.49856,34.47381],[-77.49613,34.47654],[-77.49497,34.47632],[-77.49458,34.47699],[-77.49378,34.47726],[-77.49326,34.47718],[-77.49463,34.47662],[-77.49361,34.4756],[-77.48715,34.47822],[-77.48263,34.48456],[-77.48076,34.48364],[-77.47351,34.48793],[-77.4729,34.48526],[-77.4694,34.48685],[-77.46883,34.48794],[-77.47251,34.48717],[-77.46126,34.49448],[-77.45712,34.49348],[-77.44792,34.49824],[-77.44303,34.50186],[-77.44181,34.50482],[-77.44423,34.51306],[-77.44362,34.51511],[-77.44229,34.50808],[-77.43928,34.5039],[-77.43278,34.50723],[-77.42922,34.49979],[-77.45202,34.49269],[-77.50788,34.46796],[-77.50931,34.47042],[-77.5084,34.46955],[-77.50743,34.47069]],[[-77.49524,34.47621],[-77.49607,34.47598],[-77.49575,34.47498],[-77.49483,34.47562],[-77.49524,34.47621]]],[[[-77.50845,34.47084],[-77.50769,34.47094],[-77.50801,34.47005],[-77.50892,34.47044],[-77.50845,34.47084]]]]}},{"type":"Feature","properties":{"cmu_name":"U047","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.3182,34.54643],[-77.31642,34.54909],[-77.31464,34.54833],[-77.31399,34.55166],[-77.31122,34.55148],[-77.29715,34.55806],[-77.2954,34.56097],[-77.29068,34.56109],[-77.28501,34.56376],[-77.28035,34.56642],[-77.27921,34.56888],[-77.27836,34.56816],[-77.27163,34.57257],[-77.28147,34.56434],[-77.31061,34.55085],[-77.31745,34.54498],[-77.3182,34.54643]]]}},{"type":"Feature","properties":{"cmu_name":"U048","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.27135,34.5717],[-77.28198,34.56382],[-77.30486,34.553],[-77.30015,34.55346],[-77.30029,34.5512],[-77.30357,34.55072],[-77.30684,34.55221],[-77.31409,34.54721],[-77.31538,34.54545],[-77.31425,34.5437],[-77.31747,34.54498],[-77.31062,34.55086],[-77.28148,34.56435],[-77.27164,34.57258],[-77.27135,34.5717]]]}},{"type":"Feature","properties":{"cmu_name":"U046","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.31399,34.55166],[-77.31275,34.55472],[-77.3151,34.55606],[-77.29729,34.55849],[-77.31097,34.55155],[-77.31399,34.55166]],[[-77.30929,34.55328],[-77.30883,34.553],[-77.30849,34.55354],[-77.3089,34.55375],[-77.30929,34.55328]],[[-77.30969,34.55308],[-77.31003,34.55303],[-77.31012,34.55236],[-77.3095,34.55271],[-77.30969,34.55308]]]}},{"type":"Feature","properties":{"cmu_name":"U049","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.25854,34.58591],[-77.25743,34.58766],[-77.25989,34.58756],[-77.25456,34.5894],[-77.25717,34.59551],[-77.26156,34.59499],[-77.25971,34.59687],[-77.25279,34.59786],[-77.25162,34.59739],[-77.25264,34.59626],[-77.2478,34.59572],[-77.2473,34.59704],[-77.24503,34.596],[-77.25978,34.58467],[-77.25854,34.58591]]]}},{"type":"Feature","properties":{"cmu_name":"U053","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.23122,34.59661],[-77.22766,34.59569],[-77.23534,34.59114],[-77.23456,34.59522],[-77.23122,34.59661]]]}},{"type":"Feature","properties":{"cmu_name":"U054","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.27165,34.57256],[-77.24295,34.59654],[-77.24565,34.59368],[-77.24404,34.59256],[-77.24121,34.59204],[-77.23959,34.59406],[-77.23721,34.59406],[-77.23951,34.59071],[-77.24253,34.5901],[-77.2425,34.58879],[-77.25754,34.5794],[-77.26146,34.57775],[-77.25914,34.58076],[-77.26051,34.58122],[-77.26408,34.57814],[-77.26354,34.5769],[-77.27165,34.57256]],[[-77.25004,34.58996],[-77.25203,34.58769],[-77.24955,34.58993],[-77.2459,34.59066],[-77.24539,34.59301],[-77.25004,34.58996]],[[-77.25209,34.58745],[-77.25277,34.58757],[-77.25397,34.58626],[-77.25254,34.58627],[-77.25209,34.58745]],[[-77.2577,34.58359],[-77.25948,34.58175],[-77.25623,34.58239],[-77.254,34.58562],[-77.2577,34.58359]]]}},{"type":"Feature","properties":{"cmu_name":"U056","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.21435,34.6257],[-77.21471,34.62669],[-77.21033,34.62716],[-77.21131,34.62567],[-77.21035,34.62618],[-77.2048,34.63347],[-77.1964,34.637],[-77.19386,34.6397],[-77.1807,34.64396],[-77.17977,34.64299],[-77.20446,34.63194],[-77.2112,34.62286],[-77.21549,34.62542],[-77.21435,34.6257]]]}},{"type":"Feature","properties":{"cmu_name":"U051","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.2454,34.59951],[-77.24371,34.59962],[-77.24118,34.60227],[-77.24552,34.60749],[-77.24147,34.60459],[-77.23736,34.60506],[-77.23518,34.60705],[-77.23574,34.60857],[-77.23199,34.60897],[-77.22824,34.61291],[-77.22855,34.61094],[-77.22631,34.61133],[-77.22657,34.6147],[-77.21971,34.61705],[-77.22985,34.61638],[-77.23293,34.61429],[-77.2314,34.61569],[-77.23294,34.61582],[-77.23322,34.61644],[-77.22768,34.61742],[-77.22606,34.61858],[-77.22694,34.61929],[-77.22109,34.62087],[-77.22367,34.625],[-77.21764,34.62182],[-77.21548,34.62543],[-77.2112,34.62288],[-77.24294,34.59652],[-77.2468,34.59907],[-77.24423,34.60043],[-77.2454,34.59951]],[[-77.22992,34.60953],[-77.23098,34.60936],[-77.23255,34.60778],[-77.22904,34.60979],[-77.22992,34.60953]],[[-77.2331,34.60779],[-77.23387,34.60757],[-77.23397,34.60676],[-77.23272,34.60705],[-77.2331,34.60779]]]}},{"type":"Feature","properties":{"cmu_name":"U057","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.20247,34.61281],[-77.21122,34.62287],[-77.20447,34.63195],[-77.17978,34.64299],[-77.1823,34.63517],[-77.17705,34.62957],[-77.17524,34.62262],[-77.17287,34.62087],[-77.17986,34.61806],[-77.17827,34.61981],[-77.17963,34.62147],[-77.19729,34.6131],[-77.20247,34.61281]],[[-77.18677,34.63946],[-77.18939,34.63764],[-77.1835,34.63837],[-77.18028,34.64209],[-77.18677,34.63946]],[[-77.19022,34.63769],[-77.1912,34.6374],[-77.19055,34.63646],[-77.18943,34.63676],[-77.19022,34.63769]],[[-77.19183,34.63702],[-77.19214,34.63677],[-77.19168,34.63599],[-77.19149,34.63643],[-77.19183,34.63702]],[[-77.19268,34.63651],[-77.19411,34.63609],[-77.19468,34.63533],[-77.1932,34.63536],[-77.19268,34.63651]],[[-77.19522,34.6354],[-77.1959,34.63522],[-77.19582,34.63442],[-77.19512,34.6347],[-77.19522,34.6354]],[[-77.19641,34.63448],[-77.19725,34.63454],[-77.19739,34.63447],[-77.19642,34.63415],[-77.19641,34.63448]],[[-77.19789,34.63427],[-77.19938,34.63358],[-77.19949,34.63328],[-77.19825,34.63319],[-77.19789,34.63427]],[[-77.20029,34.6332],[-77.20312,34.6322],[-77.20425,34.63048],[-77.19964,34.6323],[-77.20029,34.6332]],[[-77.20807,34.62619],[-77.20669,34.62508],[-77.20662,34.62759],[-77.20683,34.6276],[-77.20807,34.62619]],[[-77.20927,34.62306],[-77.20833,34.62351],[-77.20787,34.62494],[-77.20897,34.62468],[-77.20927,34.62306]]]}},{"type":"Feature","properties":{"cmu_name":"U052","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.2107,34.62274],[-77.20247,34.61281],[-77.23721,34.59405],[-77.23959,34.59405],[-77.24295,34.59653],[-77.21122,34.62288],[-77.2107,34.62274]],[[-77.21076,34.6227],[-77.21162,34.62221],[-77.21377,34.61994],[-77.21122,34.6198],[-77.21076,34.6227]],[[-77.21357,34.61949],[-77.21415,34.6196],[-77.21482,34.61905],[-77.21368,34.61885],[-77.21357,34.61949]],[[-77.2152,34.61756],[-77.21447,34.61759],[-77.21543,34.61862],[-77.21598,34.6179],[-77.2152,34.61756]],[[-77.21761,34.60711],[-77.21738,34.60716],[-77.21738,34.60734],[-77.21744,34.60733],[-77.21761,34.60711]],[[-77.21828,34.61588],[-77.21604,34.61613],[-77.21625,34.61742],[-77.21828,34.61632],[-77.21828,34.61588]],[[-77.22692,34.60774],[-77.21828,34.6144],[-77.21858,34.61547],[-77.22673,34.60986],[-77.22692,34.60774]],[[-77.22508,34.6067],[-77.22495,34.60672],[-77.22514,34.60688],[-77.22519,34.60681],[-77.22508,34.6067]],[[-77.22851,34.60715],[-77.2337,34.60342],[-77.23286,34.60263],[-77.22864,34.60404],[-77.22851,34.60715]],[[-77.23543,34.60169],[-77.24052,34.59756],[-77.23836,34.59515],[-77.23571,34.59861],[-77.23339,34.59897],[-77.23543,34.60169]],[[-77.23433,34.60285],[-77.23533,34.6021],[-77.23281,34.60172],[-77.2329,34.60229],[-77.23433,34.60285]]]}},{"type":"Feature","properties":{"cmu_name":"U064","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.11717,34.70005],[-77.10747,34.6991],[-77.1048,34.69439],[-77.10341,34.69728],[-77.10732,34.6991],[-77.0915,34.69895],[-77.09308,34.69686],[-77.09393,34.6988],[-77.09397,34.69646],[-77.09728,34.69542],[-77.09522,34.69333],[-77.09299,34.68504],[-77.09636,34.68179],[-77.09479,34.67999],[-77.09604,34.68113],[-77.10256,34.67879],[-77.1046,34.68184],[-77.11217,34.68213],[-77.11556,34.68585],[-77.11331,34.68806],[-77.11865,34.69097],[-77.11775,34.69485],[-77.12003,34.69534],[-77.11705,34.69589],[-77.11717,34.70005]],[[-77.09637,34.69104],[-77.09654,34.68807],[-77.09546,34.68755],[-77.09454,34.69033],[-77.09637,34.69104]],[[-77.09497,34.69726],[-77.09504,34.69726],[-77.09537,34.69692],[-77.09493,34.69711],[-77.09497,34.69726]],[[-77.09618,34.69637],[-77.09608,34.6963],[-77.09581,34.69657],[-77.09612,34.69642],[-77.09618,34.69637]],[[-77.09686,34.69587],[-77.0964,34.69632],[-77.09686,34.69646],[-77.09736,34.69574],[-77.09686,34.69587]]]}},{"type":"Feature","properties":{"cmu_name":"U065","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.1158,34.68528],[-77.11215,34.68214],[-77.11366,34.68119],[-77.11233,34.67927],[-77.11094,34.68001],[-77.10666,34.6764],[-77.09897,34.67316],[-77.10791,34.67593],[-77.11902,34.68247],[-77.1158,34.68528]]]}},{"type":"Feature","properties":{"cmu_name":"U025","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.79093,34.70439],[-76.79082,34.70776],[-76.75808,34.70715],[-76.7582,34.70254],[-76.76136,34.70261],[-76.76344,34.70054],[-76.76387,34.70297],[-76.77395,34.70242],[-76.79093,34.70439]]]}},{"type":"Feature","properties":{"cmu_name":"U016","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.95875,34.7051],[-76.96109,34.70496],[-76.96329,34.70353],[-76.95523,34.706],[-76.94796,34.67873],[-76.97469,34.67654],[-76.98532,34.6979],[-76.97528,34.70104],[-76.9858,34.69885],[-76.95552,34.70708],[-76.95875,34.7051]],[[-76.95216,34.68634],[-76.95187,34.68665],[-76.95284,34.68778],[-76.95294,34.68718],[-76.95216,34.68634]],[[-76.96503,34.70361],[-76.96568,34.7035],[-76.966,34.70309],[-76.96449,34.70344],[-76.96503,34.70361]],[[-76.96795,34.70289],[-76.97076,34.70219],[-76.97132,34.70167],[-76.96711,34.70277],[-76.96795,34.70289]],[[-76.97336,34.7015],[-76.97441,34.70143],[-76.97474,34.70115],[-76.97329,34.70078],[-76.97336,34.7015]]]}},{"type":"Feature","properties":{"cmu_name":"U017","rain_in":2.5,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.92701,34.71477],[-76.92802,34.71775],[-76.92484,34.72014],[-76.92296,34.71843],[-76.92154,34.72028],[-76.92046,34.71575],[-76.92701,34.71477]]],[[[-76.94249,34.71287],[-76.94171,34.71082],[-76.95554,34.70708],[-76.95619,34.70955],[-76.95243,34.70944],[-76.9517,34.71107],[-76.94562,34.71128],[-76.94249,34.71287]]]]}},{"type":"Feature","properties":{"cmu_name":"U109","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-75.65874,35.86757],[-75.65861,35.86725],[-75.65862,35.86724],[-75.65905,35.86763],[-75.65874,35.86757]]],[[[-75.65924,35.86873],[-75.65874,35.86875],[-75.65917,35.86867],[-75.65979,35.86894],[-75.65924,35.86873]]],[[[-75.7697,35.90563],[-75.76792,35.91217],[-75.72361,35.92728],[-75.72212,35.92479],[-75.70257,35.91591],[-75.69701,35.91029],[-75.69721,35.90178],[-75.69094,35.89753],[-75.69365,35.89186],[-75.68295,35.88742],[-75.6812,35.8844],[-75.67509,35.88324],[-75.68526,35.88214],[-75.74765,35.88853],[-75.75927,35.88803],[-75.76286,35.88941],[-75.76496,35.89463],[-75.76632,35.89361],[-75.76645,35.89374],[-75.76534,35.89631],[-75.7674,35.89504],[-75.76493,35.89776],[-75.76976,35.90098],[-75.7697,35.90563]]]]}},{"type":"Feature","properties":{"cmu_name":"U110","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-75.66287,35.97122],[-75.66206,35.96991],[-75.65235,35.96922],[-75.64657,35.96653],[-75.64548,35.96564],[-75.64832,35.96317],[-75.64416,35.95928],[-75.64012,35.96054],[-75.63285,35.9525],[-75.62695,35.94313],[-75.62826,35.9423],[-75.62593,35.93987],[-75.62424,35.94038],[-75.62082,35.93324],[-75.61185,35.92293],[-75.60926,35.91685],[-75.60812,35.91763],[-75.6032,35.91383],[-75.60443,35.91306],[-75.60277,35.91073],[-75.62725,35.90073],[-75.62484,35.89592],[-75.63526,35.89442],[-75.63941,35.90124],[-75.64076,35.90065],[-75.64354,35.90302],[-75.64514,35.90912],[-75.67384,35.92857],[-75.70514,35.93918],[-75.7187,35.93926],[-75.66671,35.97142],[-75.66287,35.97122]],[[-75.61022,35.91217],[-75.60995,35.91262],[-75.61076,35.91346],[-75.61094,35.91257],[-75.61022,35.91217]],[[-75.61424,35.91045],[-75.61271,35.91039],[-75.61187,35.91079],[-75.61465,35.91206],[-75.61424,35.91045]],[[-75.61267,35.91597],[-75.61221,35.9173],[-75.61321,35.91792],[-75.61347,35.91694],[-75.61267,35.91597]]]}},{"type":"Feature","properties":{"cmu_name":"U073","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.44826,34.82113],[-76.4423,34.82362],[-76.4351,34.82982],[-76.43373,34.82346],[-76.42231,34.82554],[-76.41985,34.82488],[-76.42097,34.82577],[-76.4177,34.82649],[-76.42102,34.82881],[-76.42229,34.83165],[-76.41972,34.83142],[-76.41903,34.83241],[-76.42032,34.83347],[-76.42003,34.83482],[-76.41719,34.83385],[-76.41716,34.83665],[-76.41513,34.83732],[-76.41662,34.84064],[-76.42045,34.84314],[-76.41975,34.84413],[-76.41506,34.84335],[-76.41358,34.84452],[-76.41169,34.84289],[-76.39366,34.85728],[-76.38661,34.85571],[-76.38768,34.85612],[-76.38767,34.85667],[-76.38426,34.85675],[-76.38288,34.85767],[-76.38307,34.86166],[-76.37891,34.86349],[-76.37859,34.86733],[-76.37358,34.86879],[-76.36746,34.87421],[-76.36359,34.87408],[-76.36304,34.87517],[-76.36306,34.87361],[-76.35282,34.87278],[-76.3518,34.8741],[-76.34699,34.87376],[-76.34326,34.87849],[-76.33135,34.88363],[-76.32537,34.89396],[-76.31503,34.90335],[-76.30526,34.89885],[-76.43188,34.8105],[-76.4496,34.81363],[-76.44392,34.81628],[-76.44826,34.82113]],[[-76.41403,34.83192],[-76.41458,34.83176],[-76.41395,34.83116],[-76.41359,34.83212],[-76.41403,34.83192]],[[-76.41397,34.8349],[-76.41345,34.83499],[-76.41344,34.8352],[-76.41404,34.8351],[-76.41397,34.8349]],[[-76.41861,34.82879],[-76.41698,34.82732],[-76.41921,34.82806],[-76.41721,34.82661],[-76.41691,34.82669],[-76.41676,34.82792],[-76.41861,34.82879]],[[-76.4397,34.8246],[-76.44251,34.82327],[-76.44178,34.82212],[-76.44027,34.82232],[-76.4397,34.8246]]],[[[-76.41582,34.83873],[-76.4153,34.83732],[-76.41654,34.8383],[-76.41677,34.83697],[-76.41707,34.83917],[-76.41582,34.83873]]],[[[-76.41666,34.83993],[-76.41732,34.83971],[-76.41754,34.84021],[-76.41698,34.84031],[-76.41666,34.83993]]],[[[-76.42022,34.83504],[-76.42006,34.83501],[-76.42041,34.83412],[-76.42093,34.8352],[-76.42022,34.83504]]],[[[-76.41986,34.84417],[-76.42055,34.8433],[-76.42124,34.84385],[-76.42087,34.8443],[-76.41986,34.84417]]]]}},{"type":"Feature","properties":{"cmu_name":"U069","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.44667,34.82379],[-76.44459,34.82375],[-76.44302,34.82348],[-76.44771,34.82188],[-76.44923,34.82373],[-76.44667,34.82379]]],[[[-76.46497,34.83373],[-76.46381,34.83107],[-76.44798,34.82178],[-76.45239,34.81734],[-76.45593,34.81682],[-76.45542,34.81458],[-76.46222,34.81217],[-76.45574,34.81993],[-76.45898,34.82086],[-76.458,34.82249],[-76.45926,34.82427],[-76.46356,34.82286],[-76.46181,34.82533],[-76.46791,34.82931],[-76.46848,34.8266],[-76.46949,34.82744],[-76.46752,34.8334],[-76.46497,34.83373]]]]}},{"type":"Feature","properties":{"cmu_name":"U102","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.62833,34.79428],[-76.62855,34.79708],[-76.621,34.79758],[-76.62239,34.79918],[-76.62104,34.8014],[-76.60851,34.80513],[-76.60436,34.80199],[-76.60575,34.79798],[-76.60323,34.79322],[-76.60443,34.78994],[-76.61692,34.78849],[-76.62262,34.78478],[-76.62452,34.7876],[-76.62339,34.7906],[-76.61842,34.79084],[-76.61941,34.79286],[-76.62833,34.79428]],[[-76.62833,34.7943],[-76.62703,34.79517],[-76.6274,34.79685],[-76.62771,34.79515],[-76.62833,34.7943]]],[[[-76.60371,34.79295],[-76.60367,34.79301],[-76.60353,34.79295],[-76.60378,34.79289],[-76.60371,34.79295]]],[[[-76.60415,34.8024],[-76.60423,34.80239],[-76.60422,34.80245],[-76.60415,34.80241],[-76.60415,34.8024]]],[[[-76.60426,34.80239],[-76.60431,34.80234],[-76.60432,34.80233],[-76.6043,34.80245],[-76.60426,34.80239]]]]}},{"type":"Feature","properties":{"cmu_name":"U099","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.58511,34.75482],[-76.57866,34.74473],[-76.58179,34.74315],[-76.58938,34.7515],[-76.58895,34.75461],[-76.58694,34.75495],[-76.58642,34.75602],[-76.58511,34.75482]],[[-76.58136,34.74407],[-76.58103,34.74481],[-76.58269,34.74637],[-76.58238,34.74536],[-76.58136,34.74407]],[[-76.58438,34.74668],[-76.58346,34.74703],[-76.5851,34.74918],[-76.58547,34.74854],[-76.58438,34.74668]]],[[[-76.62432,34.76414],[-76.62429,34.76433],[-76.62445,34.76475],[-76.62308,34.76499],[-76.62293,34.76563],[-76.62233,34.76326],[-76.61973,34.76596],[-76.62227,34.76664],[-76.5912,34.77123],[-76.586,34.75768],[-76.58681,34.7553],[-76.58738,34.75545],[-76.58925,34.7545],[-76.58968,34.75259],[-76.58886,34.74153],[-76.62297,34.74096],[-76.6215,34.74751],[-76.62315,34.74774],[-76.62319,34.7494],[-76.62173,34.75399],[-76.62466,34.75522],[-76.62278,34.75686],[-76.62325,34.75859],[-76.61885,34.75841],[-76.62322,34.75867],[-76.6193,34.75961],[-76.62292,34.75963],[-76.62335,34.76318],[-76.62587,34.76266],[-76.62432,34.76414]],[[-76.62109,34.74603],[-76.62103,34.74608],[-76.62111,34.74633],[-76.62117,34.74626],[-76.62109,34.74603]],[[-76.62051,34.74883],[-76.62043,34.74908],[-76.62056,34.74918],[-76.62074,34.74893],[-76.62051,34.74883]],[[-76.62218,34.74859],[-76.62217,34.74856],[-76.62222,34.74848],[-76.62215,34.74855],[-76.62218,34.74859]],[[-76.62222,34.74863],[-76.62225,34.74867],[-76.6222,34.74872],[-76.62227,34.74869],[-76.62222,34.74863]],[[-76.62241,34.7483],[-76.62241,34.74827],[-76.62239,34.74829],[-76.62241,34.7483]],[[-76.6195,34.76073],[-76.61928,34.76073],[-76.61921,34.76078],[-76.61941,34.76081],[-76.6195,34.76073]],[[-76.62359,34.76356],[-76.62261,34.76352],[-76.62291,34.7643],[-76.62367,34.76414],[-76.62359,34.76356]],[[-76.62425,34.76405],[-76.62419,34.76399],[-76.62423,34.76377],[-76.62421,34.76375],[-76.62415,34.76394],[-76.62421,34.76403],[-76.62425,34.76405]]],[[[-76.62325,34.76548],[-76.62659,34.76511],[-76.62488,34.76513],[-76.62448,34.76445],[-76.62681,34.76469],[-76.62653,34.76531],[-76.62634,34.76555],[-76.62325,34.76548]]],[[[-76.62684,34.76519],[-76.62758,34.76555],[-76.62626,34.76603],[-76.62667,34.76521],[-76.62684,34.76519]]],[[[-76.62682,34.76508],[-76.62704,34.76466],[-76.628,34.76475],[-76.62799,34.76476],[-76.62682,34.76508]]]]}},{"type":"Feature","properties":{"cmu_name":"U091","rain_in":1.0,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.73963,34.77621],[-76.73434,34.7611],[-76.73434,34.76109],[-76.7512,34.76865],[-76.75006,34.7718],[-76.74414,34.77312],[-76.74149,34.77576],[-76.74133,34.77881],[-76.73963,34.77621]]],[[[-76.74129,34.77892],[-76.74101,34.78009],[-76.74174,34.78232],[-76.74037,34.78021],[-76.74129,34.77892]]],[[[-76.74624,34.77327],[-76.74658,34.7732],[-76.74626,34.77417],[-76.74556,34.77506],[-76.74624,34.77327]]]]}},{"type":"Feature","properties":{"cmu_name":"U092","rain_in":1.0,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.73646,34.78019],[-76.72582,34.77719],[-76.72501,34.76188],[-76.73436,34.7611],[-76.74069,34.77887],[-76.73646,34.78019]],[[-76.73751,34.77526],[-76.73737,34.77541],[-76.73781,34.77597],[-76.73778,34.77584],[-76.73751,34.77526]]],[[[-76.73716,34.7824],[-76.73589,34.78293],[-76.736,34.78027],[-76.73803,34.78324],[-76.73716,34.7824]]]]}},{"type":"Feature","properties":{"cmu_name":"U093","rain_in":1.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.72444,34.77831],[-76.71557,34.77809],[-76.71055,34.77625],[-76.72501,34.76188],[-76.72584,34.77718],[-76.72444,34.77831]]]}},{"type":"Feature","properties":{"cmu_name":"U095","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.68468,34.77135],[-76.67471,34.75885],[-76.68145,34.73943],[-76.69188,34.73037],[-76.694,34.73094],[-76.69453,34.73347],[-76.69659,34.73201],[-76.70235,34.73349],[-76.70395,34.73713],[-76.7077,34.73822],[-76.70755,34.74034],[-76.70576,34.7458],[-76.70286,34.74701],[-76.68784,34.77152],[-76.68468,34.77135]],[[-76.69096,34.73653],[-76.69305,34.73428],[-76.69214,34.73248],[-76.68983,34.73483],[-76.69096,34.73653]]]}},{"type":"Feature","properties":{"cmu_name":"U008","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-78.24258,33.9194],[-78.24276,33.92057],[-78.23049,33.92288],[-78.23325,33.92331],[-78.23083,33.92396],[-78.22996,33.92612],[-78.22017,33.92449],[-78.22257,33.92321],[-78.21744,33.92045],[-78.22013,33.91961],[-78.21607,33.91955],[-78.2166,33.92264],[-78.2121,33.91847],[-78.20847,33.91989],[-78.20852,33.91835],[-78.20182,33.91784],[-78.20186,33.9164],[-78.20211,33.91524],[-78.20822,33.91469],[-78.21525,33.91691],[-78.21536,33.9149],[-78.21713,33.91446],[-78.23346,33.91674],[-78.23435,33.91334],[-78.24654,33.91433],[-78.23966,33.91682],[-78.2369,33.91984],[-78.24258,33.9194]],[[-78.22323,33.92298],[-78.22583,33.92229],[-78.22579,33.92168],[-78.22297,33.92201],[-78.22323,33.92298]],[[-78.22595,33.92157],[-78.23241,33.9204],[-78.23267,33.91961],[-78.22832,33.91942],[-78.22595,33.92157]]]}},{"type":"Feature","properties":{"cmu_name":"U083","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.88038,34.10527],[-77.87846,34.10561],[-77.87778,34.10749],[-77.87973,34.10797],[-77.87832,34.11174],[-77.87471,34.11251],[-77.87246,34.11698],[-77.87383,34.11893],[-77.87202,34.11877],[-77.87074,34.12116],[-77.87336,34.12186],[-77.87052,34.12171],[-77.86971,34.12577],[-77.86721,34.12634],[-77.88246,34.08049],[-77.8854,34.08062],[-77.88371,34.08524],[-77.88253,34.08474],[-77.88162,34.0862],[-77.88452,34.08854],[-77.88194,34.08849],[-77.88216,34.08991],[-77.88547,34.09004],[-77.88265,34.09202],[-77.88217,34.09461],[-77.87908,34.0954],[-77.87601,34.10312],[-77.88038,34.10527]]]}},{"type":"Feature","properties":{"cmu_name":"U146","rain_in":3.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-77.5517,34.42779],[-77.54748,34.42658],[-77.54835,34.42516],[-77.55828,34.41926],[-77.55791,34.42028],[-77.55952,34.42011],[-77.56084,34.41746],[-77.56568,34.41458],[-77.56717,34.41549],[-77.56807,34.41396],[-77.57047,34.41667],[-77.57213,34.41633],[-77.56973,34.41372],[-77.57175,34.41224],[-77.5715,34.41274],[-77.57308,34.41333],[-77.57188,34.41236],[-77.57303,34.41003],[-77.58642999999999,34.40155],[-77.58828,34.40254],[-77.58784,34.40127],[-77.59343,34.40616],[-77.59472,34.41067],[-77.58668,34.4163],[-77.55199,34.42925],[-77.5517,34.42779]],[[-77.55522,34.42711],[-77.55711,34.42587],[-77.55361,34.42533],[-77.5544,34.42687],[-77.55522,34.42711]],[[-77.55482,34.42337],[-77.55524,34.42301],[-77.556,34.42188],[-77.55448,34.42364],[-77.55482,34.42337]],[[-77.55844,34.42544],[-77.55815,34.42518],[-77.55745,34.42517],[-77.55816,34.42601],[-77.55844,34.42544]],[[-77.55923,34.42498],[-77.56043,34.4253],[-77.56018,34.42422],[-77.55928,34.42436],[-77.55923,34.42498]],[[-77.56147,34.42468],[-77.56183,34.4239],[-77.56104,34.42344],[-77.56076,34.42429],[-77.56147,34.42468]],[[-77.56263,34.42311],[-77.56191,34.42361],[-77.563,34.4244],[-77.56318,34.424],[-77.56263,34.42311]],[[-77.56396,34.42254],[-77.5633,34.42304],[-77.56384,34.42347],[-77.56426,34.42302],[-77.56396,34.42254]],[[-77.56561,34.42222],[-77.56492,34.42258],[-77.56536,34.42334],[-77.56612,34.42277],[-77.56561,34.42222]],[[-77.56668,34.42222],[-77.56657,34.42256],[-77.56692,34.42284],[-77.56733,34.42246],[-77.56668,34.42222]],[[-77.56817,34.42212],[-77.56894,34.42194],[-77.56878,34.4215],[-77.56819,34.42152],[-77.56817,34.42212]],[[-77.57018,34.42159],[-77.57152,34.42097],[-77.57134,34.41966],[-77.5698,34.42019],[-77.57018,34.42159]],[[-77.574,34.42013],[-77.5758,34.4194],[-77.57587,34.41832],[-77.57407,34.41818],[-77.574,34.42013]],[[-77.57728,34.41892],[-77.57986,34.4179],[-77.57941,34.41688],[-77.57665,34.41776],[-77.57728,34.41892]],[[-77.5857,34.41482],[-77.58642999999999,34.41481],[-77.58878,34.41387],[-77.58493,34.41466],[-77.5857,34.41482]],[[-77.59093,34.41194],[-77.59342,34.41088],[-77.59314,34.40952],[-77.59005,34.41128],[-77.59093,34.41194]]]}},{"type":"Feature","properties":{"cmu_name":"U131","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-77.50213,34.45938],[-77.49924,34.45501],[-77.50074,34.45303],[-77.50098,34.45696],[-77.50213,34.45938]]],[[[-77.55247,34.43825],[-77.54912,34.44354],[-77.55066,34.44466],[-77.54361,34.44809],[-77.54231,34.45064],[-77.54456,34.44997],[-77.54295,34.45196],[-77.53962,34.45384],[-77.53936,34.45293],[-77.53774,34.45573],[-77.53597,34.45476],[-77.53078,34.45556],[-77.52806,34.46152],[-77.51935,34.46573],[-77.51926,34.46734],[-77.51853,34.46633],[-77.51366,34.4681],[-77.50999,34.47118],[-77.50254,34.45998],[-77.50141,34.45303],[-77.50706,34.45184],[-77.50694,34.45042],[-77.51196,34.44723],[-77.51083,34.44932],[-77.51306,34.44891],[-77.5173,34.4543],[-77.51546,34.45619],[-77.51894,34.45737],[-77.52858,34.44833],[-77.5271,34.44738],[-77.5225,34.45277],[-77.5185,34.45473],[-77.52211,34.4522],[-77.52203,34.45013],[-77.52245,34.45028],[-77.52336,34.45029],[-77.52128,34.44714],[-77.52411,34.44568],[-77.52236,34.44567],[-77.5203,34.44213],[-77.5221,34.44126],[-77.52262,34.44393],[-77.5247,34.44414],[-77.52552,34.44296],[-77.52356,34.44378],[-77.52414,34.44245],[-77.52582,34.4415],[-77.52524,34.44263],[-77.52686,34.44277],[-77.52619,34.44198],[-77.52829,34.43985],[-77.52329,34.44233],[-77.52255,34.44072],[-77.53257,34.4362],[-77.5381,34.43155],[-77.5382,34.43315],[-77.54385,34.4313],[-77.54248,34.43091],[-77.54365,34.43028],[-77.54836,34.43177],[-77.55149,34.4285],[-77.5525,34.43248],[-77.54994,34.43164],[-77.54601,34.43536],[-77.54513,34.43704],[-77.54677,34.43906],[-77.54459,34.44108],[-77.5445,34.44167],[-77.55221,34.43703],[-77.55247,34.43825]],[[-77.50837,34.45089],[-77.50812,34.45092],[-77.50792,34.45168],[-77.50842,34.45124],[-77.50837,34.45089]],[[-77.50927,34.45085],[-77.50987,34.45071],[-77.51024,34.44975],[-77.50994,34.44997],[-77.50927,34.45085]],[[-77.51051,34.44978],[-77.51066,34.4497],[-77.51051,34.44958],[-77.51034,34.44972],[-77.51051,34.44978]],[[-77.50835,34.46253],[-77.50905,34.46244],[-77.50965,34.46162],[-77.50818,34.46207],[-77.50835,34.46253]],[[-77.51039,34.46477],[-77.50997,34.46382],[-77.50911,34.46514],[-77.50969,34.46544],[-77.51039,34.46477]],[[-77.51201,34.46342],[-77.51222,34.46297],[-77.5114,34.46266],[-77.51122,34.46335],[-77.51201,34.46342]],[[-77.51236,34.46249],[-77.51471,34.4616],[-77.51594,34.45885],[-77.51379,34.45976],[-77.51236,34.46249]],[[-77.51965,34.46467],[-77.52072,34.4646],[-77.52111,34.464],[-77.51851,34.46422],[-77.51965,34.46467]],[[-77.5207,34.46345],[-77.52216,34.4628],[-77.52231,34.46238],[-77.52051,34.46289],[-77.5207,34.46345]],[[-77.52857,34.44137],[-77.52993,34.44135],[-77.53001,34.44113],[-77.52763,34.44105],[-77.52857,34.44137]],[[-77.52826,34.4405],[-77.52873,34.4405],[-77.5291,34.43978],[-77.52857,34.43984],[-77.52826,34.4405]],[[-77.52989,34.43977],[-77.52987,34.43961],[-77.52897,34.44074],[-77.52914,34.44075],[-77.52989,34.43977]],[[-77.53406,34.43725],[-77.53575,34.43722],[-77.53975,34.43383],[-77.53344,34.43621],[-77.53153,34.43815],[-77.53406,34.43725]],[[-77.53238,34.44527],[-77.53458,34.44397],[-77.54072,34.43761],[-77.53509,34.43964],[-77.53125,34.44383],[-77.53238,34.44527]],[[-77.53178,34.44891],[-77.53103,34.44991],[-77.53159,34.45014],[-77.5322,34.4497],[-77.53178,34.44891]],[[-77.53285,34.44876],[-77.53338,34.44865],[-77.53313,34.44807],[-77.53268,34.44818],[-77.53285,34.44876]],[[-77.53406,34.44816],[-77.53781,34.44688],[-77.53768,34.44576],[-77.53463,34.44621],[-77.53406,34.44816]],[[-77.53722,34.43383],[-77.537,34.43368],[-77.53671,34.434],[-77.5369,34.43413],[-77.53722,34.43383]],[[-77.5375,34.43317],[-77.53729,34.43302],[-77.53702,34.43332],[-77.53717,34.43336],[-77.5375,34.43317]],[[-77.54179,34.43486],[-77.54017,34.4366],[-77.54102,34.43772],[-77.54329,34.43569],[-77.54179,34.43486]],[[-77.53861,34.44686],[-77.53916,34.44666],[-77.53898,34.44642],[-77.53885,34.44639],[-77.53861,34.44686]],[[-77.54256,34.45131],[-77.54239,34.4513],[-77.54214,34.45164],[-77.54231,34.45168],[-77.54256,34.45131]],[[-77.54317,34.45091],[-77.54284,34.45089],[-77.54274,34.45117],[-77.5429,34.45123],[-77.54317,34.45091]],[[-77.54544,34.44303],[-77.54635,34.44334],[-77.54652,34.44285],[-77.54567,34.44257],[-77.54544,34.44303]],[[-77.5464,34.44422],[-77.54579,34.44432],[-77.5464,34.44477],[-77.54666,34.44416],[-77.5464,34.44422]],[[-77.54684,34.4433],[-77.54723,34.44342],[-77.54767,34.44308],[-77.5469,34.44292],[-77.54684,34.4433]]],[[[-77.51993,34.44264],[-77.52004,34.44258],[-77.52018,34.44275],[-77.52002,34.44274],[-77.51993,34.44264]]],[[[-77.54791,34.42801],[-77.5476,34.4266],[-77.55041,34.42757],[-77.54823,34.42873],[-77.54791,34.42801]]],[[[-77.55074,34.42786],[-77.55137,34.42837],[-77.55042,34.42873],[-77.55066,34.42831],[-77.55074,34.42786]]]]}},{"type":"Feature","properties":{"cmu_name":"U130","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.46716,34.47362],[-77.46662,34.47189],[-77.47499,34.46899],[-77.48073,34.46417],[-77.48204,34.4641],[-77.48126,34.46537],[-77.48288,34.46395],[-77.48506,34.465089999999999],[-77.48631,34.46388],[-77.48332,34.46395],[-77.48604,34.46112],[-77.48781,34.46168],[-77.48856,34.46006],[-77.49331,34.45941],[-77.49323,34.45803],[-77.49425,34.45747],[-77.49445,34.45987],[-77.49492,34.45751],[-77.49925,34.455],[-77.5022,34.45955],[-77.50138,34.46026],[-77.50034,34.4627],[-77.50015,34.46348],[-77.50053,34.46508],[-77.48105,34.47239],[-77.49537,34.46888],[-77.50392,34.46456],[-77.50058,34.46425],[-77.50234,34.45992],[-77.50789,34.46797],[-77.45203,34.4927],[-77.42922,34.4998],[-77.42785,34.49694],[-77.4296,34.4992],[-77.43763,34.49695],[-77.45605,34.49029],[-77.45754,34.48778],[-77.45828,34.48915],[-77.46685,34.48542],[-77.46116,34.48585],[-77.45908,34.48433],[-77.46194,34.48291],[-77.46124,34.48079],[-77.46947,34.47826],[-77.47634,34.47386],[-77.47034,34.4765],[-77.47041,34.47512],[-77.46716,34.47362]],[[-77.47484,34.4815],[-77.47983,34.47917],[-77.4797,34.47842],[-77.47425,34.48015],[-77.47484,34.4815]],[[-77.48037,34.46538],[-77.47953,34.46535],[-77.47961,34.46581],[-77.47987,34.46579],[-77.48037,34.46538]],[[-77.48219,34.47857],[-77.48415,34.47834],[-77.48658,34.47716],[-77.48366,34.47583],[-77.48219,34.47857]],[[-77.49003,34.47308],[-77.48981,34.47347],[-77.49031,34.47387],[-77.49056,34.47348],[-77.49003,34.47308]],[[-77.49735,34.45751],[-77.49698,34.45779],[-77.49702,34.45797],[-77.4972,34.45785],[-77.49735,34.45751]],[[-77.50372,34.46899],[-77.50544,34.46891],[-77.50683,34.46756],[-77.50451,34.46714],[-77.50372,34.46899]]]}},{"type":"Feature","properties":{"cmu_name":"U128","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.43202,34.50797],[-77.43295,34.50909],[-77.43056,34.50751],[-77.42682,34.51023],[-77.42297,34.5091],[-77.41766,34.51189],[-77.4153,34.51556],[-77.41083,34.51527],[-77.40804,34.51753],[-77.4085,34.51909],[-77.40668,34.51787],[-77.4036,34.51875],[-77.40207,34.52334],[-77.39674,34.52142],[-77.39088,34.52138],[-77.39159,34.51838],[-77.38919,34.51596],[-77.39819,34.5133],[-77.40762,34.50802],[-77.38861,34.51399],[-77.38635,34.51329],[-77.37184,34.5186],[-77.37106,34.51766],[-77.38196,34.51378],[-77.38175,34.51266],[-77.37764,34.51263],[-77.37987,34.51122],[-77.3868,34.51027],[-77.38595,34.50937],[-77.38754,34.50815],[-77.38916,34.50881],[-77.39224,34.50615],[-77.39501,34.50686],[-77.39635,34.50445],[-77.3997,34.50301],[-77.4009,34.50344],[-77.39975,34.50577],[-77.40686,34.50317],[-77.40495,34.50222],[-77.40138,34.50345],[-77.40462,34.50168],[-77.40315,34.5009],[-77.40937,34.49929],[-77.4095,34.49802],[-77.41294,34.49795],[-77.41434,34.49572],[-77.41655,34.49607],[-77.42255,34.49195],[-77.42563,34.49241],[-77.4227,34.49462],[-77.42561,34.49374],[-77.4277,34.49825],[-77.4228,34.49927],[-77.42112,34.5011],[-77.4285,34.4996],[-77.42774,34.49691],[-77.43202,34.50797]],[[-77.38894,34.51032],[-77.38807,34.5104],[-77.38685,34.51184],[-77.38959,34.51129],[-77.38894,34.51032]],[[-77.39765,34.50786],[-77.39096,34.50799],[-77.38984,34.51043],[-77.39384,34.5105],[-77.39779,34.50902],[-77.39765,34.50786]],[[-77.401,34.50722],[-77.39866,34.50735],[-77.39858,34.50848],[-77.40047,34.50823],[-77.401,34.50722]],[[-77.40979,34.50181],[-77.42027,34.49681],[-77.42047,34.49547],[-77.41138,34.49914],[-77.40979,34.50181]],[[-77.41851,34.50231],[-77.41806,34.50152],[-77.41652,34.50131],[-77.41686,34.50221],[-77.41851,34.50231]],[[-77.41969,34.50048],[-77.41889,34.50105],[-77.41946,34.50222],[-77.42087,34.50123],[-77.41969,34.50048]],[[-77.42802,34.50416],[-77.42598,34.50434],[-77.42603,34.50525],[-77.42758,34.50511],[-77.42802,34.50416]]]}},{"type":"Feature","properties":{"cmu_name":"U050","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.27207,34.57323],[-77.27468,34.57628],[-77.27159,34.5736],[-77.27004,34.57688],[-77.2658,34.57858],[-77.24506,34.59599],[-77.24731,34.59703],[-77.24684,34.59905],[-77.24294,34.59654],[-77.27163,34.57256],[-77.27207,34.57323]]]}},{"type":"Feature","properties":{"cmu_name":"U055","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.20783,34.64651],[-77.19934,34.6464],[-77.20045,34.6457],[-77.19735,34.64344],[-77.20037,34.63939],[-77.20063,34.63593],[-77.2028,34.63507],[-77.20205,34.63421],[-77.207,34.63303],[-77.20679,34.63115],[-77.20816,34.63408],[-77.21012,34.6344],[-77.20801,34.63527],[-77.20699,34.63907],[-77.20508,34.63906],[-77.20551,34.64042],[-77.20938,34.63957],[-77.21195,34.64143],[-77.21098,34.64527],[-77.20783,34.64651]]]}},{"type":"Feature","properties":{"cmu_name":"U058","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.17928,34.64244],[-77.17979,34.64299],[-77.15382,34.6585],[-77.15192,34.65323],[-77.13927,34.63952],[-77.16849,34.62675],[-77.1688,34.6277],[-77.17419,34.62288],[-77.17707,34.62956],[-77.18232,34.63516],[-77.17928,34.64244]],[[-77.15575,34.65558],[-77.15359,34.65673],[-77.1536,34.65733],[-77.15602,34.6567],[-77.15575,34.65558]],[[-77.1598,34.65113],[-77.16216,34.65027],[-77.16282,34.64951],[-77.15982,34.64917],[-77.15685,34.65166],[-77.1598,34.65113]],[[-77.15628,34.65521],[-77.15613,34.65518],[-77.15619,34.6554],[-77.1563,34.65536],[-77.15628,34.65521]],[[-77.16124,34.65338],[-77.16269,34.6529],[-77.16137,34.65237],[-77.1571,34.65529],[-77.16124,34.65338]],[[-77.16213,34.65228],[-77.16362,34.65227],[-77.16391,34.6519],[-77.16231,34.65098],[-77.16213,34.65228]],[[-77.16769,34.64847],[-77.16398,34.65121],[-77.17849,34.64302],[-77.17531,34.64239],[-77.16769,34.64847]]]}},{"type":"Feature","properties":{"cmu_name":"U059","rain_in":1.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.15741,34.67745],[-77.15426,34.67591],[-77.15371,34.67698],[-77.15416,34.67538],[-77.15215,34.67608],[-77.15026,34.67398],[-77.14857,34.67476],[-77.1484,34.67103],[-77.14529,34.67248],[-77.14757,34.67081],[-77.14697,34.66971],[-77.14046,34.67015],[-77.1518,34.66422],[-77.15406,34.66838],[-77.15591,34.66863],[-77.15521,34.66961],[-77.16006,34.67274],[-77.15905,34.67938],[-77.15741,34.67745]]]}},{"type":"Feature","properties":{"cmu_name":"U063","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.11404,34.70491],[-77.11234,34.70765],[-77.11547,34.71185],[-77.11272,34.71222],[-77.11391,34.71797],[-77.10216,34.72337],[-77.09973,34.72027],[-77.10089,34.71739],[-77.1022,34.71795],[-77.09462,34.71424],[-77.09147,34.70627],[-77.08891,34.70565],[-77.08838,34.70378],[-77.09035,34.70085],[-77.09167,34.70145],[-77.09164,34.70016],[-77.0929,34.69952],[-77.09129,34.69932],[-77.09198,34.69878],[-77.11634,34.69915],[-77.11314,34.7011],[-77.11404,34.70491]],[[-77.09085,34.70407],[-77.08941,34.70387],[-77.08901,34.70392],[-77.09155,34.7047],[-77.09085,34.70407]],[[-77.09052,34.70335],[-77.09007,34.70324],[-77.08999,34.7035],[-77.09086,34.70353],[-77.09052,34.70335]],[[-77.09278,34.69933],[-77.09383,34.69901],[-77.09145,34.69923],[-77.09223,34.69932],[-77.09278,34.69933]],[[-77.09189,34.7034],[-77.0916,34.70338],[-77.09143,34.70349],[-77.0919,34.70377],[-77.09189,34.7034]],[[-77.09385,34.70204],[-77.09566,34.70175],[-77.09487,34.70035],[-77.09336,34.70103],[-77.09399,34.69946],[-77.09244,34.70015],[-77.09385,34.70204]],[[-77.09333,34.70217],[-77.09286,34.70171],[-77.09261,34.70172],[-77.093,34.70271],[-77.09333,34.70217]]]}},{"type":"Feature","properties":{"cmu_name":"U066","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.07332,34.67951],[-77.0723,34.68043],[-77.07132,34.67842],[-77.06708,34.67959],[-77.06539,34.67406],[-77.09082,34.6721],[-77.09899,34.67316],[-77.09918,34.67419],[-77.08974,34.6735],[-77.0892,34.67231],[-77.08571,34.67338],[-77.08645,34.67507],[-77.08562,34.67554],[-77.08388,34.67404],[-77.08572,34.67379],[-77.08299,34.6736],[-77.08381,34.67622],[-77.07766,34.67651],[-77.07332,34.67951]],[[-77.07594,34.6747],[-77.07517,34.67463],[-77.07347,34.67496],[-77.07541,34.67529],[-77.07594,34.6747]],[[-77.07732,34.67555],[-77.07732,34.67439],[-77.07922,34.67553],[-77.08223,34.67459],[-77.0818,34.6739],[-77.08032,34.67428],[-77.0794,34.67408],[-77.07742,34.67432],[-77.07623,34.67464],[-77.07732,34.67555]]]}},{"type":"Feature","properties":{"cmu_name":"U012","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.06537,34.67406],[-77.037,34.67637],[-77.01644,34.68543],[-77.02499,34.68113],[-77.02576,34.67947],[-77.01606,34.68431],[-77.01332,34.67608],[-77.04037,34.66988],[-77.04404,34.66938],[-77.04444,34.67052],[-77.04747,34.6698],[-77.04747,34.66829],[-77.0618,34.66464],[-77.06483,34.67232],[-77.06298,34.67323],[-77.06537,34.67406]],[[-77.02813,34.67942],[-77.0331,34.67727],[-77.03327,34.6763],[-77.03106,34.67656],[-77.02713,34.6801],[-77.02813,34.67942]],[[-77.03735,34.67575],[-77.04132,34.67544],[-77.04205,34.67504],[-77.03611,34.67513],[-77.03735,34.67575]],[[-77.04378,34.67483],[-77.04277,34.67514],[-77.04596,34.67474],[-77.0452,34.67409],[-77.04378,34.67483]],[[-77.04852,34.67485],[-77.05886,34.67439],[-77.05904,34.6731],[-77.05596,34.67221],[-77.05483,34.67362],[-77.04938,34.67447],[-77.04777,34.67303],[-77.04852,34.67485]],[[-77.05888,34.67226],[-77.06038,34.67336],[-77.062,34.67058],[-77.06076,34.6704],[-77.05888,34.67226]],[[-77.0615,34.6677],[-77.06117,34.66778],[-77.06124,34.66819],[-77.06161,34.66778],[-77.0615,34.6677]]]}},{"type":"Feature","properties":{"cmu_name":"U014","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.01333,34.67607],[-77.01608,34.6843],[-77.01457,34.68544],[-77.01644,34.68542],[-76.98578,34.69885],[-76.97468,34.67654],[-76.9795,34.6766],[-76.97766,34.67586],[-76.99306,34.67294],[-76.99658,34.67349],[-76.99518,34.6722],[-76.99918,34.6734],[-77.00142,34.67146],[-77.00432,34.6723],[-77.00976,34.67086],[-77.01313,34.67113],[-77.01333,34.67607]],[[-76.99081,34.69562],[-76.98693,34.69679],[-76.98625,34.69783],[-76.98953,34.69682],[-76.99169,34.6951],[-76.99081,34.69562]],[[-76.99416,34.69365],[-76.99364,34.69462],[-76.99542,34.69396],[-76.99487,34.69394],[-76.99416,34.69365]],[[-77.00932,34.6875],[-76.99996,34.69071],[-76.9957,34.69381],[-77.01277,34.68614],[-77.01099,34.68526],[-77.00932,34.6875]],[[-77.00474,34.67743],[-77.00516,34.6773],[-77.00471,34.67655],[-77.00424,34.6771],[-77.00474,34.67743]]]}},{"type":"Feature","properties":{"cmu_name":"U013","rain_in":2.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.01736,34.68816],[-77.01643,34.69037],[-77.01905,34.69555],[-77.01465,34.69549],[-77.01188,34.69736],[-77.00825,34.69664],[-77.0082,34.69358],[-77.00344,34.69277],[-77.00139,34.69382],[-77.00193,34.69532],[-76.99279,34.69818],[-76.99333,34.69964],[-76.9911,34.69852],[-76.98679,34.70089],[-76.98578,34.69884],[-77.01643,34.68541],[-77.01736,34.68816]],[[-77.00293,34.69279],[-77.0032,34.69267],[-77.00257,34.69291],[-77.00266,34.69291],[-77.00293,34.69279]],[[-77.00529,34.6916],[-77.00525,34.6916],[-77.0052,34.69185],[-77.00522,34.69182],[-77.00529,34.6916]],[[-77.00819,34.69031],[-77.00774,34.69042],[-77.00691,34.69088],[-77.00708,34.69085],[-77.00819,34.69031]],[[-77.00864,34.69003],[-77.00848,34.69005],[-77.00837,34.69016],[-77.00857,34.69012],[-77.00864,34.69003]],[[-77.0128,34.68811],[-77.01224,34.68826],[-77.01038,34.68918],[-77.01158,34.68873],[-77.0128,34.68811]]]}},{"type":"Feature","properties":{"cmu_name":"U015","rain_in":2.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.96901,34.70819],[-76.96252,34.70726],[-76.96058,34.70931],[-76.95618,34.70956],[-76.95552,34.70708],[-76.9858,34.69884],[-76.98681,34.70089],[-76.97973,34.70201],[-76.97297,34.70783],[-76.96901,34.70819]],[[-76.96578,34.70717],[-76.9658,34.70769],[-76.96619,34.70777],[-76.96653,34.70725],[-76.96578,34.70717]]]}},{"type":"Feature","properties":{"cmu_name":"U018","rain_in":2.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.91564,34.72078],[-76.90799,34.7224],[-76.9027,34.72655],[-76.8911,34.72532],[-76.88589,34.727],[-76.87952,34.72692],[-76.88096,34.72166],[-76.92048,34.71575],[-76.92156,34.72028],[-76.91836,34.7223],[-76.91899,34.72085],[-76.91564,34.72078]]]}},{"type":"Feature","properties":{"cmu_name":"U019","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.94173,34.71083],[-76.927,34.71478],[-76.88096,34.72167],[-76.87819,34.6921],[-76.89655,34.69175],[-76.89874,34.68882],[-76.90985,34.68449],[-76.9315,34.68237],[-76.94798,34.67873],[-76.95525,34.706],[-76.95275,34.70678],[-76.95554,34.70708],[-76.94173,34.71083]],[[-76.90524,34.69493],[-76.90529,34.69477],[-76.90485,34.6948],[-76.90488,34.69489],[-76.90524,34.69493]],[[-76.90601,34.69488],[-76.90635,34.69488],[-76.90656,34.69465],[-76.90591,34.69457],[-76.90601,34.69488]],[[-76.90884,34.69403],[-76.90785,34.69404],[-76.90737,34.6942],[-76.90852,34.69441],[-76.90884,34.69403]],[[-76.90699,34.7172],[-76.90625,34.71731],[-76.90578,34.71728],[-76.90621,34.71744],[-76.90699,34.7172]],[[-76.91388,34.71557],[-76.91374,34.71562],[-76.91367,34.71602],[-76.91404,34.71597],[-76.91388,34.71557]],[[-76.93376,34.71223],[-76.93266,34.71232],[-76.9324,34.71248],[-76.93283,34.71248],[-76.93376,34.71223]],[[-76.94079,34.71014],[-76.94139,34.71012],[-76.94176,34.71002],[-76.94013,34.70997],[-76.94079,34.71014]],[[-76.94474,34.70891],[-76.94348,34.70904],[-76.94255,34.70953],[-76.94282,34.70966],[-76.94474,34.70891]],[[-76.94552,34.70889],[-76.94634,34.70857],[-76.9466,34.70836],[-76.94552,34.70864],[-76.94552,34.70889]]]}},{"type":"Feature","properties":{"cmu_name":"U020","rain_in":2.5,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.84278,34.72933],[-76.83574,34.72733],[-76.81324,34.72627],[-76.81281,34.72253],[-76.84526,34.72381],[-76.84497,34.72898],[-76.84278,34.72933]]],[[[-76.864,34.69328],[-76.86365,34.69346],[-76.86323,34.69306],[-76.8634,34.69302],[-76.864,34.69328]]]]}},{"type":"Feature","properties":{"cmu_name":"U024","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.78115,34.72146],[-76.74499,34.71934],[-76.7353,34.71726],[-76.7368,34.71118],[-76.74248,34.7122],[-76.74723,34.71113],[-76.74627,34.70917],[-76.74964,34.70853],[-76.75111,34.7051],[-76.7511,34.70671],[-76.75363,34.70752],[-76.75209,34.7035],[-76.75565,34.70188],[-76.75822,34.70254],[-76.7581,34.70714],[-76.79083,34.70775],[-76.79041,34.72175],[-76.78115,34.72146]],[[-76.78444,34.72042],[-76.78345,34.72038],[-76.78347,34.72092],[-76.78465,34.72081],[-76.78444,34.72042]]]}},{"type":"Feature","properties":{"cmu_name":"U023","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.79027,34.72558],[-76.78535,34.72531],[-76.78543,34.72237],[-76.77724,34.72215],[-76.77595,34.72482],[-76.76585,34.72406],[-76.7596,34.72177],[-76.73427,34.72155],[-76.73531,34.71725],[-76.74499,34.71932],[-76.7904,34.72174],[-76.79027,34.72558]]]}},{"type":"Feature","properties":{"cmu_name":"U080","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.38196,34.97873],[-76.3607,34.95068],[-76.34816,34.93788],[-76.35456,34.93568],[-76.36418,34.92696],[-76.38287,34.93099],[-76.38134,34.93412],[-76.38315,34.9339],[-76.3838,34.92653],[-76.38255,34.93032],[-76.36495,34.92636],[-76.37001,34.91657],[-76.37536,34.91957],[-76.37747,34.92277],[-76.38197,34.92302],[-76.38739,34.92711],[-76.40561,34.93305],[-76.40903,34.93199],[-76.40947,34.92948],[-76.40294,34.9217],[-76.40779,34.92432],[-76.41006,34.92862],[-76.41236,34.92568],[-76.41162,34.92322],[-76.41449,34.92608],[-76.40989,34.93009],[-76.41035,34.93225],[-76.4157,34.93812],[-76.41772,34.93836],[-76.40313,34.96316],[-76.38196,34.97873]]]}},{"type":"Feature","properties":{"cmu_name":"U084","rain_in":3.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-77.86389,34.12842],[-77.85054,34.12669],[-77.8512,34.12293],[-77.87199,34.08307],[-77.87799,34.0823],[-77.87944,34.08355],[-77.88247,34.08049],[-77.87046,34.11858],[-77.86723,34.12634],[-77.86505,34.1259],[-77.86501,34.12898],[-77.86389,34.12842]],[[-77.86677,34.12365],[-77.86596,34.12357],[-77.86513,34.12416],[-77.86644,34.12493],[-77.86677,34.12365]],[[-77.86683,34.12093],[-77.86575,34.12207],[-77.86688,34.1229],[-77.86798,34.12194],[-77.86683,34.12093]],[[-77.86881,34.11934],[-77.86918,34.11797],[-77.8672,34.11746],[-77.8674,34.11901],[-77.86881,34.11934]],[[-77.86932,34.11739],[-77.86989,34.11637],[-77.86866,34.11578],[-77.86784,34.11681],[-77.86932,34.11739]],[[-77.87008,34.1132],[-77.86882,34.11367],[-77.86908,34.11473],[-77.87068,34.11427],[-77.87008,34.1132]],[[-77.87039,34.11146],[-77.86938,34.11203],[-77.8697,34.11291],[-77.87118,34.11226],[-77.87039,34.11146]],[[-77.87428,34.10251],[-77.87131,34.10433],[-77.87167,34.10885],[-77.87324,34.10728],[-77.87428,34.10251]],[[-77.87473,34.09872],[-77.87364,34.09924],[-77.87508,34.10037],[-77.8752,34.09909],[-77.87473,34.09872]],[[-77.87556,34.09449],[-77.87536,34.09512],[-77.87593,34.09522],[-77.87617,34.09482],[-77.87556,34.09449]],[[-77.87585,34.09713],[-77.8751,34.09712],[-77.87494,34.09797],[-77.87592,34.09789],[-77.87585,34.09713]],[[-77.87738,34.0916],[-77.87667,34.09165],[-77.87684,34.09225],[-77.87746,34.0919],[-77.87738,34.0916]],[[-77.87821,34.0929],[-77.87758,34.09299],[-77.87623,34.09345],[-77.87768,34.09402],[-77.87821,34.0929]],[[-77.87803,34.08968],[-77.87723,34.09029],[-77.87754,34.09075],[-77.8782,34.09046],[-77.87803,34.08968]],[[-77.88,34.0845],[-77.87855,34.08478],[-77.87876,34.08654],[-77.87984,34.08606],[-77.88,34.0845]],[[-77.8791,34.08724],[-77.87806,34.08756],[-77.87829,34.08824],[-77.87883,34.0882],[-77.8791,34.08724]]]}},{"type":"Feature","properties":{"cmu_name":"U112","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-75.74243,35.88801],[-75.68526,35.88216],[-75.6743,35.88348],[-75.67116,35.88104],[-75.66961,35.88163],[-75.66632,35.88071],[-75.66769,35.87914],[-75.66693,35.88019],[-75.6689,35.88131],[-75.6709,35.88066],[-75.66523,35.87341],[-75.66185,35.8758],[-75.66465,35.87234],[-75.66404,35.87109],[-75.66241,35.87264],[-75.6639,35.87088],[-75.66198,35.86791],[-75.6601,35.86905],[-75.6604,35.86938],[-75.66053,35.87221],[-75.65995,35.86901],[-75.65855,35.86957],[-75.65762,35.86975],[-75.66014,35.86868],[-75.65904,35.86762],[-75.66021,35.86859],[-75.6616,35.86751],[-75.66003,35.86676],[-75.66132,35.86716],[-75.66019,35.86284],[-75.65897,35.86468],[-75.65404,35.86604],[-75.65893,35.86458],[-75.65943,35.86311],[-75.65697,35.86366],[-75.6597,35.86226],[-75.65717,35.86151],[-75.66074,35.86065],[-75.65859,35.85864],[-75.65983,35.85824],[-75.65946,35.85435],[-75.66875,35.84003],[-75.66785,35.83419],[-75.66928,35.83099],[-75.67226,35.83177],[-75.6743,35.82937],[-75.67259,35.82868],[-75.67022,35.82995],[-75.6684,35.82857],[-75.66791,35.83266],[-75.66122,35.83353],[-75.66742,35.8342],[-75.65814,35.83725],[-75.66052,35.83499],[-75.65858,35.83421],[-75.66089,35.83303],[-75.65915,35.83122],[-75.65697,35.83142],[-75.65535,35.83009],[-75.6579,35.83066],[-75.65897,35.82705],[-75.6551,35.82946],[-75.6542,35.82724],[-75.6563,35.82675],[-75.65754,35.82307],[-75.65777,35.8244],[-75.65913,35.82376],[-75.66143,35.82519],[-75.66091,35.8231],[-75.65181,35.82295],[-75.64886,35.81913],[-75.64525,35.81763],[-75.6437,35.81857],[-75.64166,35.81712],[-75.64185,35.8184],[-75.62685,35.81675],[-75.68619,35.71252],[-75.71817,35.69388],[-75.71963,35.69775],[-75.71882,35.70704],[-75.72676,35.71447],[-75.73126,35.72809],[-75.72723,35.73725],[-75.73632,35.74458],[-75.73951,35.75025],[-75.73539,35.75866],[-75.73595,35.76337],[-75.74271,35.77145],[-75.74212,35.77549],[-75.73559,35.7828],[-75.73884,35.79051],[-75.73785,35.79943],[-75.73181,35.80401],[-75.73312,35.8079],[-75.73205,35.81361],[-75.73439,35.82],[-75.72881,35.8244],[-75.7351,35.82933],[-75.73334,35.83166],[-75.73597,35.8327],[-75.73676,35.83502],[-75.73461,35.83681],[-75.74091,35.83875],[-75.74069,35.84277],[-75.74947,35.84775],[-75.74892,35.84968],[-75.75102,35.85056],[-75.748,35.86196],[-75.75307,35.87046],[-75.75388,35.8758],[-75.75066,35.88058],[-75.75336,35.87968],[-75.74871,35.88305],[-75.7555,35.88796],[-75.74243,35.88801]],[[-75.65603,35.8282],[-75.65647,35.82811],[-75.65643,35.82795],[-75.65596,35.82814],[-75.65603,35.8282]],[[-75.65734,35.8269],[-75.6571,35.82691],[-75.65713,35.82748],[-75.65749,35.82707],[-75.65734,35.8269]],[[-75.65798,35.82666],[-75.65916,35.82652],[-75.65849,35.82515],[-75.65774,35.82527],[-75.65798,35.82666]],[[-75.66189,35.86704],[-75.66175,35.86702],[-75.66164,35.86686],[-75.66171,35.86701],[-75.66186,35.86708],[-75.66189,35.86704]],[[-75.66226,35.86722],[-75.66287,35.86721],[-75.6629,35.86714],[-75.66195,35.86715],[-75.66226,35.86722]],[[-75.66274,35.86757],[-75.66249,35.86748],[-75.6623,35.86763],[-75.66255,35.86767],[-75.66274,35.86757]]],[[[-75.75622,35.88754],[-75.75688,35.88755],[-75.75553,35.88793],[-75.75571,35.88777],[-75.75622,35.88754]]]]}},{"type":"Feature","properties":{"cmu_name":"U149","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-75.76534,35.70618],[-75.75246,35.70473],[-75.7425,35.69949],[-75.7441,35.69812],[-75.74467,35.68308],[-75.73398,35.68208],[-75.73323,35.68394],[-75.73208,35.68255],[-75.71822,35.69369],[-75.73469,35.62858],[-75.73928,35.64444],[-75.74315,35.65008],[-75.74789,35.64715],[-75.75483,35.64915],[-75.76421,35.65631],[-75.7697,35.66495],[-75.77063,35.66898],[-75.76888,35.67348],[-75.76586,35.67658],[-75.76167,35.67744],[-75.77317,35.68048],[-75.77842,35.68342],[-75.77995,35.68617],[-75.77681,35.69368],[-75.77143,35.69026],[-75.7649,35.69619],[-75.76968,35.69984],[-75.76803,35.7051],[-75.76534,35.70618]]]}},{"type":"Feature","properties":{"cmu_name":"U045","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.08194,35.40348],[-76.08124,35.40295],[-76.08095,35.40034],[-76.07763,35.40006],[-76.0764,35.40653],[-76.07405,35.40771],[-76.07621,35.40918],[-76.07347,35.40859],[-76.07433,35.40607],[-76.07219,35.40642],[-76.07189,35.40933],[-76.06889,35.41264],[-76.08094,35.41728],[-76.0803,35.41834],[-76.08033,35.41775],[-76.07524,35.4155],[-76.07987,35.41775],[-76.08006,35.41811],[-76.07485,35.41573],[-76.07246,35.41691],[-76.07466,35.42359],[-76.07223,35.41702],[-76.0751,35.41544],[-76.06849,35.41274],[-76.06698,35.41299],[-76.06685,35.41654],[-76.07109,35.4212],[-76.06767,35.41935],[-76.05888,35.42159],[-76.05191,35.42131],[-76.0586,35.42763],[-76.05259,35.43516],[-76.0506,35.4347],[-76.06393,35.44248],[-76.06258,35.44175],[-76.06367,35.44447],[-76.0624,35.44164],[-76.04905,35.43414],[-76.04839,35.4328],[-76.03908,35.43024],[-76.03793,35.42886],[-76.03899,35.42725],[-76.03745,35.42848],[-76.03803,35.42995],[-76.04091,35.43171],[-76.04291,35.43388],[-76.04254,35.44042],[-76.04174,35.44296],[-76.03558,35.44562],[-76.0372,35.44699],[-76.03548,35.44568],[-76.03309,35.44849],[-76.03431,35.44624],[-76.03914,35.44359],[-76.04164,35.44292],[-76.04279,35.4339],[-76.03789,35.42996],[-76.03735,35.4284],[-76.03918,35.4268],[-76.03185,35.42692],[-76.0297,35.43034],[-76.03501,35.43821],[-76.02941,35.43067],[-76.02705,35.42969],[-76.02984,35.42252],[-76.03404,35.4187],[-76.03262,35.41353],[-76.02828,35.41139],[-76.02179,35.41208],[-76.02122,35.41695],[-76.01575,35.42089],[-76.01444,35.42363],[-76.01343,35.4282],[-76.01485,35.43677],[-76.01836,35.43761],[-76.01947,35.44042],[-76.02263,35.44228],[-76.02273,35.43852],[-76.02295,35.43818],[-76.02352,35.43789],[-76.02286,35.44215],[-76.02818,35.44247],[-76.02288,35.44238],[-76.02765,35.44412],[-76.02851,35.4446],[-76.02984,35.44591],[-76.02147,35.44194],[-76.02777,35.44743],[-76.03036,35.45071],[-76.02034,35.44172],[-76.0222,35.44455],[-76.0228,35.44748],[-76.01977,35.44163],[-76.01796,35.441160000000007],[-76.01545,35.44536],[-76.01185,35.44596],[-76.01194,35.44917],[-76.00518,35.45015],[-75.99994,35.45649],[-76.00077,35.45812],[-76.00454,35.45908],[-76.00106,35.46176],[-76.00954,35.46244],[-75.99764,35.46198],[-75.99693,35.46669],[-76.00034,35.4698],[-75.98933,35.48311],[-75.98865,35.48689],[-75.98741,35.488],[-75.98754,35.48644],[-75.98423,35.48633],[-75.97549,35.48978],[-75.97407,35.49163],[-75.96871,35.49183],[-75.96222,35.49414],[-75.96268,35.51544],[-75.95571,35.52101],[-75.955,35.52271],[-75.95787,35.52762],[-75.9546,35.529],[-75.95276,35.53322],[-75.95187,35.53234],[-75.94877,35.53335],[-75.94383,35.53651],[-75.9378,35.53644],[-75.93762,35.53747],[-75.9359,35.53625],[-75.92918,35.54065],[-75.92922,35.53839],[-75.92481,35.53923],[-75.91249,35.54502],[-75.91404,35.54635],[-75.91314,35.5493],[-75.90758,35.55299],[-75.9202,35.55431],[-75.92166,35.55716],[-75.91914,35.56218],[-75.91632,35.56393],[-75.91719,35.56501],[-75.91749,35.5669],[-75.91394,35.5628],[-75.9034,35.56456],[-75.90201,35.57074],[-75.90025,35.572],[-75.89689,35.57169],[-75.89483,35.57479],[-75.88122,35.57554],[-75.88415,35.58426],[-75.88093,35.58556],[-75.88421,35.59119],[-75.88825,35.58969],[-75.89007,35.59258],[-75.89647,35.59591],[-75.89972,35.60248],[-75.90296,35.60169],[-75.90369,35.60093],[-75.90341,35.59997],[-75.90367,35.59954],[-75.90387,35.60119],[-75.90122,35.60289],[-75.9057,35.60413],[-75.89922,35.60285],[-75.89421,35.59955],[-75.89233,35.60003],[-75.88766,35.61217],[-75.88821,35.61467],[-75.89006,35.61443],[-75.88811,35.61487],[-75.88479,35.62309],[-75.88295,35.62417],[-75.88118,35.63419],[-75.87606,35.63485],[-75.871,35.63221],[-75.87195,35.62787],[-75.86948,35.61764],[-75.87289,35.6135],[-75.86907,35.6077],[-75.8692,35.60438],[-75.86492,35.60335],[-75.85785,35.59636],[-75.85785,35.59682],[-75.85668,35.59668],[-75.85459,35.59793],[-75.85391,35.59818],[-75.85268,35.59836],[-75.85426,35.59797],[-75.85219,35.59705],[-75.85451,35.59786],[-75.85699,35.59557],[-75.85747,35.58764],[-75.85551,35.58533],[-75.85264,35.58421],[-75.8504,35.58564],[-75.83828,35.58684],[-75.82833,35.59317],[-75.82548,35.59306],[-75.82188,35.59028],[-75.81366,35.59192],[-75.81185,35.58431],[-75.82052,35.57997],[-75.82506,35.58051],[-75.82384,35.5773],[-75.82596,35.57445],[-75.83291,35.57378],[-75.83661,35.5711],[-75.8286,35.57055],[-75.80381,35.57364],[-75.77661,35.57939],[-76.06234,35.36846],[-76.06216,35.36999],[-76.0639,35.36804],[-76.0707,35.37151],[-76.06702,35.37885],[-76.06211,35.38255],[-76.06316,35.38473],[-76.06998,35.38567],[-76.07475,35.38344],[-76.07469,35.38206],[-76.0786,35.38271],[-76.07772,35.38679],[-76.08381,35.38898],[-76.08523,35.39149],[-76.08135,35.39404],[-76.07908,35.39818],[-76.08182,35.40045],[-76.08166,35.40293],[-76.08458,35.40501],[-76.08842,35.4039],[-76.09355,35.40637],[-76.08832,35.40401],[-76.08595,35.40624],[-76.08479,35.40517],[-76.08562,35.40612],[-76.08611,35.41068],[-76.08599,35.41139],[-76.08559,35.41208],[-76.08667,35.41254],[-76.08685,35.41411],[-76.08636,35.41257],[-76.08591,35.41403],[-76.08446,35.41403],[-76.08598,35.41116],[-76.0855,35.4061],[-76.08194,35.40348]],[[-76.02326,35.44351],[-76.02263,35.44297],[-76.02251,35.44289],[-76.02249,35.4429],[-76.02326,35.44351]],[[-76.00804,35.44955],[-76.00804,35.44955],[-76.00803,35.44955],[-76.00803,35.44955],[-76.00804,35.44955]],[[-76.01651,35.43709],[-76.01651,35.4371],[-76.01651,35.4371],[-76.01651,35.43709]],[[-75.92998,35.53932],[-75.93088,35.53954],[-75.93287,35.5374],[-75.92847,35.53799],[-75.92962,35.53839],[-75.92998,35.53932]],[[-76.02019,35.44174],[-76.02019,35.44174],[-76.02017,35.4417],[-76.02019,35.44174],[-76.02019,35.44174]],[[-76.02039,35.4423],[-76.02059,35.44291],[-76.02208,35.44587],[-76.02222,35.44572],[-76.02039,35.4423]],[[-76.02037,35.44228],[-76.02025,35.44195],[-76.02017,35.44185],[-76.02026,35.44206],[-76.02037,35.44228]],[[-76.02024,35.44183],[-76.02023,35.4418],[-76.02022,35.44178],[-76.02022,35.44179],[-76.02024,35.44183]],[[-76.02779,35.44755],[-76.0251,35.44517],[-76.02128,35.44203],[-76.02123,35.44211],[-76.02779,35.44755]],[[-76.02152,35.44427],[-76.02162,35.44447],[-76.02136,35.44394],[-76.02142,35.44405],[-76.02152,35.44427]],[[-76.02132,35.44386],[-76.02119,35.44359],[-76.02117,35.44356],[-76.02118,35.44361],[-76.02132,35.44386]],[[-76.02222,35.44267],[-76.02222,35.44266],[-76.02222,35.44266],[-76.02222,35.44267]],[[-76.022,35.44249],[-76.02197,35.44246],[-76.02184,35.44236],[-76.0219,35.44241],[-76.022,35.44249]],[[-76.02243,35.44285],[-76.0224,35.44282],[-76.02231,35.44274],[-76.02238,35.44281],[-76.02243,35.44285]],[[-76.03017,35.43143],[-76.03024,35.43155],[-76.03025,35.43155],[-76.03021,35.43147],[-76.03017,35.43143]],[[-76.07041,35.41044],[-76.07017,35.41002],[-76.06632,35.41031],[-76.06061,35.41352],[-76.06646,35.41821],[-76.06477,35.41305],[-76.07041,35.41044]],[[-76.07794,35.39924],[-76.07473,35.39719],[-76.06914,35.39754],[-76.0682,35.39977],[-76.06891,35.40145],[-76.07446,35.40343],[-76.07272,35.39975],[-76.07794,35.39924]],[[-76.07294,35.3998],[-76.07306,35.39987],[-76.07305,35.39984],[-76.07294,35.3998]],[[-76.0693,35.41293],[-76.06932,35.41293],[-76.06924,35.41288],[-76.06919,35.41287],[-76.0693,35.41293]],[[-76.07079,35.40968],[-76.07079,35.40968],[-76.07077,35.40967],[-76.07079,35.40968],[-76.07079,35.40968]],[[-76.07077,35.40972],[-76.07054,35.40978],[-76.07067,35.41002],[-76.07069,35.40998],[-76.07077,35.40972]],[[-76.07095,35.40996],[-76.0708,35.41014],[-76.07083,35.41017],[-76.07086,35.41014],[-76.07095,35.40996]],[[-76.07371,35.40831],[-76.07373,35.40827],[-76.07371,35.40823],[-76.0737,35.40826],[-76.07371,35.40831]],[[-76.07649,35.40038],[-76.07654,35.40034],[-76.07647,35.40021],[-76.0764,35.4004],[-76.07649,35.40038]],[[-76.07645,35.4002],[-76.07641,35.40017],[-76.07639,35.40002],[-76.07632,35.40014],[-76.07645,35.4002]],[[-76.08531,35.41346],[-76.08612,35.41295],[-76.08556,35.41216],[-76.08487,35.4134],[-76.08531,35.41346]]],[[[-75.85167,35.59718],[-75.85098,35.59728],[-75.85096,35.59728],[-75.85213,35.59703],[-75.85167,35.59718]]],[[[-75.88576,35.62342],[-75.8851,35.6235],[-75.88485,35.62309],[-75.88516,35.62346],[-75.88576,35.62342]]],[[[-75.8862,35.62335],[-75.88633,35.62336],[-75.88607,35.62341],[-75.88607,35.6234],[-75.8862,35.62335]]],[[[-75.9633,35.50137],[-75.96343,35.501220000000007],[-75.9634,35.50177],[-75.96325,35.50173],[-75.9633,35.50137]]]]}},{"type":"Feature","properties":{"cmu_name":"U113","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-75.62009,35.82007],[-75.61679,35.82188],[-75.61531,35.82126],[-75.6175,35.83143],[-75.57468,35.82089],[-75.57214,35.81704],[-75.57108,35.81761],[-75.57089,35.81897],[-75.57033,35.81912],[-75.57065,35.81718],[-75.56578,35.81628],[-75.56544,35.81498],[-75.56747,35.81428],[-75.56317,35.81107],[-75.56059,35.81095],[-75.55966,35.80831],[-75.55784,35.80801],[-75.55712,35.81129],[-75.55724,35.80804],[-75.55626,35.80828],[-75.55397,35.807],[-75.55342,35.80777],[-75.55104,35.80632],[-75.55074,35.8073],[-75.55148,35.80891],[-75.5513,35.80965],[-75.5505,35.80729],[-75.55078,35.80618],[-75.55387,35.80619],[-75.55132,35.80539],[-75.55439,35.80549],[-75.55169,35.80461],[-75.55285,35.80387],[-75.55065,35.80389],[-75.54951,35.8],[-75.55482,35.79305],[-75.55161,35.79152],[-75.54838,35.79471],[-75.54671,35.79361],[-75.58551,35.77076],[-75.6862,35.71252],[-75.62687,35.81675],[-75.62363,35.8183],[-75.62252,35.81726],[-75.62316,35.8184],[-75.62134,35.81944],[-75.62176,35.81681],[-75.61958,35.81716],[-75.61836,35.81956],[-75.62126,35.81948],[-75.62009,35.82007]],[[-75.55357,35.79755],[-75.55541,35.79697],[-75.55539,35.79586],[-75.55339,35.79626],[-75.55357,35.79755]],[[-75.55915,35.80115],[-75.55984,35.80046],[-75.55942,35.80102],[-75.56176,35.80065],[-75.56291,35.80103],[-75.56322,35.79926],[-75.55683,35.79592],[-75.55292,35.80063],[-75.55523,35.80146],[-75.55562,35.79942],[-75.5556,35.80157],[-75.55915,35.80115]],[[-75.55318,35.80486],[-75.55309,35.80465],[-75.55276,35.80479],[-75.55284,35.80486],[-75.55318,35.80486]],[[-75.55352,35.80483],[-75.5536,35.80483],[-75.55361,35.80475],[-75.55354,35.80474],[-75.55352,35.80483]],[[-75.55908,35.80738],[-75.5569,35.80638],[-75.55438,35.80673],[-75.55759,35.80675],[-75.55932,35.80786],[-75.55908,35.80738]],[[-75.55567,35.80557],[-75.55515,35.80578],[-75.55522,35.80588],[-75.55551,35.8059],[-75.55567,35.80557]],[[-75.5557,35.80714],[-75.55552,35.80715],[-75.5555,35.80721],[-75.55559,35.80725],[-75.5557,35.80714]],[[-75.55756,35.80767],[-75.55737,35.807],[-75.5558,35.80721],[-75.55642,35.80804],[-75.55756,35.80767]],[[-75.5601,35.7959],[-75.56108,35.79638],[-75.56152,35.79629],[-75.55935,35.79502],[-75.5601,35.7959]],[[-75.56151,35.80205],[-75.56275,35.80143],[-75.56194,35.80082],[-75.55838,35.80188],[-75.56151,35.80205]],[[-75.56244,35.80206],[-75.55999,35.803],[-75.56252,35.8033],[-75.56064,35.80407],[-75.56289,35.80354],[-75.56244,35.80206]],[[-75.56386,35.79403],[-75.56309,35.79391],[-75.56284,35.79436],[-75.56371,35.79456],[-75.56386,35.79403]],[[-75.56193,35.81005],[-75.56198,35.80959],[-75.56147,35.80937],[-75.5614,35.80962],[-75.56193,35.81005]],[[-75.56253,35.81015],[-75.5623,35.8101],[-75.56226,35.81028],[-75.56252,35.8103],[-75.56253,35.81015]],[[-75.56798,35.81249],[-75.57049,35.81107],[-75.57035,35.80869],[-75.56493,35.80747],[-75.56345,35.80845],[-75.56412,35.81069],[-75.56513,35.81204],[-75.56505,35.81109],[-75.56541,35.81019],[-75.56687,35.80984],[-75.56866,35.80986],[-75.56526,35.81114],[-75.56632,35.81309],[-75.56798,35.81249]],[[-75.56732,35.8146],[-75.56695,35.81474],[-75.56653,35.81562],[-75.56679,35.81562],[-75.56732,35.8146]],[[-75.56756,35.81336],[-75.56729,35.81334],[-75.5671,35.81342],[-75.56734,35.81359],[-75.56756,35.81336]],[[-75.58352,35.79673],[-75.57731,35.78948],[-75.57379,35.78972],[-75.57994,35.79365],[-75.58352,35.79673]],[[-75.56745,35.81563],[-75.56894,35.81554],[-75.56933,35.81474],[-75.56807,35.81435],[-75.56745,35.81563]],[[-75.57998,35.77716],[-75.58057,35.77705],[-75.58072,35.77681],[-75.57952,35.77699],[-75.57998,35.77716]],[[-75.57053,35.81849],[-75.57067,35.81856],[-75.57057,35.81812],[-75.57047,35.81828],[-75.57053,35.81849]],[[-75.58461,35.77268],[-75.58322,35.77347],[-75.58346,35.77495],[-75.58505,35.77387],[-75.58461,35.77268]],[[-75.58591,35.77086],[-75.58493,35.77199],[-75.58603,35.77248],[-75.58658,35.77131],[-75.58591,35.77086]],[[-75.58055,35.80033],[-75.57997,35.79949],[-75.57917,35.7996],[-75.57923,35.80039],[-75.58055,35.80033]],[[-75.57639,35.81845],[-75.57583,35.81726],[-75.57484,35.81692],[-75.57427,35.81863],[-75.57639,35.81845]],[[-75.58271,35.80769],[-75.58552,35.81171],[-75.58622,35.80824],[-75.58091,35.80228],[-75.58271,35.80769]],[[-75.59011,35.79697],[-75.59016,35.79919],[-75.59236,35.80066],[-75.59128,35.80119],[-75.59803,35.80457],[-75.59765,35.79944],[-75.59483,35.79933],[-75.59651,35.79827],[-75.58932,35.7953],[-75.59011,35.79697]],[[-75.58763,35.81521],[-75.58773,35.81479],[-75.58721,35.81454],[-75.58721,35.81463],[-75.58763,35.81521]],[[-75.59061,35.82043],[-75.59008,35.81772],[-75.5884,35.8171],[-75.59032,35.82062],[-75.59061,35.82043]],[[-75.59703,35.79857],[-75.59714,35.79864],[-75.59721,35.79858],[-75.59713,35.79856],[-75.59703,35.79857]],[[-75.6148,35.81627],[-75.61512,35.81622],[-75.61506,35.81566],[-75.61459,35.81592],[-75.6148,35.81627]],[[-75.61526,35.81994],[-75.6165,35.81921],[-75.61509,35.81693],[-75.61452,35.81761],[-75.61526,35.81994]],[[-75.618,35.80821],[-75.61773,35.80826],[-75.61746,35.80913],[-75.61795,35.80869],[-75.618,35.80821]],[[-75.61973,35.80398],[-75.62142,35.8055],[-75.62014,35.80636],[-75.62199,35.8056],[-75.62201,35.80436],[-75.61973,35.80398]],[[-75.61724,35.8164],[-75.61722,35.81583],[-75.6164,35.81641],[-75.61712,35.81654],[-75.61724,35.8164]],[[-75.62131,35.80785],[-75.62013,35.80852],[-75.62218,35.81077],[-75.62023,35.80953],[-75.61861,35.81118],[-75.62112,35.81251],[-75.61993,35.8136],[-75.6223,35.8134],[-75.62021,35.81591],[-75.62183,35.81629],[-75.62176,35.81423],[-75.62314,35.81413],[-75.62255,35.81578],[-75.62549,35.81691],[-75.62645,35.81217],[-75.62472,35.81074],[-75.62368,35.81154],[-75.62131,35.80785]],[[-75.61631,35.82081],[-75.61665,35.82109],[-75.61741,35.82061],[-75.61674,35.82048],[-75.61631,35.82081]],[[-75.6186,35.81531],[-75.61943,35.81586],[-75.61997,35.81494],[-75.61854,35.81391],[-75.6186,35.81531]],[[-75.62277,35.81663],[-75.62261,35.81661],[-75.62254,35.81692],[-75.6227,35.81678],[-75.62277,35.81663]],[[-75.62618,35.81548],[-75.6274,35.81554],[-75.62793,35.81286],[-75.62653,35.8129],[-75.62618,35.81548]]]}},{"type":"Feature","properties":{"cmu_name":"U117","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-75.71194,35.20561],[-75.71619,35.20358],[-75.71621,35.202],[-75.72895,35.20208],[-75.73905,35.19566],[-75.75583,35.19205],[-75.75676,35.19055],[-75.75515,35.18741],[-75.77527,35.18094],[-75.77019,35.18681],[-75.7713,35.18931],[-75.77416,35.18987],[-75.76261,35.20155],[-75.75891,35.20154],[-75.76042,35.2033],[-75.59589,35.26903],[-75.59644,35.25834],[-75.60577,35.25295],[-75.60694,35.25436],[-75.60959,35.2531],[-75.60858,35.25156],[-75.61782,35.24748],[-75.62245,35.24184],[-75.62758,35.23968],[-75.63655,35.23049],[-75.64792,35.22777],[-75.65719,35.2214],[-75.66995,35.21772],[-75.67033,35.22068],[-75.67755,35.22197],[-75.67954,35.22372],[-75.68123,35.23329],[-75.68895,35.22832],[-75.69319,35.22186],[-75.69438,35.22236],[-75.69937,35.21803],[-75.70058,35.21267],[-75.70681,35.21181],[-75.70693,35.20877],[-75.71194,35.20561]],[[-75.70956,35.20935],[-75.70849,35.20899],[-75.70833,35.20908],[-75.70895,35.20997],[-75.70956,35.20935]],[[-75.71628,35.20916],[-75.71764,35.20815],[-75.718,35.2062],[-75.71625,35.20832],[-75.71628,35.20916]],[[-75.7169,35.21276],[-75.71736,35.21238],[-75.71561,35.21339],[-75.71628,35.21337],[-75.7169,35.21276]]]}},{"type":"Feature","properties":{"cmu_name":"U148","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-75.75015,35.60895],[-75.7516,35.60832],[-75.75156,35.61256],[-75.74672,35.62045],[-75.73559,35.62554],[-75.75015,35.60895]]],[[[-75.80055,35.60856],[-75.78323,35.59631],[-75.77754,35.60017],[-75.76661,35.60082],[-75.7634,35.60449],[-75.75517,35.60661],[-75.75549,35.60698],[-75.7555,35.60807],[-75.75511,35.60674],[-75.75178,35.6071],[-75.77562,35.58011],[-75.77766,35.57932],[-75.77632,35.58159],[-75.78157,35.58579],[-75.78418,35.59044],[-75.78356,35.59639],[-75.80055,35.60856]]]]}},{"type":"Feature","properties":{"cmu_name":"U119","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-75.73541,35.62583],[-75.71818,35.69389],[-75.68619,35.71253],[-75.68618,35.71252],[-75.73541,35.62583]]],[[[-76.16119,35.32852],[-76.15855,35.32815],[-76.15583,35.33093],[-76.14918,35.33044],[-76.06294,35.36724],[-75.77479,35.58004],[-75.7358,35.62517],[-76.04801,35.09943],[-76.26869,35.30931],[-76.26644,35.31099],[-76.16119,35.32852]],[[-75.76661,35.58394],[-75.7669,35.58323],[-75.77403,35.5806],[-75.76785,35.58202],[-75.76287,35.58502],[-75.76661,35.58394]]],[[[-76.08125,35.37419],[-76.08136,35.37416],[-76.08137,35.37417],[-76.08116,35.37423],[-76.08125,35.37419]]],[[[-76.08415,35.37389],[-76.08421,35.37386],[-76.08442,35.3739],[-76.08423,35.37391],[-76.08415,35.37389]]],[[[-76.11971,35.35836],[-76.11971,35.35825],[-76.11985,35.35827],[-76.11978,35.3584],[-76.11971,35.35836]]]]}},{"type":"Feature","properties":{"cmu_name":"U116","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-75.5825,35.26347],[-75.592,35.26611],[-75.59581,35.26912],[-75.52133,35.47157],[-75.48467,35.47057],[-75.48624,35.46247],[-75.48472,35.46206],[-75.48665,35.45961],[-75.48525,35.45928],[-75.48656,35.4581],[-75.48555,35.45398],[-75.49066,35.43736],[-75.48888,35.43713],[-75.49172,35.43268],[-75.49031,35.43162],[-75.48904,35.43343],[-75.48847,35.43328],[-75.4909,35.42888],[-75.49178,35.43166],[-75.49246,35.42703],[-75.49215,35.41655],[-75.49013,35.41787],[-75.4928,35.41602],[-75.49187,35.41243],[-75.49418,35.41034],[-75.49393,35.40606],[-75.49608,35.40198],[-75.49445,35.4014],[-75.4971,35.39924],[-75.49558,35.39383],[-75.49401,35.39644],[-75.4956,35.38889],[-75.49423,35.38929],[-75.49649,35.38187],[-75.49866,35.37998],[-75.49746,35.37755],[-75.49894,35.37793],[-75.50002,35.37419],[-75.49924,35.37129],[-75.50357,35.36738],[-75.50982,35.36609],[-75.51362,35.35602],[-75.5139,35.34436],[-75.51682,35.33919],[-75.51686,35.32749],[-75.51205,35.31846],[-75.51427,35.31752],[-75.51368,35.31476],[-75.51184,35.31637],[-75.51057,35.3166],[-75.51094,35.31485],[-75.51236,35.31584],[-75.51286,35.31462],[-75.51399,35.31393],[-75.51462,35.31202],[-75.51684,35.31176],[-75.51501,35.30621],[-75.51439,35.30937],[-75.5125,35.30957],[-75.51427,35.30923],[-75.51488,35.30666],[-75.5136,35.30272],[-75.51543,35.30028],[-75.51808,35.27766],[-75.52173,35.27538],[-75.52198,35.27733],[-75.52382,35.27778],[-75.52264,35.27493],[-75.52941,35.27089],[-75.53643,35.27306],[-75.54053,35.27234],[-75.54603,35.26899],[-75.55157,35.2688],[-75.55304,35.26703],[-75.56404,35.265],[-75.56788,35.26551],[-75.56984,35.26334],[-75.57305,35.26375],[-75.57495,35.26226],[-75.5825,35.26347]],[[-75.51992,35.27983],[-75.51986,35.27983],[-75.51988,35.27989],[-75.51991,35.27988],[-75.51992,35.27983]],[[-75.52278,35.28125],[-75.52345,35.2811],[-75.52033,35.27849],[-75.52185,35.28098],[-75.52278,35.28125]],[[-75.5148,35.30439],[-75.51461,35.30447],[-75.51505,35.30596],[-75.51543,35.30508],[-75.5148,35.30439]],[[-75.51293,35.31483],[-75.51342,35.31484],[-75.51363,35.31449],[-75.51302,35.3147],[-75.51293,35.31483]],[[-75.5156,35.31491],[-75.51562,35.31284],[-75.51497,35.31227],[-75.51411,35.31508],[-75.5156,35.31491]],[[-75.49065,35.43792],[-75.49078,35.43792],[-75.49076,35.43775],[-75.49066,35.43776],[-75.49065,35.43792]],[[-75.49058,35.43898],[-75.49058,35.43898],[-75.49054,35.43938],[-75.49079,35.43862],[-75.49058,35.43898]]]}},{"type":"Feature","properties":{"cmu_name":"U120","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-75.76141,35.20361],[-75.76333,35.20446],[-75.76482,35.20319],[-75.76366,35.20213],[-75.99874,35.12144],[-76.04639,35.09948],[-76.04706,35.09977],[-75.7355,35.62557],[-75.6862,35.71253],[-75.54672,35.79362],[-75.51918,35.59832],[-75.52131,35.47156],[-75.59579,35.26911],[-75.76141,35.20361]],[[-75.56097,35.77851],[-75.566,35.77846],[-75.56465,35.77536],[-75.55847,35.77678],[-75.55846,35.77867],[-75.56097,35.77851]],[[-75.56709,35.77606],[-75.56869,35.77662],[-75.56921,35.77805],[-75.5703,35.77818],[-75.57487,35.77606],[-75.57078,35.77382],[-75.56544,35.77502],[-75.56709,35.77606]],[[-75.56645,35.77622],[-75.56649,35.77831],[-75.56782,35.77846],[-75.56824,35.77662],[-75.56645,35.77622]],[[-75.58977,35.76347],[-75.58802,35.76514],[-75.587,35.76925],[-75.59114,35.7654],[-75.58977,35.76347]],[[-75.59286,35.76072],[-75.59106,35.76161],[-75.59143,35.76321],[-75.59303,35.76268],[-75.59286,35.76072]]]}},{"type":"Feature","properties":{"cmu_name":"U115","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-75.5192,35.59832],[-75.4705,35.60753],[-75.4687,35.60109],[-75.47191,35.59808],[-75.47047,35.5971],[-75.47301,35.59698],[-75.46843,35.58756],[-75.4685,35.58137],[-75.47044,35.5767],[-75.46903,35.57192],[-75.47114,35.56991],[-75.46953,35.56783],[-75.47287,35.56283],[-75.47149,35.56245],[-75.47417,35.56175],[-75.47281,35.55953],[-75.47134,35.55969],[-75.4735,35.55875],[-75.4714,35.55637],[-75.47474,35.55478],[-75.4726,35.55286],[-75.474,35.55168],[-75.47215,35.55154],[-75.47386,35.55063],[-75.47223,35.54989],[-75.47117,35.5489],[-75.47316,35.55001],[-75.47365,35.54924],[-75.47142,35.54842],[-75.46955,35.55003],[-75.46948,35.54934],[-75.47261,35.54759],[-75.47286,35.54808],[-75.47346,35.54375],[-75.47781,35.54348],[-75.47827,35.54099],[-75.47448,35.53976],[-75.47719,35.53882],[-75.47476,35.53847],[-75.4758,35.53737],[-75.4734,35.53531],[-75.47551,35.5357],[-75.47703,35.53186],[-75.47518,35.53212],[-75.47453,35.5315],[-75.47461,35.53099],[-75.47723,35.53153],[-75.47619,35.53076],[-75.47887,35.52892],[-75.47758,35.52972],[-75.47619,35.52963],[-75.47875,35.52747],[-75.48268,35.53022],[-75.48272,35.52646],[-75.48548,35.52445],[-75.47544,35.52424],[-75.48574,35.5243],[-75.48708,35.52146],[-75.48576,35.51635],[-75.48428,35.51674],[-75.48271,35.51497],[-75.4813,35.51548],[-75.47999,35.51533],[-75.48278,35.51433],[-75.48031,35.51164],[-75.48308,35.51186],[-75.48719,35.50723],[-75.48558,35.5022],[-75.48096,35.50157],[-75.48454,35.50038],[-75.48366,35.49735],[-75.48164,35.49681],[-75.4831,35.49545],[-75.48138,35.49376],[-75.48312,35.49417],[-75.48389,35.49256],[-75.48284,35.48042],[-75.48443,35.48172],[-75.48612,35.48067],[-75.48585,35.47817],[-75.48552,35.47904],[-75.484,35.4792],[-75.48624,35.47527],[-75.48396,35.4749],[-75.48586,35.47188],[-75.48467,35.47055],[-75.52133,35.47156],[-75.5192,35.59832]],[[-75.47249,35.54982],[-75.47239,35.54979],[-75.47257,35.54991],[-75.47258,35.54987],[-75.47249,35.54982]],[[-75.48296,35.53027],[-75.48195,35.53064],[-75.48225,35.53035],[-75.48007,35.52907],[-75.47951,35.52856],[-75.4786,35.52842],[-75.47985,35.53038],[-75.48224,35.53119],[-75.48296,35.53027]],[[-75.48565,35.51519],[-75.48521,35.51417],[-75.48274,35.51382],[-75.48439,35.51653],[-75.48565,35.51519]],[[-75.47788,35.5341],[-75.47786,35.53409],[-75.47786,35.53415],[-75.47788,35.5341]],[[-75.47804,35.53375],[-75.47797,35.53377],[-75.47799,35.53381],[-75.47804,35.53377],[-75.47804,35.53375]],[[-75.47798,35.53434],[-75.47795,35.53437],[-75.47796,35.53441],[-75.47799,35.5344],[-75.47798,35.53434]],[[-75.48843,35.51158],[-75.48876,35.5101],[-75.48491,35.51134],[-75.48701,35.51249],[-75.48843,35.51158]],[[-75.47415,35.55299],[-75.47389,35.55299],[-75.47452,35.5532],[-75.47494,35.55318],[-75.47415,35.55299]],[[-75.47662,35.56339],[-75.47621,35.55975],[-75.47432,35.55951],[-75.47624,35.56438],[-75.47662,35.56339]],[[-75.48568,35.5248],[-75.4856,35.52442],[-75.48498,35.52505],[-75.48386,35.52565],[-75.48285,35.52662],[-75.48335,35.5291],[-75.48297,35.530029999999999],[-75.48389,35.5286],[-75.483,35.52649],[-75.48407,35.52698],[-75.48568,35.5248]],[[-75.4767,35.55436],[-75.47616,35.55469],[-75.47606,35.55524],[-75.47633,35.55524],[-75.4767,35.55436]],[[-75.48801,35.51516],[-75.48823,35.51488],[-75.48778,35.51468],[-75.48776,35.51471],[-75.48801,35.51516]]]}},{"type":"Feature","properties":{"cmu_name":"U034","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.27822,35.36838],[-76.27717,35.36849],[-76.27649,35.36833],[-76.27619,35.36549],[-76.27497,35.36562],[-76.27352,35.36416],[-76.27006,35.36587],[-76.2688,35.3655],[-76.26836,35.365],[-76.26705,35.36643],[-76.26615,35.36526],[-76.26548,35.36588],[-76.26131,35.36695],[-76.25991,35.36899],[-76.26133,35.37121],[-76.26027,35.37697],[-76.26097,35.3769],[-76.26147,35.37727],[-76.2558,35.38093],[-76.25856,35.3821],[-76.25905,35.38297],[-76.25736,35.38204],[-76.25612,35.38323],[-76.25039,35.38072],[-76.2534,35.37762],[-76.25425,35.37394],[-76.25019,35.36754],[-76.24735,35.36874],[-76.2413,35.36695],[-76.23949,35.36867],[-76.24033,35.36377],[-76.23332,35.3612],[-76.23148,35.35874],[-76.22927,35.36114],[-76.22735,35.36084],[-76.2269,35.36252],[-76.22573,35.36037],[-76.22344,35.36011],[-76.22732,35.35945],[-76.22726,35.35418],[-76.22913,35.35332],[-76.222,35.34452],[-76.22107,35.34471],[-76.22098,35.34584],[-76.22031,35.34594],[-76.2195,35.34323],[-76.22135,35.34399],[-76.22279,35.34298],[-76.22108,35.34088],[-76.21573,35.3452],[-76.21064,35.34606],[-76.21041,35.35001],[-76.20758,35.3463],[-76.20503,35.34716],[-76.20355,35.34615],[-76.20205,35.3503],[-76.20071,35.35079],[-76.20235,35.34878],[-76.20181,35.34634],[-76.2024,35.34571],[-76.20375,35.34551],[-76.2034,35.33894],[-76.201,35.33894],[-76.20052,35.34057],[-76.19682,35.3417],[-76.18836,35.34185],[-76.1842,35.34643],[-76.17799,35.34796],[-76.16105,35.34357],[-76.16123,35.34469],[-76.16064,35.3455],[-76.16006,35.34318],[-76.15636,35.34127],[-76.1557,35.34215],[-76.15534,35.3421],[-76.15637,35.34061],[-76.15764,35.34111],[-76.15813,35.34082],[-76.1552,35.33583],[-76.15253,35.3355],[-76.15653,35.33462],[-76.15693,35.33057],[-76.15884,35.32903],[-76.26644,35.31097],[-76.26176,35.31364],[-76.26925,35.32598],[-76.26869,35.34093],[-76.26501,35.34293],[-76.26856,35.34465],[-76.27024,35.34682],[-76.27298,35.34665],[-76.27322,35.34743],[-76.27495,35.34446],[-76.27325,35.34502],[-76.27277,35.34371],[-76.27507,35.34356],[-76.27698,35.34554],[-76.28046,35.34506],[-76.27793,35.34835],[-76.28021,35.35075],[-76.27698,35.34807],[-76.27805,35.34712],[-76.27663,35.34547],[-76.2744,35.34591],[-76.27425,35.34768],[-76.27285,35.34843],[-76.27257,35.34699],[-76.27016,35.34719],[-76.26839,35.34472],[-76.2642,35.34472],[-76.26374,35.34366],[-76.26303,35.34428],[-76.26111,35.34391],[-76.26136,35.34556],[-76.25865,35.34425],[-76.25297,35.35053],[-76.25475,35.35372],[-76.25653,35.35436],[-76.25699,35.35252],[-76.25744,35.35494],[-76.26067,35.35633],[-76.26004,35.35899],[-76.26194,35.3596],[-76.26245,35.36176],[-76.26045,35.36218],[-76.25977,35.36474],[-76.26192,35.36638],[-76.26224,35.36588],[-76.26088,35.36491],[-76.2611,35.36438],[-76.26246,35.3655],[-76.26287,35.36476],[-76.26343,35.36467],[-76.26386,35.36405],[-76.26417,35.36402],[-76.26314,35.36547],[-76.26395,35.36583],[-76.26601,35.36504],[-76.26829,35.36477],[-76.26973,35.36537],[-76.27044,35.36321],[-76.27064,35.36438],[-76.27298,35.36428],[-76.2724,35.36299],[-76.27406,35.3614],[-76.27274,35.35984],[-76.27535,35.35997],[-76.27548,35.35952],[-76.27499,35.35923],[-76.27478,35.35827],[-76.27545,35.35786],[-76.27209,35.3577],[-76.27247,35.35491],[-76.27008,35.35378],[-76.26871,35.3552],[-76.26993,35.35543],[-76.27102,35.35706],[-76.26865,35.35619],[-76.27012,35.35601],[-76.26838,35.35572],[-76.26797,35.3535],[-76.26577,35.35405],[-76.26634,35.35526],[-76.26375,35.35506],[-76.26563,35.35451],[-76.26413,35.35325],[-76.26639,35.35367],[-76.26625,35.35189],[-76.26534,35.35204],[-76.26474,35.35175],[-76.26475,35.35012],[-76.26219,35.35054],[-76.26046,35.34946],[-76.25751,35.35154],[-76.25706,35.35013],[-76.26063,35.34927],[-76.25955,35.34895],[-76.25932,35.34621],[-76.26028,35.34583],[-76.26016,35.34872],[-76.26262,35.34675],[-76.26201,35.34836],[-76.26371,35.3483],[-76.26404,35.34858],[-76.2629,35.3491],[-76.26117,35.34853],[-76.26159,35.34994],[-76.26559,35.35007],[-76.26503,35.35176],[-76.26667,35.35174],[-76.26657,35.35257],[-76.26732,35.3521],[-76.26848,35.3536],[-76.26948,35.35225],[-76.26745,35.35177],[-76.26683,35.3504],[-76.26777,35.35158],[-76.26938,35.35038],[-76.26984,35.35278],[-76.26925,35.35371],[-76.27101,35.35226],[-76.27265,35.3527],[-76.27041,35.35318],[-76.27318,35.35417],[-76.2727,35.35699],[-76.27825,35.35823],[-76.28042,35.36013],[-76.27597,35.35773],[-76.27492,35.35871],[-76.27621,35.3596],[-76.27485,35.3604],[-76.27359,35.36057],[-76.2751,35.36138],[-76.27547,35.36236],[-76.27427,35.36148],[-76.2726,35.36304],[-76.27552,35.36419],[-76.27822,35.36838]],[[-76.25696,35.35438],[-76.25689,35.35431],[-76.25686,35.35431],[-76.25687,35.35434],[-76.25696,35.35438]],[[-76.1582,35.34095],[-76.15876,35.34224],[-76.1595,35.34217],[-76.15932,35.34133],[-76.1582,35.34095]],[[-76.23132,35.35964],[-76.23131,35.35963],[-76.23131,35.35963],[-76.23131,35.35964],[-76.23132,35.35964]],[[-76.22656,35.35082],[-76.22655,35.35082],[-76.22656,35.35083],[-76.22656,35.35083],[-76.22656,35.35082]],[[-76.26277,35.3654],[-76.26277,35.3654],[-76.26277,35.3654],[-76.26277,35.3654]],[[-76.26775,35.3528],[-76.26749,35.35316],[-76.26777,35.35329],[-76.26799,35.35312],[-76.26775,35.3528]],[[-76.27325,35.35632],[-76.27325,35.35633],[-76.27325,35.35634],[-76.27325,35.35634],[-76.27325,35.35632]],[[-76.2001,35.34015],[-76.20023,35.3402],[-76.20029,35.34017],[-76.20011,35.340089999999999],[-76.2001,35.34015]],[[-76.20498,35.3388],[-76.20413,35.33827],[-76.20328,35.33805],[-76.20316,35.33813],[-76.20498,35.3388]],[[-76.20301,35.34611],[-76.20302,35.34604],[-76.20267,35.34593],[-76.20265,35.3461],[-76.20301,35.34611]],[[-76.20574,35.34649],[-76.20571,35.34648],[-76.20568,35.3465],[-76.20571,35.34651],[-76.20574,35.34649]],[[-76.20715,35.34631],[-76.20746,35.34604],[-76.20583,35.34622],[-76.20684,35.34621],[-76.20715,35.34631]],[[-76.26206,35.3438],[-76.26137,35.34349],[-76.26016,35.34373],[-76.26081,35.34428],[-76.26116,35.34378],[-76.26206,35.3438]],[[-76.26057,35.34414],[-76.26057,35.34412],[-76.26046,35.34404],[-76.26035,35.34402],[-76.26057,35.34414]],[[-76.26101,35.34913],[-76.2609,35.34885],[-76.26065,35.34889],[-76.26066,35.34912],[-76.26101,35.34913]],[[-76.26098,35.34932],[-76.26094,35.34928],[-76.2608,35.34936],[-76.26093,35.34942],[-76.26098,35.34932]],[[-76.26317,35.34403],[-76.26363,35.34355],[-76.26342,35.34318],[-76.26246,35.34339],[-76.26317,35.34403]],[[-76.26474,35.34346],[-76.26477,35.34266],[-76.26369,35.34316],[-76.26408,35.34367],[-76.26474,35.34346]],[[-76.2624,35.34859],[-76.26246,35.34856],[-76.2624,35.34846],[-76.26232,35.34858],[-76.2624,35.34859]],[[-76.26545,35.34404],[-76.26529,35.34342],[-76.26504,35.34332],[-76.26473,35.34417],[-76.26545,35.34404]],[[-76.26731,35.35218],[-76.2673,35.35222],[-76.2673,35.35223],[-76.26732,35.35222],[-76.26731,35.35218]],[[-76.26957,35.35549],[-76.26957,35.35547],[-76.26954,35.35541],[-76.26952,35.35545],[-76.26957,35.35549]],[[-76.27,35.35403],[-76.26998,35.35407],[-76.26998,35.35407],[-76.27,35.35405],[-76.27,35.35403]],[[-76.27047,35.35366],[-76.27045,35.35357],[-76.27041,35.35355],[-76.27041,35.35358],[-76.27047,35.35366]],[[-76.27057,35.3537],[-76.27053,35.35373],[-76.27054,35.35374],[-76.27057,35.35371],[-76.27057,35.3537]],[[-76.27018,35.35617],[-76.27017,35.35618],[-76.27015,35.35624],[-76.27022,35.35621],[-76.27018,35.35617]],[[-76.27616,35.34484],[-76.27595,35.34494],[-76.27599,35.34513],[-76.27628,35.34505],[-76.27616,35.34484]],[[-76.27784,35.34646],[-76.27789,35.34642],[-76.27789,35.34635],[-76.27779,35.34636],[-76.27784,35.34646]],[[-76.27799,35.34605],[-76.27788,35.34611],[-76.27792,35.3463],[-76.27805,35.3462],[-76.27799,35.34605]],[[-76.27808,35.34805],[-76.27798,35.34799],[-76.27795,35.34807],[-76.27804,35.34807],[-76.27808,35.34805]]]}},{"type":"Feature","properties":{"cmu_name":"U139","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.68205,35.16454],[-76.67997,35.16427],[-76.67344,35.16796],[-76.65533,35.1848],[-76.65,35.18276],[-76.64326,35.17735],[-76.63818,35.17684],[-76.63538,35.17411],[-76.63221,35.17514],[-76.63279,35.17688],[-76.63157,35.17836],[-76.63153,35.17556],[-76.62862,35.17369],[-76.62559,35.17623],[-76.62715,35.17818],[-76.62673,35.17847],[-76.62425,35.17645],[-76.62187,35.17748],[-76.62307,35.17786],[-76.62394,35.17936],[-76.62243,35.17808],[-76.62123,35.17921],[-76.62017,35.17789],[-76.61809,35.17865],[-76.61963,35.182],[-76.61301,35.17961],[-76.61115,35.16182],[-76.61336,35.16294],[-76.61458,35.16179],[-76.61755,35.16246],[-76.62678,35.15939],[-76.62323,35.15638],[-76.62486,35.15608],[-76.62327,35.1544],[-76.62475,35.15423],[-76.62511,35.15093],[-76.62614,35.15789],[-76.62787,35.15715],[-76.63628,35.16238],[-76.64341,35.16244],[-76.64418,35.16143],[-76.64793,35.1624],[-76.64972,35.15807],[-76.6527,35.15741],[-76.64918,35.16237],[-76.65182,35.16413],[-76.65449,35.16119],[-76.65236,35.16489],[-76.65353,35.16776],[-76.65682,35.16484],[-76.65645,35.16601],[-76.65798,35.16613],[-76.66567,35.16262],[-76.67003,35.14949],[-76.68032,35.15893],[-76.68005,35.16375],[-76.68205,35.16454]]]}},{"type":"Feature","properties":{"cmu_name":"U136","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.59198,35.23068],[-76.59267,35.22993],[-76.59036,35.24004],[-76.58681,35.24245],[-76.58708,35.24083],[-76.58351,35.23996],[-76.57558,35.24084],[-76.57121,35.23893],[-76.56951,35.24053],[-76.56693,35.23953],[-76.56737,35.23757],[-76.56008,35.23675],[-76.55894,35.23811],[-76.55521,35.23388],[-76.5553,35.23602],[-76.55017,35.24245],[-76.55086,35.24466],[-76.55004,35.2456],[-76.54877,35.24227],[-76.55117,35.23988],[-76.54932,35.23836],[-76.55075,35.23842],[-76.55104,35.23602],[-76.54822,35.23402],[-76.52851,35.23164],[-76.52339,35.2295],[-76.51848,35.2247],[-76.51175,35.22471],[-76.50372,35.22217],[-76.4987,35.21759],[-76.49513,35.21704],[-76.52597,35.18614],[-76.52692,35.1873],[-76.5232,35.19377],[-76.52763,35.19941],[-76.52059,35.19942],[-76.51793,35.20231],[-76.52041,35.20597],[-76.52446,35.20229],[-76.52632,35.20663],[-76.52857,35.20538],[-76.52793,35.2021],[-76.53252,35.20386],[-76.52982,35.20624],[-76.53133,35.20691],[-76.52891,35.20728],[-76.5322,35.20861],[-76.53901,35.21522],[-76.53857000000001,35.21814],[-76.54632,35.21873],[-76.54926,35.2223],[-76.55368,35.22093],[-76.55406,35.21963],[-76.55226,35.21902],[-76.55495,35.21649],[-76.55587,35.21853],[-76.55801,35.21724],[-76.56187,35.21982],[-76.56363,35.21933],[-76.56579,35.21512],[-76.56315,35.21145],[-76.56841,35.21494],[-76.57131,35.21536],[-76.57181,35.21363],[-76.5732,35.2163],[-76.571,35.21736],[-76.56759,35.21663],[-76.56542,35.22211],[-76.56078,35.2226],[-76.56062,35.22385],[-76.5656,35.22694],[-76.56538,35.22893],[-76.57651,35.23138],[-76.57161,35.23156],[-76.57268,35.23453],[-76.57717,35.23694],[-76.57957,35.23588],[-76.58474,35.23673],[-76.58924,35.2401],[-76.59174,35.2214],[-76.59306,35.2231],[-76.59198,35.23068]]]}},{"type":"Feature","properties":{"cmu_name":"U135","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.47899,35.26904],[-76.47695,35.26639],[-76.47342,35.26507],[-76.47423,35.26344],[-76.4685,35.26142],[-76.49134,35.22118],[-76.49338,35.22271],[-76.49264,35.22575],[-76.49783,35.22442],[-76.501,35.22644],[-76.50136,35.22977],[-76.49873,35.22974],[-76.49799,35.23439],[-76.50146,35.23175],[-76.50771,35.23168],[-76.50865,35.23439],[-76.51346,35.23272],[-76.51341,35.23733],[-76.51827,35.23959],[-76.52105,35.23912],[-76.51877,35.24911],[-76.52272,35.24883],[-76.52731,35.2511],[-76.52838,35.25317],[-76.53208,35.25391],[-76.53012,35.25375],[-76.52995,35.25501],[-76.52326,35.25114],[-76.52092,35.25283],[-76.5205,35.25131],[-76.51598,35.25155],[-76.51189,35.25385],[-76.51544,35.24758],[-76.51364,35.24346],[-76.51032,35.24414],[-76.50385,35.2405],[-76.50323,35.24462],[-76.50535,35.24506],[-76.50543,35.24654],[-76.50253,35.24938],[-76.50304,35.24704],[-76.50034,35.24795],[-76.50045,35.24539],[-76.49764,35.24286],[-76.49321,35.24616],[-76.49232,35.25076],[-76.4881,35.25029],[-76.48662,35.2464],[-76.48484,35.24779],[-76.47905,35.24677],[-76.47978,35.24903],[-76.48191,35.24855],[-76.48523,35.25245],[-76.48693,35.25614],[-76.48553,35.26009],[-76.49124,35.26001],[-76.50668,35.26544],[-76.49171,35.26206],[-76.48475,35.26759],[-76.48237,35.26683],[-76.47899,35.26904]],[[-76.47818,35.24672],[-76.47797,35.24685],[-76.47817,35.24718],[-76.47856,35.24685],[-76.47818,35.24672]]],[[[-76.47001,35.27943],[-76.4688,35.26766],[-76.47057,35.26799],[-76.46894,35.26679],[-76.47342,35.26841],[-76.4756,35.27175],[-76.47543,35.27782],[-76.47001,35.27943]]],[[[-76.50141,35.31501],[-76.49288,35.31294],[-76.49145,35.31421],[-76.4928,35.30819],[-76.48635,35.30853],[-76.48381,35.30637],[-76.4823,35.30939],[-76.47049,35.28132],[-76.47446,35.28302],[-76.47681,35.28704],[-76.48149,35.28673],[-76.4778,35.28241],[-76.48062,35.27851],[-76.47991,35.27675],[-76.483,35.27615],[-76.48685,35.27868],[-76.48803,35.27714],[-76.49119,35.27826],[-76.49131,35.27257],[-76.49266,35.2759],[-76.4933,35.27323],[-76.49537,35.27481],[-76.49577,35.27907],[-76.49858,35.2749],[-76.4999,35.27688],[-76.50041,35.27541],[-76.50271,35.27589],[-76.50622,35.27447],[-76.50678,35.27481],[-76.50343,35.27624],[-76.50419,35.27758],[-76.50184,35.27644],[-76.50032,35.278],[-76.50142,35.27889],[-76.4992,35.28027],[-76.49995,35.28146],[-76.4978,35.28142],[-76.49633,35.28389],[-76.50046,35.28468],[-76.49879,35.28582],[-76.49998,35.28731],[-76.49536,35.28734],[-76.49697,35.29092],[-76.49275,35.29163],[-76.49492,35.29301],[-76.49869,35.29237],[-76.49877,35.29696],[-76.50252,35.29706],[-76.49881,35.30184],[-76.49931,35.30396],[-76.50106,35.30392],[-76.50063,35.30558],[-76.49665,35.30718],[-76.49796,35.30855],[-76.49699,35.3109],[-76.49958,35.31112],[-76.50141,35.31501]]],[[[-76.48455,35.30988],[-76.48417,35.30874],[-76.48484,35.30774],[-76.48621,35.3086],[-76.48455,35.30988]]],[[[-76.48618,35.30914],[-76.48625,35.30876],[-76.48695,35.30862],[-76.48704,35.30918],[-76.48618,35.30914]]]]}},{"type":"Feature","properties":{"cmu_name":"U147","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.62536,35.50318],[-76.62873,35.50609],[-76.58617,35.50842],[-76.58508,35.50506],[-76.58241,35.50327],[-76.58099,35.5039],[-76.58004,35.50257],[-76.57632,35.50463],[-76.57164,35.50197],[-76.57173,35.50072],[-76.56187,35.49964],[-76.57232,35.49992],[-76.57706,35.50249],[-76.57901,35.50048],[-76.58054,35.50125],[-76.58017,35.50056],[-76.56541,35.49486],[-76.56182,35.4913],[-76.56086,35.486],[-76.56276,35.47475],[-76.55823,35.47172],[-76.55211,35.46385],[-76.54675,35.46631],[-76.54874,35.46838],[-76.54379,35.46898],[-76.54578,35.47146],[-76.54906,35.47248],[-76.54515,35.4722],[-76.5468,35.4741],[-76.54668,35.47476],[-76.54403,35.47089],[-76.54112,35.47332],[-76.5403,35.47637],[-76.5419,35.47927],[-76.54409,35.47943],[-76.54297,35.48023],[-76.54592,35.48237],[-76.54542,35.48337],[-76.54374,35.48213],[-76.5434,35.48241],[-76.54372,35.48312],[-76.54337,35.48349],[-76.54292,35.48115],[-76.54112,35.48103],[-76.53965,35.47811],[-76.5383,35.47853],[-76.53899,35.47743],[-76.53624,35.47672],[-76.53457,35.47813],[-76.52826,35.47677],[-76.52845,35.47315],[-76.53673,35.47305],[-76.53942,35.46606],[-76.53619,35.4664],[-76.53778,35.46563],[-76.53613,35.46369],[-76.53665,35.46286],[-76.54115,35.466],[-76.54353,35.46258],[-76.54574,35.46245],[-76.54578,35.45981],[-76.54231,35.459],[-76.53956,35.45634],[-76.54616,35.45868],[-76.54523,35.45677],[-76.54683,35.45915],[-76.55117,35.45464],[-76.54666,35.45263],[-76.54301,35.44866],[-76.5509,35.45263],[-76.55295,35.45159],[-76.55233,35.44875],[-76.55377,35.45094],[-76.55658,35.45018],[-76.55241,35.45366],[-76.55502,35.45673],[-76.56329,35.45194],[-76.56519,35.44821],[-76.55927,35.44489],[-76.55653,35.44093],[-76.55126,35.43739],[-76.54036,35.43518],[-76.5401,35.43793],[-76.54283,35.44017],[-76.54006,35.43907],[-76.53983,35.44222],[-76.53919,35.43996],[-76.53809,35.44057],[-76.53884,35.43875],[-76.53744,35.43896],[-76.5386,35.43643],[-76.53307,35.43409],[-76.53193,35.43203],[-76.53242,35.4374],[-76.53028,35.4365],[-76.53084,35.43354],[-76.52866,35.43317],[-76.52525,35.43526],[-76.52651,35.44007],[-76.53072,35.44249],[-76.52766,35.44205],[-76.53054,35.44465],[-76.52894,35.44465],[-76.52894,35.44634],[-76.52778,35.44408],[-76.52646,35.44447],[-76.52563,35.44076],[-76.52336,35.44229],[-76.52416,35.4398],[-76.52043,35.44153],[-76.52443,35.43873],[-76.52145,35.43444],[-76.52023,35.43411],[-76.51942,35.43673],[-76.5186,35.43405],[-76.51607,35.43804],[-76.51727,35.43502],[-76.51391,35.43736],[-76.51241,35.43681],[-76.517,35.43378],[-76.51662,35.43231],[-76.51384,35.43396],[-76.51333,35.43284],[-76.51481,35.43095],[-76.51302,35.42957],[-76.51518,35.42721],[-76.52018,35.43171],[-76.52379,35.4328],[-76.52276,35.429],[-76.52741,35.42813],[-76.52849,35.42655],[-76.52636,35.42498],[-76.52525,35.42253],[-76.52674,35.42344],[-76.52752,35.42138],[-76.5279,35.42486],[-76.52988,35.42348],[-76.53097,35.42636],[-76.53291,35.42668],[-76.53268,35.42185],[-76.53977,35.41008],[-76.53674,35.40697],[-76.53506,35.41127],[-76.53533,35.40922],[-76.53308,35.40937],[-76.53272,35.41164],[-76.52974,35.41096],[-76.53426,35.4086],[-76.53315,35.40394],[-76.53069,35.40417],[-76.53257,35.40186],[-76.51668,35.39427],[-76.5151,35.39621],[-76.5162,35.39766],[-76.51066,35.39849],[-76.51313,35.39987],[-76.51207,35.4011],[-76.5098,35.39909],[-76.50647,35.40182],[-76.50934,35.40489],[-76.51725,35.40394],[-76.51463,35.40507],[-76.5162,35.40772],[-76.51401,35.40559],[-76.51239,35.40651],[-76.51063,35.40545],[-76.50816,35.40809],[-76.50601,35.40348],[-76.50241,35.40224],[-76.50214,35.40002],[-76.49833,35.39933],[-76.49746,35.40135],[-76.50144,35.4045],[-76.49985,35.40431],[-76.50048,35.40859],[-76.49843,35.40826],[-76.49972,35.40669],[-76.49929,35.40507],[-76.49734,35.40694],[-76.49904,35.40472],[-76.49814,35.40334],[-76.49674,35.40255],[-76.4962,35.40401],[-76.49641,35.40206],[-76.49303,35.40096],[-76.49471,35.4002],[-76.4938,35.3991],[-76.48928,35.39859],[-76.49347,35.41085],[-76.49599,35.4114],[-76.49344,35.41091],[-76.48891,35.39776],[-76.49304,35.38578],[-76.49535,35.38468],[-76.49331,35.38295],[-76.49141,35.38366],[-76.48899,35.38014],[-76.49513,35.38229],[-76.49029,35.37791],[-76.57473,35.3888],[-76.57581,35.39401],[-76.58042,35.39708],[-76.58189,35.40818],[-76.58467,35.41347],[-76.59029,35.41438],[-76.59167,35.41904],[-76.58834,35.42556],[-76.59438,35.43105],[-76.59497,35.43416],[-76.59323,35.43678],[-76.60563,35.4443],[-76.60813,35.44252],[-76.60777,35.44475],[-76.60637,35.44488],[-76.60781,35.44536],[-76.60803,35.44604],[-76.60645,35.4454],[-76.60689,35.44698],[-76.60623,35.44538],[-76.60575,35.44519],[-76.60568,35.44472],[-76.60522,35.44465],[-76.60501,35.44661],[-76.60601,35.4509],[-76.60888,35.4496],[-76.6065,35.45155],[-76.60871,35.4531],[-76.60395,35.45405],[-76.60379,35.46307],[-76.60193,35.4668],[-76.60302,35.47212],[-76.60091,35.47904],[-76.5979,35.48199],[-76.61773,35.48957],[-76.62001,35.49683],[-76.62536,35.50318]],[[-76.60594,35.44522],[-76.60621,35.44523],[-76.60596,35.44484],[-76.60603,35.44499],[-76.60594,35.44522]],[[-76.49148,35.37897],[-76.49148,35.37897],[-76.49148,35.37897],[-76.49148,35.37897]],[[-76.53321,35.40395],[-76.53328,35.40395],[-76.53338,35.40391],[-76.53342,35.4038],[-76.5334,35.40377],[-76.53321,35.40395]],[[-76.53276,35.41124],[-76.53278,35.41113],[-76.53274,35.41118],[-76.53276,35.41124]],[[-76.53538,35.41772],[-76.53539,35.41773],[-76.5354,35.41773],[-76.5354,35.41773],[-76.53538,35.41772]],[[-76.50407,35.39289],[-76.50188,35.38788],[-76.49793,35.38746],[-76.49774,35.38575],[-76.49473,35.38628],[-76.4949,35.38901],[-76.49313,35.3859],[-76.48922,35.39843],[-76.49236,35.39755],[-76.49604,35.39918],[-76.49727,35.39671],[-76.50059,35.39583],[-76.49568,35.39314],[-76.49743,35.3934],[-76.4976,35.39219],[-76.50307,35.39478],[-76.50407,35.39289]],[[-76.49517,35.38642],[-76.49518,35.38642],[-76.49518,35.38642],[-76.49518,35.38642],[-76.49517,35.38642]],[[-76.49317,35.38581],[-76.49316,35.38585],[-76.49317,35.38586],[-76.49321,35.38583],[-76.49317,35.38581]],[[-76.53866,35.43421],[-76.53823,35.43423],[-76.53796,35.43472],[-76.53815,35.4348],[-76.53866,35.43421]],[[-76.58945,35.4159],[-76.58937,35.41587],[-76.58908,35.41574],[-76.5891,35.41578],[-76.58945,35.4159]],[[-76.58952,35.41592],[-76.58955,35.41595],[-76.5896,35.41597],[-76.58961,35.41593],[-76.58952,35.41592]],[[-76.60727,35.44397],[-76.60671,35.44401],[-76.60668,35.44432],[-76.60679,35.44437],[-76.60727,35.44397]],[[-76.60822,35.45033],[-76.60837,35.45027],[-76.60824,35.45019],[-76.60808,35.45036],[-76.60822,35.45033]]]}},{"type":"Feature","properties":{"cmu_name":"U037","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.48817,35.40338],[-76.48654,35.40271],[-76.48595,35.40561],[-76.48487,35.40486],[-76.48327,35.40627],[-76.4845,35.40702],[-76.4828,35.40846],[-76.48467,35.41036],[-76.4802,35.40974],[-76.48196,35.40493],[-76.47903,35.40584],[-76.47978,35.40767],[-76.47379,35.4083],[-76.47618,35.4063],[-76.4753,35.40498],[-76.47131,35.40499],[-76.46652,35.40046],[-76.46772,35.40635],[-76.46479,35.40325],[-76.46187,35.40398],[-76.46283,35.40576],[-76.46043,35.40453],[-76.46099,35.40761],[-76.46401,35.41046],[-76.45906,35.40875],[-76.45686,35.413],[-76.45435,35.41397],[-76.44831,35.41211],[-76.44543,35.40897],[-76.44965,35.41009],[-76.4524,35.4081],[-76.45059,35.4061],[-76.45567,35.40594],[-76.45463,35.4036],[-76.4563,35.40008],[-76.45385,35.39863],[-76.45087,35.3998],[-76.45055,35.39844],[-76.45316,35.39746],[-76.45258,35.39602],[-76.4549,35.3973],[-76.4566,35.39652],[-76.45485,35.39224],[-76.4498,35.38964],[-76.44927,35.39165],[-76.45083,35.39107],[-76.45189,35.39191],[-76.45031,35.39226],[-76.45115,35.39455],[-76.44966,35.39461],[-76.45057,35.39708],[-76.44534,35.39728],[-76.44494,35.39491],[-76.44177,35.39689],[-76.43928,35.39444],[-76.43972,35.38945],[-76.43804,35.38896],[-76.46989,35.37282],[-76.47198,35.37652],[-76.47083,35.379],[-76.47558,35.38054],[-76.47269,35.38317],[-76.47609,35.38375],[-76.47851,35.38259],[-76.47814,35.38506],[-76.47624,35.38563],[-76.47733,35.38766],[-76.47505,35.38763],[-76.4745,35.38828],[-76.47681,35.3887],[-76.47956,35.38709],[-76.48239,35.38803],[-76.47942,35.38835],[-76.47889,35.39027],[-76.48125,35.39257],[-76.47946,35.39309],[-76.48239,35.39469],[-76.47724,35.3954],[-76.47739,35.39711],[-76.47985,35.39752],[-76.47908,35.39908],[-76.48137,35.3992],[-76.48438,35.40269],[-76.48746,35.40009],[-76.48817,35.40338]],[[-76.44965,35.3946],[-76.44964,35.3946],[-76.4496,35.39461],[-76.4496,35.39461],[-76.44965,35.3946]],[[-76.45294,35.39049],[-76.45294,35.39049],[-76.45294,35.39048],[-76.45294,35.39049],[-76.45294,35.39049]],[[-76.45091,35.39972],[-76.45098,35.39968],[-76.45095,35.39965],[-76.45089,35.39967],[-76.45091,35.39972]],[[-76.45697,35.39736],[-76.45686,35.39709],[-76.45668,35.39693],[-76.45652,35.39762],[-76.45697,35.39736]],[[-76.47706,35.40736],[-76.47702,35.40736],[-76.47702,35.4074],[-76.47703,35.40737],[-76.47706,35.40736]]]}},{"type":"Feature","properties":{"cmu_name":"U036","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.44937,35.40372],[-76.44289,35.40314],[-76.44183,35.40607],[-76.43813,35.4038],[-76.43647,35.40439],[-76.43664,35.40692],[-76.43232,35.40574],[-76.41938,35.41905],[-76.42378,35.41783],[-76.42819,35.41956],[-76.42936,35.41858],[-76.42931,35.41709],[-76.42983,35.41647],[-76.42963,35.41794],[-76.4331,35.41819],[-76.43016,35.41877],[-76.42999,35.42362],[-76.43471,35.4247],[-76.43624,35.42622],[-76.43225,35.42561],[-76.43321,35.42816],[-76.43044,35.43081],[-76.43099,35.42527],[-76.42774,35.42488],[-76.4256,35.42494],[-76.4243,35.42727],[-76.41831,35.42545],[-76.41482,35.42816],[-76.40877,35.42943],[-76.40952,35.43052],[-76.41268,35.43246],[-76.41451,35.43063],[-76.4165,35.43211],[-76.42118,35.43124],[-76.42038,35.43211],[-76.42411,35.4331],[-76.41925,35.43217],[-76.41747,35.43391],[-76.4207,35.43655],[-76.42203,35.44214],[-76.4124,35.44384],[-76.40144,35.43704],[-76.39633,35.4383],[-76.39698,35.43643],[-76.40092,35.43703],[-76.39701,35.43402],[-76.39715,35.43553],[-76.39613,35.43223],[-76.38863,35.42774],[-76.38879,35.42518],[-76.38584,35.42231],[-76.38732,35.41983],[-76.3859,35.41522],[-76.38539,35.41742],[-76.38456,35.41586],[-76.38379,35.41638],[-76.38254,35.41602],[-76.38413,35.41486],[-76.38101,35.41467],[-76.38487,35.41424],[-76.38553,35.41281],[-76.38102,35.40823],[-76.38506,35.41122],[-76.38744,35.41079],[-76.38894,35.40772],[-76.38727,35.40804],[-76.385,35.40547],[-76.38018,35.40597],[-76.38273,35.40497],[-76.37957,35.40319],[-76.38416,35.40374],[-76.3804,35.39987],[-76.38803,35.40382],[-76.39032,35.40167],[-76.39629,35.4065],[-76.39561,35.40138],[-76.39064,35.39958],[-76.38761,35.39565],[-76.38374,35.39401],[-76.38327,35.39259],[-76.38537,35.39334],[-76.38674,35.39181],[-76.38482,35.38486],[-76.43766,35.38903],[-76.43508,35.39307],[-76.44205,35.40074],[-76.44059,35.4025],[-76.44428,35.40177],[-76.44937,35.40372]],[[-76.4039,35.43877],[-76.4039,35.43877],[-76.4039,35.43877],[-76.4039,35.43877]],[[-76.41922,35.43214],[-76.41921,35.43213],[-76.41921,35.43213],[-76.41922,35.43214]],[[-76.38539,35.39341],[-76.38538,35.39344],[-76.38536,35.39348],[-76.38534,35.39355],[-76.38539,35.39345],[-76.38539,35.39341]],[[-76.38221,35.40901],[-76.38222,35.40899],[-76.3822,35.40898],[-76.3822,35.40899],[-76.38221,35.40901]],[[-76.43893,35.39866],[-76.43888,35.39859],[-76.43878,35.39865],[-76.43891,35.39874],[-76.43893,35.39866]]]}},{"type":"Feature","properties":{"cmu_name":"U140","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.49009,35.37778],[-76.48293,35.37469],[-76.47975,35.37466],[-76.47999,35.37688],[-76.47861,35.37475],[-76.47607000000001,35.37652],[-76.47802,35.37287],[-76.46983,35.37275],[-76.40223,35.35402],[-76.40386,35.35384],[-76.40380999999999,35.35004],[-76.40228,35.3492],[-76.40077,35.35121],[-76.39736,35.35007],[-76.39736,35.35267],[-76.36809,35.34452],[-76.36808,35.34277],[-76.37187,35.34072],[-76.37541,35.34308],[-76.37951,35.34229],[-76.37568,35.33695],[-76.36219,35.34197],[-76.35539,35.34111],[-76.2834,35.31528],[-76.28194,35.31336],[-76.27125,35.30955],[-76.53692,35.15033],[-76.52598,35.18616],[-76.49341,35.21904],[-76.49099,35.21966],[-76.46852,35.26143],[-76.4668,35.26156],[-76.47004,35.27943],[-76.46859,35.28094],[-76.47051,35.28132],[-76.4826,35.31055],[-76.49009,35.37778]],[[-76.3757,35.33284],[-76.37552,35.33278],[-76.37514,35.33271],[-76.3757,35.33284]],[[-76.37594,35.33294],[-76.37595,35.33296],[-76.37595,35.33295],[-76.37594,35.33294]],[[-76.4112,35.35056],[-76.41149,35.34705],[-76.40836,35.34737],[-76.40981,35.35071],[-76.4112,35.35056]],[[-76.41094,35.35217],[-76.41085,35.35209],[-76.41089,35.35216],[-76.41094,35.35217]],[[-76.48615,35.21658],[-76.48556,35.2165],[-76.48518,35.21686],[-76.48592,35.21689],[-76.48615,35.21658]]]}},{"type":"Feature","properties":{"cmu_name":"U137","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.61614,35.18253],[-76.61831,35.18444],[-76.61637,35.18347],[-76.61583,35.18466],[-76.61181,35.18237],[-76.6122,35.18461],[-76.61095,35.18336],[-76.61043,35.18509],[-76.60924,35.18477],[-76.60861,35.18239],[-76.6052,35.18439],[-76.60737,35.18671],[-76.60469,35.18771],[-76.60618,35.18921],[-76.61037,35.18798],[-76.61263,35.1891],[-76.60705,35.19002],[-76.61126,35.19266],[-76.60609,35.19149],[-76.60058,35.18765],[-76.56971,35.1975],[-76.56579,35.19536],[-76.5645,35.19673],[-76.56342,35.19452],[-76.55724,35.19427],[-76.55819,35.19867],[-76.56211,35.20104],[-76.55912,35.19967],[-76.55751,35.20212],[-76.55675,35.1999],[-76.55306,35.20244],[-76.55622,35.19808],[-76.54943,35.19003],[-76.54801,35.18972],[-76.54819,35.19317],[-76.54373,35.19347],[-76.54452,35.19534],[-76.54176,35.19669],[-76.54548,35.19984],[-76.54467,35.20012],[-76.54201,35.19823],[-76.53588,35.1971],[-76.53877,35.19563],[-76.53808,35.19199],[-76.53303,35.19041],[-76.53692,35.18789],[-76.53585,35.18526],[-76.52696,35.18431],[-76.53694,35.15064],[-76.53975,35.15468],[-76.53965,35.15229],[-76.5419,35.15248],[-76.54392,35.1489],[-76.54677,35.14773],[-76.54927,35.14998],[-76.54986,35.15438],[-76.55365,35.15549],[-76.55516,35.15951],[-76.55812,35.1597],[-76.56123,35.16375],[-76.56422,35.1626],[-76.56456,35.16595],[-76.56654,35.16692],[-76.56889,35.16577],[-76.56798,35.16768],[-76.56293,35.16832],[-76.56458,35.16903],[-76.56519,35.17233],[-76.56697,35.17093],[-76.56784,35.17279],[-76.5707,35.17364],[-76.57125,35.16958],[-76.57279,35.17218],[-76.57389,35.17119],[-76.5774,35.17374],[-76.57864,35.17242],[-76.57856,35.17441],[-76.5845,35.17178],[-76.58793,35.16819],[-76.5869,35.16635],[-76.58016,35.16657],[-76.58163,35.16573],[-76.58078,35.16433],[-76.58374,35.16491],[-76.5835,35.16201],[-76.58167,35.16231],[-76.58114,35.16156],[-76.58302,35.16155],[-76.58655,35.15394],[-76.58379,35.15523],[-76.58055,35.1532],[-76.57925,35.1559],[-76.57466,35.15314],[-76.56657,35.15876],[-76.57064,35.15451],[-76.56946,35.15255],[-76.56516,35.15181],[-76.56576,35.15079],[-76.56248,35.15092],[-76.56451,35.15013],[-76.56409,35.14897],[-76.56855,35.15156],[-76.57043,35.15038],[-76.5712,35.15247],[-76.57272,35.1523],[-76.57407,35.14632],[-76.57052,35.14526],[-76.57512,35.145],[-76.5719,35.14058],[-76.57462,35.13683],[-76.57218,35.1361],[-76.56819,35.13813],[-76.55971,35.1388],[-76.55815,35.13552],[-76.56797,35.13633],[-76.56967,35.1336],[-76.57626,35.1349],[-76.57576,35.13982],[-76.57785,35.13912],[-76.58134,35.14056],[-76.57751,35.14177],[-76.57866,35.14471],[-76.57681,35.14809],[-76.57796,35.14967],[-76.58347,35.14969],[-76.58552,35.14847],[-76.58451,35.14735],[-76.59213,35.14556],[-76.59149,35.14347],[-76.59509,35.13958],[-76.59117,35.13839],[-76.59061,35.13752],[-76.59624,35.13856],[-76.59613,35.13418],[-76.59782,35.13941],[-76.60203,35.13879],[-76.60283,35.1362],[-76.60722,35.13259],[-76.60575,35.12794],[-76.60373,35.12741],[-76.6067,35.12732],[-76.60909,35.12247],[-76.6145,35.11849],[-76.60933,35.12557],[-76.6116,35.1259],[-76.61555,35.12791],[-76.61144,35.1264],[-76.60884,35.12726],[-76.60788,35.1293],[-76.60974,35.13267],[-76.60833,35.13463],[-76.61013,35.13551],[-76.60764,35.13537],[-76.60419,35.13918],[-76.60451,35.13989],[-76.60761,35.13994],[-76.60859,35.14051],[-76.60388,35.14031],[-76.60466,35.14248],[-76.59688,35.1421],[-76.59471,35.14955],[-76.59325,35.15],[-76.59511,35.15411],[-76.59819,35.1548],[-76.59843,35.15267],[-76.6016,35.15385],[-76.59996,35.15226],[-76.6007,35.14806],[-76.60096,35.15143],[-76.60304,35.15271],[-76.60509,35.15234],[-76.60551,35.15047],[-76.60669,35.15175],[-76.6104,35.1495],[-76.60694,35.15255],[-76.61082,35.1539],[-76.61706,35.14957],[-76.61194,35.15477],[-76.61581,35.1557],[-76.61521,35.15733],[-76.60569,35.15499],[-76.60368,35.15782],[-76.60593,35.15733],[-76.60822,35.15922],[-76.60585,35.15844],[-76.60226,35.15921],[-76.60895,35.16218],[-76.61117,35.16182],[-76.61303,35.17961],[-76.61163,35.18049],[-76.61614,35.18253]],[[-76.53624,35.18531],[-76.536,35.18523],[-76.53595,35.18523],[-76.53643,35.18541],[-76.53624,35.18531]],[[-76.5371,35.18575],[-76.53716,35.18567],[-76.53713,35.18563],[-76.53707,35.18565],[-76.5371,35.18575]],[[-76.53727,35.18562],[-76.53732,35.18565],[-76.53727,35.18559],[-76.53727,35.18562]],[[-76.53761,35.1858],[-76.53755,35.18579],[-76.53753,35.18584],[-76.53762,35.18584],[-76.53761,35.1858]],[[-76.53866,35.18594],[-76.53859,35.18597],[-76.53869,35.18604],[-76.53873,35.18603],[-76.53866,35.18594]],[[-76.56649,35.17296],[-76.56614,35.17292],[-76.5655,35.1726],[-76.56619,35.1734],[-76.56649,35.17296]],[[-76.57718,35.14175],[-76.5768,35.14172],[-76.57661,35.14186],[-76.57721,35.14193],[-76.57718,35.14175]],[[-76.56519,35.19489],[-76.56561,35.19502],[-76.56568,35.19499],[-76.56491,35.19476],[-76.56519,35.19489]],[[-76.60143,35.15984],[-76.60146,35.16045],[-76.60167,35.16045],[-76.60155,35.16031],[-76.60143,35.15984]],[[-76.61151,35.18313],[-76.61157,35.18324],[-76.61166,35.18324],[-76.61163,35.1831],[-76.61151,35.18313]]]}},{"type":"Feature","properties":{"cmu_name":"U076","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.66907,34.96947],[-76.67509,34.96361],[-76.67562,34.95989],[-76.67356,34.961],[-76.67381,34.95809],[-76.67154,34.95551],[-76.66422,34.95382],[-76.66286,34.9577],[-76.66571,34.95998],[-76.66276,34.95859],[-76.66136,34.96244],[-76.65857,34.96463],[-76.66092,34.9623],[-76.66282,34.95605],[-76.65888,34.95801],[-76.65603,34.9574],[-76.65766,34.95522],[-76.65943,34.95687],[-76.66221,34.9553],[-76.65996,34.95252],[-76.66121,34.95117],[-76.66183,34.95287],[-76.66167,34.94907],[-76.65913,34.94867],[-76.65502,34.94165],[-76.64669,34.93536],[-76.64694,34.93123],[-76.65107,34.92861],[-76.65167,34.92406],[-76.65541,34.92061],[-76.65431,34.91964],[-76.65978,34.9155],[-76.65941,34.91357],[-76.66614,34.91354],[-76.66415,34.92474],[-76.66051,34.92733],[-76.6613,34.93168],[-76.65793,34.9344],[-76.66243,34.94113],[-76.67714,34.94894],[-76.67991,34.95316],[-76.68533,34.95412],[-76.68536,34.95602],[-76.69671,34.95577],[-76.6996,34.95694],[-76.70575,34.95511],[-76.66736,34.97296],[-76.66907,34.96947]],[[-76.67551,34.96562],[-76.67488,34.96664],[-76.67532,34.96696],[-76.67563,34.96677],[-76.67551,34.96562]]],[[[-76.65829,34.95814],[-76.65721,34.96035],[-76.6546,34.96172],[-76.65609,34.96066],[-76.65829,34.95814]]],[[[-76.70619,34.95493],[-76.70617,34.95491],[-76.70629,34.95481],[-76.70633,34.95486],[-76.70619,34.95493]]]]}},{"type":"Feature","properties":{"cmu_name":"U079","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.43872,34.92374],[-76.43919,34.92249],[-76.43508,34.92308],[-76.43359,34.92205],[-76.43283,34.9222],[-76.43194,34.92149],[-76.43065,34.92154],[-76.42906,34.92039],[-76.43489,34.91415],[-76.43815,34.90584],[-76.43716,34.90436],[-76.43752,34.90291],[-76.43826,34.90556],[-76.4397,34.9048],[-76.44009,34.90654],[-76.44436,34.90826],[-76.44566,34.91653],[-76.44957,34.91681],[-76.44676,34.91893],[-76.4468,34.92077],[-76.44777,34.92276],[-76.45066,34.92234],[-76.4521,34.93063],[-76.45495,34.93075],[-76.45904,34.93473],[-76.46652,34.935],[-76.46523,34.93605],[-76.46592,34.93993],[-76.47026,34.94338],[-76.46722,34.94579],[-76.47004,34.94827],[-76.46884,34.95072],[-76.47574,34.95553],[-76.4764,34.96443],[-76.46599,34.98154],[-76.46148,34.98123],[-76.46012,34.9798],[-76.45671,34.98051],[-76.43369,34.96359],[-76.40311,34.96316],[-76.4177,34.93836],[-76.42597,34.94493],[-76.4282,34.94168],[-76.43135,34.94203],[-76.43292,34.93964],[-76.43157,34.93918],[-76.43445,34.93621],[-76.43398,34.93422],[-76.43588,34.93424],[-76.42902,34.92061],[-76.43041,34.9217],[-76.43289,34.92251],[-76.43362,34.92233],[-76.43444,34.92336],[-76.43872,34.92374]]]}},{"type":"Feature","properties":{"cmu_name":"U081","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.45438,34.98829],[-76.45336,34.98969],[-76.43161,34.98097],[-76.43038,34.97892],[-76.42809,34.97974],[-76.45245,34.98983],[-76.44667,34.99919],[-76.44812,35.00488],[-76.44735,35.01132],[-76.44862,35.01266],[-76.4509,35.01178],[-76.44806,35.04484],[-76.46027,35.06275],[-76.46401,35.07606],[-76.36732,35.03486],[-76.36242,35.03569],[-76.35121,35.0332],[-76.33416,35.02573],[-76.33062,35.02269],[-76.32364,35.02067],[-76.31637,35.01244],[-76.31676,35.00967],[-76.31697,35.01131],[-76.32325,35.01223],[-76.32507,35.0144],[-76.32261,35.01016],[-76.3188,35.01119],[-76.3165,35.00911],[-76.31951,35.00652],[-76.31775,35.00649],[-76.31795,35.00475],[-76.31288,34.9988],[-76.31379,34.99666],[-76.31636,34.99518],[-76.315,34.99691],[-76.31954,34.99948],[-76.31975,35.00241],[-76.32648,35.00759],[-76.32969,35.00689],[-76.32825,35.00815],[-76.33209,35.01197],[-76.339,35.01467],[-76.33942,35.01616],[-76.34036,35.01372],[-76.33585,35.01157],[-76.33637,35.01084],[-76.34146,35.0144],[-76.34344,35.01449],[-76.34209,35.01322],[-76.34474,35.01513],[-76.34787,35.01498],[-76.34437,35.01361],[-76.34503,35.01087],[-76.34298,35.00876],[-76.3359,35.00586],[-76.33117,35.00076],[-76.33863,35.00335],[-76.33587,35.00126],[-76.34146,35.00198],[-76.33355,34.99853],[-76.33828,34.99963],[-76.33927,34.99795],[-76.33282,34.99395],[-76.3276,34.98164],[-76.31838,34.97581],[-76.31614,34.97616],[-76.31554,34.972410000000007],[-76.30911,34.96986],[-76.31565,34.95575],[-76.32659,34.94472],[-76.34815,34.93774],[-76.36071,34.95067],[-76.38196,34.97871],[-76.40312,34.96314],[-76.4337,34.96357],[-76.45673,34.9805],[-76.45329,34.98264],[-76.45657,34.9847],[-76.45761,34.98748],[-76.45453,34.98574],[-76.45334,34.98664],[-76.45438,34.98829]],[[-76.34044,35.00639],[-76.33721,35.00448],[-76.3362,35.00454],[-76.33811,35.0061],[-76.34044,35.00639]],[[-76.33996,35.00492],[-76.34036,35.00444],[-76.33691,35.00312],[-76.33798,35.00431],[-76.33996,35.00492]],[[-76.34117,35.00648],[-76.34059,35.00663],[-76.34408,35.00767],[-76.34305,35.00695],[-76.34117,35.00648]],[[-76.34479,35.01881],[-76.34447,35.01674],[-76.34128,35.01673],[-76.34347,35.01845],[-76.34479,35.01881]],[[-76.3464,35.01887],[-76.34557,35.01934],[-76.34615,35.02062],[-76.34676,35.02006],[-76.3464,35.01887]],[[-76.38399,34.98344],[-76.38436,34.98319],[-76.38382,34.98244],[-76.38375,34.98382],[-76.38399,34.98344]]],[[[-76.31814,35.01518],[-76.31871,35.01551],[-76.3182,35.01646],[-76.31773,35.01589],[-76.31814,35.01518]]]]}},{"type":"Feature","properties":{"cmu_name":"U072","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.39098,34.85754],[-76.39105,34.85743],[-76.39117,34.85744],[-76.39104,34.85754],[-76.39098,34.85754]]],[[[-76.39385,34.86038],[-76.39154,34.85763],[-76.3927,34.85845],[-76.3936,34.85799],[-76.39153,34.8575],[-76.39366,34.85747],[-76.39365,34.85727],[-76.4117,34.84287],[-76.41482,34.84665],[-76.41426,34.8477],[-76.41147,34.84722],[-76.41146,34.84733],[-76.41425,34.84774],[-76.41432,34.85005],[-76.41599,34.84978],[-76.41471,34.85069],[-76.41689,34.85191],[-76.41516,34.85297],[-76.41435,34.8519],[-76.41553,34.85699],[-76.41241,34.86032],[-76.41362,34.85992],[-76.41511,34.85969],[-76.41186,34.86093],[-76.41522,34.86046],[-76.41231,34.86111],[-76.41228,34.86276],[-76.41353,34.86382],[-76.41246,34.86496],[-76.41561,34.86577],[-76.41056,34.86812],[-76.40932,34.87108],[-76.41091,34.87432],[-76.40469,34.87659],[-76.3906,34.87655],[-76.39029,34.87212],[-76.39649,34.86904],[-76.39704,34.86722],[-76.39608,34.8602],[-76.39448,34.85904],[-76.39423,34.85795],[-76.39397,34.8575],[-76.3938,34.85734],[-76.39385,34.86038]],[[-76.39272,34.85846],[-76.39375,34.85924],[-76.3938,34.8592],[-76.39364,34.85808],[-76.39272,34.85846]],[[-76.39387,34.85825],[-76.39408,34.85892],[-76.39403,34.85903],[-76.39417,34.85892],[-76.39387,34.85825]],[[-76.4123,34.86709],[-76.41175,34.8659],[-76.41151,34.86565],[-76.41369,34.86652],[-76.4117,34.86548],[-76.41114,34.86587],[-76.4123,34.86709]],[[-76.41234,34.86716],[-76.41235,34.86717],[-76.41235,34.86717],[-76.41234,34.86716]]],[[[-76.39452,34.86032],[-76.39408,34.86044],[-76.39521,34.85994],[-76.39592,34.86031],[-76.39452,34.86032]]]]}},{"type":"Feature","properties":{"cmu_name":"U075","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.72401,35.00258],[-76.71167,35.00477],[-76.71067,35.00877],[-76.70632,35.01098],[-76.70385,35.01565],[-76.69591,35.0173],[-76.67798,35.02939],[-76.67007,35.03303],[-76.66425,35.03695],[-76.66213,35.04098],[-76.65755,35.0434],[-76.65587,35.04662],[-76.65087,35.04686],[-76.64092,35.05339],[-76.63833,35.05238],[-76.63495,35.0579],[-76.63756,35.05976],[-76.63195,35.06176],[-76.63221,35.06338],[-76.63129,35.06418],[-76.63123,35.06262],[-76.62914,35.06424],[-76.63107,35.06239],[-76.63075,35.06213],[-76.62955,35.06271],[-76.62919,35.06272],[-76.63114,35.06179],[-76.62958,35.0617],[-76.6264,35.06368],[-76.61468,35.06754],[-76.6093,35.06751],[-76.60038,35.07226],[-76.60304,35.07212],[-76.60307,35.07139],[-76.60321,35.0714],[-76.60324,35.07108],[-76.60372,35.07069],[-76.60324,35.07191],[-76.60449,35.07169],[-76.6048,35.07066],[-76.60525,35.07024],[-76.60469,35.07177],[-76.60638,35.07102],[-76.60548,35.07203],[-76.60731,35.07289],[-76.60944,35.07043],[-76.60928,35.07203],[-76.61026,35.07202],[-76.61132,35.07219],[-76.61159,35.07234],[-76.61303,35.07208],[-76.61405,35.07222],[-76.61465,35.07198],[-76.6152,35.07205],[-76.61403,35.07227],[-76.61304,35.07213],[-76.61161,35.07239],[-76.61086,35.07224],[-76.61095,35.07266],[-76.61071,35.07419],[-76.61077,35.07232],[-76.60933,35.07225],[-76.60784,35.07388],[-76.60629,35.07306],[-76.6068,35.07431],[-76.60626,35.07396],[-76.6051,35.07529],[-76.60479,35.0755],[-76.6044,35.0756],[-76.60627,35.07367],[-76.60452,35.07216],[-76.60424,35.07328],[-76.6038,35.07229],[-76.60145,35.07333],[-76.60169,35.07502],[-76.60134,35.07327],[-76.59995,35.07349],[-76.60081,35.07455],[-76.60091,35.07503],[-76.59954,35.07362],[-76.59984,35.07347],[-76.59995,35.07319],[-76.59762,35.07412],[-76.59467,35.07838],[-76.59511,35.08122],[-76.59369,35.08233],[-76.59217,35.08797],[-76.59456,35.08721],[-76.59372,35.08528],[-76.59482,35.08312],[-76.59384,35.08276],[-76.59666,35.08118],[-76.59633,35.0806],[-76.59622,35.08004],[-76.59523,35.08009],[-76.59527,35.07986],[-76.59993,35.07734],[-76.59962,35.07839],[-76.6021,35.07764],[-76.60354,35.07831],[-76.60245,35.07943],[-76.60226,35.07835],[-76.59839,35.07865],[-76.59734,35.07965],[-76.59953,35.08101],[-76.59641,35.08011],[-76.59708,35.0822],[-76.59422,35.08513],[-76.59507,35.08527],[-76.59715,35.08411],[-76.5976,35.0841],[-76.59527,35.08526],[-76.59665,35.0869],[-76.59837,35.08578],[-76.59912,35.08549],[-76.59933,35.0856],[-76.59445,35.0885],[-76.59556,35.09232],[-76.59809,35.09107],[-76.59887,35.08777],[-76.60214,35.08756],[-76.59952,35.08851],[-76.60106,35.09129],[-76.59811,35.09793],[-76.59893,35.09933],[-76.59469,35.09967],[-76.58903,35.09602],[-76.58499,35.09602],[-76.58326,35.09697],[-76.58569,35.09757],[-76.57745,35.09796],[-76.58015,35.09881],[-76.57723,35.09815],[-76.57874,35.09987],[-76.57522,35.09943],[-76.57767,35.10066],[-76.57369,35.10063],[-76.57532,35.10155],[-76.57239,35.10014],[-76.57419,35.10022],[-76.5737,35.09878],[-76.57015,35.09858],[-76.56663,35.10348],[-76.57027,35.10743],[-76.56595,35.10693],[-76.56613,35.11024],[-76.56851,35.11057],[-76.56853,35.11209],[-76.57031,35.11169],[-76.57304,35.10799],[-76.57221,35.11238],[-76.5789,35.11385],[-76.58033,35.11223],[-76.58585,35.11665],[-76.57982,35.11469],[-76.58376,35.11832],[-76.58173,35.11953],[-76.58276,35.11999],[-76.58273,35.12062],[-76.58357,35.12108],[-76.5838,35.12133],[-76.58385,35.12167],[-76.58084,35.1203],[-76.58117,35.11806],[-76.57703,35.11534],[-76.5759,35.11735],[-76.57725,35.12096],[-76.57633,35.12147],[-76.57569,35.11865],[-76.57398,35.11811],[-76.57556,35.11635],[-76.57041,35.11486],[-76.56884,35.11768],[-76.56433,35.11435],[-76.56075,35.11386],[-76.5644,35.10968],[-76.5618,35.10921],[-76.56298,35.10926],[-76.5621,35.10707],[-76.55814,35.11969],[-76.55915,35.12155],[-76.56231,35.12237],[-76.56328,35.12326],[-76.56329,35.12396],[-76.55792,35.12192],[-76.55156,35.1356],[-76.54417,35.14254],[-76.54837,35.14228],[-76.54561,35.1435],[-76.54586,35.14573],[-76.54192,35.14524],[-76.54404,35.14691],[-76.54232,35.14823],[-76.53933,35.14796],[-76.53692,35.15016],[-76.47559,35.11035],[-76.72887,34.97187],[-76.7555,34.99282],[-76.73989,34.99604],[-76.73243,35.00116],[-76.72401,35.00258]],[[-76.54629,35.14208],[-76.54519,35.14212],[-76.54501,35.14221],[-76.54569,35.14243],[-76.54629,35.14208]],[[-76.54675,35.14205],[-76.54695,35.14206],[-76.54696,35.14203],[-76.54675,35.14201],[-76.54675,35.14205]],[[-76.5627,35.10694],[-76.56309,35.10665],[-76.56316,35.10637],[-76.56248,35.10681],[-76.5627,35.10694]],[[-76.58339,35.0973],[-76.58338,35.09729],[-76.58333,35.09724],[-76.58336,35.09728],[-76.58339,35.0973]],[[-76.58331,35.09722],[-76.58324,35.09715],[-76.58325,35.09717],[-76.58331,35.09722]],[[-76.5963,35.08676],[-76.59519,35.08533],[-76.59462,35.08546],[-76.5951,35.08745],[-76.5963,35.08676]],[[-76.62203,35.06472],[-76.62203,35.06469],[-76.62202,35.06466],[-76.62202,35.06469],[-76.62203,35.06472]],[[-76.63136,35.06156],[-76.63136,35.06155],[-76.63135,35.06154],[-76.63135,35.06155],[-76.63136,35.06156]]]}},{"type":"Feature","properties":{"cmu_name":"U031","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.2626,34.97494],[-76.24484,34.99723],[-76.15202,34.98133],[-76.16184,34.97478],[-76.16433,34.97553],[-76.16254,34.97904],[-76.16618,34.9803],[-76.1642,34.97795],[-76.16656,34.97984],[-76.16853,34.97959],[-76.16786,34.97831],[-76.16716,34.97895],[-76.16593,34.97907],[-76.16572,34.97712],[-76.16677,34.97844],[-76.16905,34.97773],[-76.16742,34.97598],[-76.16659,34.97673],[-76.1674,34.9759],[-76.16835,34.97654],[-76.16725,34.975],[-76.16404,34.97474],[-76.16611,34.97426],[-76.16423,34.97252],[-76.16898,34.96866],[-76.16799,34.97046],[-76.17137,34.97168],[-76.168,34.97079],[-76.1656,34.97337],[-76.16785,34.97498],[-76.17563,34.97238],[-76.17455,34.97123],[-76.17197,34.97291],[-76.17341,34.9704],[-76.17109,34.97103],[-76.17315,34.96948],[-76.17366,34.96597],[-76.17572,34.96359],[-76.17767,34.9622],[-76.17834,34.96362],[-76.17653,34.96551],[-76.17839,34.9668],[-76.18033,34.96366],[-76.1782,34.96167],[-76.18043,34.95987],[-76.18246,34.96009],[-76.18218,34.95854],[-76.18583,34.96019],[-76.18393,34.95777],[-76.18654,34.95448],[-76.18815,34.95353],[-76.1904,34.95456],[-76.19163,34.95546],[-76.19339,34.95509],[-76.19234,34.95491],[-76.19184,34.95449],[-76.194,34.95443],[-76.19308,34.95278],[-76.19177,34.95293],[-76.18979,34.95227],[-76.19217,34.95022],[-76.19515,34.95308],[-76.19492,34.95364],[-76.19444,34.95357],[-76.1951,34.95483],[-76.19526,34.95499],[-76.19868,34.95456],[-76.20094,34.95254],[-76.19998,34.95118],[-76.1977,34.95272],[-76.19563,34.95301],[-76.19929,34.95084],[-76.19942,34.94914],[-76.19869,34.94901],[-76.19791,34.94817],[-76.19987,34.94924],[-76.20135,34.94475],[-76.20332,34.94583],[-76.20346,34.94382],[-76.2042,34.9453],[-76.20563,34.94382],[-76.2042,34.9434],[-76.20677,34.94305],[-76.2066,34.94191],[-76.20423,34.94251],[-76.20363,34.94202],[-76.20392,34.94099],[-76.20574,34.94168],[-76.20541,34.93989],[-76.20691,34.9417],[-76.20804,34.9401],[-76.21058,34.9393],[-76.2092,34.93776],[-76.21188,34.9397],[-76.21045,34.93664],[-76.21261,34.93579],[-76.21068,34.93564],[-76.21024,34.93483],[-76.21352,34.93574],[-76.21353,34.93357],[-76.21761,34.93221],[-76.21638,34.93029],[-76.2181,34.93188],[-76.21881,34.93002],[-76.22119000000001,34.93018],[-76.21945,34.92779],[-76.22151,34.92973],[-76.22384,34.92878],[-76.22084,34.92561],[-76.22266,34.92637],[-76.22372,34.92799],[-76.22466,34.92806],[-76.22592,34.92391],[-76.22695,34.92427],[-76.22611,34.92354],[-76.22593,34.92191],[-76.22641,34.92165],[-76.22625,34.9233],[-76.22721,34.92393],[-76.22963,34.92284],[-76.2283,34.92191],[-76.22999,34.92234],[-76.22941,34.91977],[-76.23015,34.91889],[-76.23088,34.91874],[-76.23165,34.91898],[-76.23075,34.9183],[-76.23313,34.91815],[-76.23239,34.91713],[-76.23272,34.91678],[-76.23666,34.91807],[-76.23444,34.91518],[-76.23587,34.91543],[-76.23628,34.91615],[-76.23707,34.91633],[-76.2385,34.91577],[-76.23639,34.91539],[-76.23702,34.91462],[-76.23968,34.91565],[-76.23844,34.91392],[-76.24112,34.91502],[-76.23952,34.9127],[-76.24219,34.91332],[-76.24392,34.91229],[-76.24191,34.91253],[-76.23984,34.91032],[-76.24149,34.90899],[-76.24181,34.91228],[-76.24283,34.91219],[-76.24474,34.91025],[-76.24363,34.90765],[-76.24555,34.91087],[-76.24659,34.91038],[-76.24504,34.90917],[-76.24751,34.90901],[-76.24667,34.90815],[-76.24543,34.90869],[-76.24478,34.90836],[-76.24653,34.90801],[-76.24525,34.90589],[-76.24758,34.90519],[-76.2484,34.90306],[-76.24973,34.90249],[-76.24908,34.90388],[-76.25253,34.90448],[-76.25387,34.9008],[-76.25412,34.9028],[-76.25489,34.90179],[-76.25529,34.9031],[-76.25676,34.90268],[-76.255,34.90054],[-76.25738,34.90055],[-76.2555,34.90045],[-76.25884,34.89811],[-76.25801,34.89983],[-76.259,34.89977],[-76.25981,34.90078],[-76.26338,34.89981],[-76.26402,34.89901],[-76.26147,34.89987],[-76.26199,34.89814],[-76.26316,34.89845],[-76.2615,34.89768],[-76.2616,34.89813],[-76.26078,34.89792],[-76.26049,34.89603],[-76.2621,34.8974],[-76.26281,34.89537],[-76.26416,34.89568],[-76.26331,34.89466],[-76.26497,34.89478],[-76.2638,34.89374],[-76.26548,34.89356],[-76.26555,34.89563],[-76.26848,34.89437],[-76.26739,34.89379],[-76.26934,34.89341],[-76.26809,34.89236],[-76.26951,34.8923],[-76.26989,34.89009],[-76.27079,34.8921],[-76.27502,34.88951],[-76.27905,34.88529],[-76.27832,34.88436],[-76.31425,34.90363],[-76.29763,34.92366],[-76.27938,34.94119],[-76.2626,34.97494]],[[-76.1715,34.97509],[-76.16855,34.97546],[-76.17502,34.97678],[-76.17628,34.97445],[-76.1715,34.97509]],[[-76.16857,34.97802],[-76.16826,34.97826],[-76.16828,34.97898],[-76.16897,34.97806],[-76.16857,34.97802]],[[-76.16854,34.97802],[-76.16847,34.97798],[-76.16844,34.97805],[-76.16848,34.97806],[-76.16854,34.97802]],[[-76.17058,34.97803],[-76.17161,34.97778],[-76.16999,34.97716],[-76.17007,34.97775],[-76.17058,34.97803]],[[-76.1737,34.96929],[-76.17265,34.97007],[-76.17274,34.97018],[-76.17341,34.97014],[-76.1737,34.96929]],[[-76.17467,34.96813],[-76.17582,34.96785],[-76.17546,34.96672],[-76.17612,34.96437],[-76.17384,34.966],[-76.17467,34.96813]],[[-76.17325,34.97032],[-76.17325,34.97028],[-76.17317,34.97032],[-76.1732,34.97034],[-76.17325,34.97032]],[[-76.17299,34.97378],[-76.17375,34.97372],[-76.17377,34.97327],[-76.1731,34.97352],[-76.17299,34.97378]],[[-76.17447,34.97084],[-76.17427,34.97069],[-76.17407,34.97064],[-76.1745,34.97095],[-76.17447,34.97084]],[[-76.17515,34.96809],[-76.17475,34.96834],[-76.17468,34.96854],[-76.17519,34.96824],[-76.17515,34.96809]],[[-76.17594,34.97012],[-76.17642,34.96986],[-76.1751,34.96879],[-76.17482,34.96998],[-76.17594,34.97012]],[[-76.17278,34.97719],[-76.17312,34.9782],[-76.17467,34.97771],[-76.17408,34.97699],[-76.17278,34.97719]],[[-76.17587,34.96655],[-76.17564,34.96672],[-76.17582,34.96689],[-76.17593,34.9668],[-76.17587,34.96655]],[[-76.17652,34.96453],[-76.17783,34.96404],[-76.17789,34.96294],[-76.17686,34.96321],[-76.17652,34.96453]],[[-76.17609,34.9664],[-76.17637,34.96751],[-76.17769,34.96726],[-76.17663,34.96578],[-76.17609,34.9664]],[[-76.17617,34.96754],[-76.17621,34.96743],[-76.17606,34.96713],[-76.17597,34.96733],[-76.17617,34.96754]],[[-76.1758,34.9692],[-76.17601,34.96898],[-76.17592,34.96863],[-76.17562,34.96886],[-76.1758,34.9692]],[[-76.17487,34.9732],[-76.17438,34.97388],[-76.17626,34.97413],[-76.17587,34.97311],[-76.17487,34.9732]],[[-76.17628,34.96919],[-76.1776,34.96842],[-76.17918,34.97014],[-76.18061,34.96984],[-76.17978,34.96872],[-76.182,34.9689],[-76.17986,34.96599],[-76.17851,34.96778],[-76.17609,34.96809],[-76.17628,34.96919]],[[-76.17623,34.96935],[-76.1762,34.9693],[-76.17597,34.96923],[-76.17603,34.96933],[-76.17623,34.96935]],[[-76.17597,34.97012],[-76.17784,34.97146],[-76.17937,34.971],[-76.17771,34.96944],[-76.17597,34.97012]],[[-76.1772,34.9695],[-76.17773,34.96935],[-76.17735,34.96931],[-76.17661,34.96969],[-76.1772,34.9695]],[[-76.18357,34.96418],[-76.18363,34.96106],[-76.18039,34.96039],[-76.17969,34.96284],[-76.18357,34.96418]],[[-76.17826,34.9674],[-76.1781,34.96757],[-76.17809,34.96767],[-76.17856,34.96749],[-76.17826,34.9674]],[[-76.17797,34.9692],[-76.17785,34.96922],[-76.17818,34.9694],[-76.17819,34.96933],[-76.17797,34.9692]],[[-76.18289,34.96688],[-76.18326,34.96622],[-76.18062,34.96467],[-76.18119,34.96625],[-76.18289,34.96688]],[[-76.1827,34.96505],[-76.1845,34.96467],[-76.18123,34.96385],[-76.18125,34.96402],[-76.1827,34.96505]],[[-76.1821,34.96515],[-76.18195,34.96479],[-76.1814,34.96458],[-76.18164,34.96493],[-76.1821,34.96515]],[[-76.18556,34.96175],[-76.18517,34.96045],[-76.18274,34.95968],[-76.18428,34.96157],[-76.18448,34.96379],[-76.18556,34.96175]],[[-76.18761,34.96043],[-76.18857,34.96173],[-76.18852,34.96143],[-76.18898,34.96104],[-76.19156,34.96038],[-76.19014,34.95798],[-76.19056,34.95803],[-76.18758,34.95728],[-76.19,34.95736],[-76.19074,34.95821],[-76.19045,34.95692],[-76.18727,34.95535],[-76.18451,34.95833],[-76.18673,34.95998],[-76.18704,34.95846],[-76.18775,34.95798],[-76.18765,34.95755],[-76.18784,34.95809],[-76.18703,34.96006],[-76.18761,34.96043]],[[-76.18402,34.96164],[-76.18394,34.9628],[-76.18408,34.96334],[-76.18416,34.96293],[-76.18402,34.96164]],[[-76.18501,34.96195],[-76.18497,34.96193],[-76.1848,34.96221],[-76.18494,34.96205],[-76.18501,34.96195]],[[-76.1843,34.96602],[-76.18381,34.96627],[-76.18366,34.9675],[-76.18404,34.96729],[-76.1843,34.96602]],[[-76.18413,34.96564],[-76.18457,34.96614],[-76.18437,34.9671],[-76.18663,34.96617],[-76.18568,34.96502],[-76.18413,34.96564]],[[-76.18557,34.96051],[-76.18541,34.9605],[-76.18581,34.9611],[-76.18561,34.96069],[-76.18557,34.96051]],[[-76.18582,34.96447],[-76.18552,34.96409],[-76.1846,34.96395],[-76.18488,34.96434],[-76.18582,34.96447]],[[-76.18759,34.96169],[-76.18567,34.96052],[-76.18739,34.96448],[-76.18971,34.96383],[-76.18719,34.963],[-76.18665,34.96182],[-76.18759,34.96169]],[[-76.18901,34.95596],[-76.19042,34.9566],[-76.19163,34.95562],[-76.18979,34.95592],[-76.1906,34.95486],[-76.1879,34.95412],[-76.18901,34.95596]],[[-76.18625,34.96044],[-76.18652,34.96063],[-76.18725,34.96064],[-76.18632,34.96006],[-76.18625,34.96044]],[[-76.18537,34.96358],[-76.18531,34.96357],[-76.18543,34.96378],[-76.18544,34.96372],[-76.18537,34.96358]],[[-76.18582,34.96299],[-76.18567,34.96311],[-76.18585,34.96368],[-76.18596,34.96329],[-76.18582,34.96299]],[[-76.18932,34.96206],[-76.18892,34.96173],[-76.18685,34.96204],[-76.1907,34.96307],[-76.18932,34.96206]],[[-76.18762,34.96139],[-76.18774,34.96173],[-76.18787,34.96171],[-76.18788,34.96134],[-76.18762,34.96139]],[[-76.18885,34.96144],[-76.18877,34.96141],[-76.18872,34.96149],[-76.1888,34.96152],[-76.18885,34.96144]],[[-76.19242,34.95256],[-76.19305,34.95248],[-76.19166,34.95147],[-76.19164,34.95265],[-76.19242,34.95256]],[[-76.18834,34.96451],[-76.18851,34.96461],[-76.1888,34.96449],[-76.18864,34.96436],[-76.18834,34.96451]],[[-76.19006,34.96185],[-76.18977,34.96123],[-76.1891,34.9616],[-76.18966,34.96201],[-76.19006,34.96185]],[[-76.19081,34.9566],[-76.19251,34.96043],[-76.19394,34.96039],[-76.19272,34.9596],[-76.19222,34.95889],[-76.19584,34.95957],[-76.19248,34.9576],[-76.19446,34.95745],[-76.19239,34.95626],[-76.19381,34.95622],[-76.19214,34.95564],[-76.19081,34.9566]],[[-76.19134,34.96096],[-76.19042,34.96133],[-76.19083,34.96194],[-76.19197,34.96139],[-76.19134,34.96096]],[[-76.19132,34.95965],[-76.19155,34.9595],[-76.19115,34.959],[-76.19103,34.95911],[-76.19132,34.95965]],[[-76.19303,34.95521],[-76.19225,34.9555],[-76.19532,34.95632],[-76.19428,34.95493],[-76.19303,34.95521]],[[-76.19154,34.95967],[-76.19142,34.9598],[-76.19174,34.96007],[-76.19179,34.95997],[-76.19154,34.95967]],[[-76.19414,34.95338],[-76.195,34.95316],[-76.19377,34.95236],[-76.19334,34.95296],[-76.19414,34.95338]],[[-76.19157,34.96094],[-76.19181,34.96096],[-76.1919,34.96078],[-76.1914,34.96081],[-76.19157,34.96094]],[[-76.19201,34.96041],[-76.19193,34.96039],[-76.19197,34.96051],[-76.192,34.96049],[-76.19201,34.96041]],[[-76.19455,34.95469],[-76.1944,34.95434],[-76.19416,34.95418],[-76.19416,34.95449],[-76.19455,34.95469]],[[-76.19412,34.95641],[-76.19428,34.95663],[-76.19475,34.95642],[-76.19451,34.95627],[-76.19412,34.95641]],[[-76.1966,34.95664],[-76.19721,34.95573],[-76.19619,34.95522],[-76.19554,34.95571],[-76.1966,34.95664]],[[-76.19913,34.94977],[-76.19871,34.94983],[-76.19866,34.94989],[-76.19882,34.94997],[-76.19913,34.94977]],[[-76.20097,34.95001],[-76.20342,34.94858],[-76.20337,34.94734],[-76.19943,34.94957],[-76.20097,34.95001]],[[-76.19988,34.95062],[-76.19988,34.9506],[-76.19986,34.95061],[-76.19988,34.95062]],[[-76.20014,34.95071],[-76.2002,34.95066],[-76.20031,34.95064],[-76.19999,34.95061],[-76.20014,34.95071]],[[-76.20379,34.94743],[-76.204,34.9474],[-76.20475,34.9464],[-76.20352,34.94717],[-76.20379,34.94743]],[[-76.20564,34.94443],[-76.20599,34.9444],[-76.20753,34.94341],[-76.20613,34.9435],[-76.20564,34.94443]],[[-76.20645,34.94441],[-76.20708,34.9443],[-76.20737,34.94388],[-76.20694,34.9439],[-76.20645,34.94441]],[[-76.20898,34.94225],[-76.2096,34.94167],[-76.20794,34.94088],[-76.20727,34.94193],[-76.20898,34.94225]],[[-76.21056,34.94108],[-76.21102,34.93948],[-76.20801,34.94067],[-76.20965,34.94136],[-76.21015,34.94281],[-76.21056,34.94108]],[[-76.19859,34.9847],[-76.19945,34.98446],[-76.19843,34.98236],[-76.19782,34.98358],[-76.19859,34.9847]],[[-76.20892,34.94321],[-76.20911,34.94345],[-76.2097,34.94312],[-76.20955,34.94307],[-76.20892,34.94321]],[[-76.21184,34.93662],[-76.21225,34.93662],[-76.21222,34.9364],[-76.2117,34.93638],[-76.21184,34.93662]],[[-76.21174,34.93668],[-76.21172,34.93664],[-76.21168,34.93662],[-76.21168,34.93673],[-76.21174,34.93668]],[[-76.21245,34.93707],[-76.21181,34.9372],[-76.21192,34.93768],[-76.21264,34.93718],[-76.21245,34.93707]],[[-76.21289,34.93595],[-76.21217,34.93614],[-76.2128,34.93689],[-76.21311,34.9362],[-76.21289,34.93595]],[[-76.20002,34.98409],[-76.20014,34.98399],[-76.20008,34.98381],[-76.19998,34.98401],[-76.20002,34.98409]],[[-76.21849,34.93175],[-76.21844,34.93173],[-76.21822,34.93192],[-76.21827,34.93192],[-76.21849,34.93175]],[[-76.22008,34.93025],[-76.21975,34.93017],[-76.21973,34.93018],[-76.21988,34.93026],[-76.22008,34.93025]],[[-76.2223,34.92625],[-76.22196,34.92641],[-76.22251,34.92703],[-76.2227,34.9267],[-76.2223,34.92625]],[[-76.23085,34.9219],[-76.23215,34.92147],[-76.23177,34.92137],[-76.23086,34.92066],[-76.23239,34.92138],[-76.23118,34.92043],[-76.23349,34.9216],[-76.23563,34.91946],[-76.23392,34.91891],[-76.23138,34.91938],[-76.23024,34.91913],[-76.23085,34.9219]],[[-76.23101,34.91923],[-76.23148,34.91916],[-76.2309,34.91882],[-76.23058,34.91906],[-76.23101,34.91923]],[[-76.23193,34.91913],[-76.2323,34.91879],[-76.23379,34.91829],[-76.23164,34.91831],[-76.23193,34.91913]],[[-76.23236,34.92202],[-76.23388,34.92163],[-76.23419,34.92101],[-76.23348,34.92167],[-76.23247,34.92145],[-76.23177,34.92204],[-76.23075,34.92203],[-76.23181,34.92222],[-76.23236,34.92202]],[[-76.23317,34.91881],[-76.23264,34.91897],[-76.2337,34.91877],[-76.23525,34.91896],[-76.23428,34.91852],[-76.23317,34.91881]],[[-76.23856,34.91604],[-76.23715,34.91648],[-76.23624,34.91625],[-76.23581,34.9155],[-76.23478,34.91557],[-76.23686,34.91707],[-76.23898,34.91695],[-76.23856,34.91604]],[[-76.23512,34.91941],[-76.23521,34.91942],[-76.23506,34.91935],[-76.23507,34.91938],[-76.23512,34.91941]],[[-76.23575,34.92003],[-76.23605,34.91991],[-76.23596,34.91975],[-76.23576,34.91993],[-76.23575,34.92003]],[[-76.23783,34.91605],[-76.23779,34.91614],[-76.2378,34.91617],[-76.23796,34.91605],[-76.23783,34.91605]],[[-76.24216,34.91376],[-76.24393,34.91351],[-76.24434,34.91262],[-76.24396,34.91311],[-76.24168,34.91345],[-76.24216,34.91376]],[[-76.24297,34.91211],[-76.24293,34.91209],[-76.24293,34.91214],[-76.24296,34.91214],[-76.24297,34.91211]],[[-76.24309,34.91187],[-76.24313,34.91187],[-76.24315,34.91181],[-76.2431,34.91182],[-76.24309,34.91187]],[[-76.24363,34.91094],[-76.24359,34.91088],[-76.24354,34.9109],[-76.24357,34.91093],[-76.24363,34.91094]],[[-76.24429,34.91187],[-76.2458,34.91134],[-76.24519,34.9105],[-76.2442,34.91132],[-76.24429,34.91187]],[[-76.24838,34.90727],[-76.24809,34.90633],[-76.24636,34.90668],[-76.24743,34.90826],[-76.24838,34.90727]],[[-76.24953,34.9055],[-76.2504,34.90481],[-76.24899,34.9042],[-76.24841,34.90491],[-76.24953,34.9055]],[[-76.24856,34.90587],[-76.24899,34.90557],[-76.24849,34.90532],[-76.24831,34.90587],[-76.24856,34.90587]],[[-76.24822,34.9082],[-76.24899,34.90786],[-76.24853,34.90727],[-76.24763,34.90849],[-76.24822,34.9082]],[[-76.24931,34.90716],[-76.25041,34.90693],[-76.25046,34.90588],[-76.24861,34.90596],[-76.24931,34.90716]],[[-76.25117,34.9046],[-76.25073,34.90547],[-76.253,34.9051],[-76.2526,34.90478],[-76.25117,34.9046]],[[-76.25046,34.90716],[-76.25004,34.90716],[-76.24994,34.90738],[-76.25069,34.90727],[-76.25046,34.90716]],[[-76.25061,34.90585],[-76.25066,34.90696],[-76.25095,34.90698],[-76.25158,34.9064],[-76.25061,34.90585]],[[-76.25315,34.90425],[-76.25376,34.90438],[-76.25426,34.90371],[-76.25377,34.90371],[-76.25315,34.90425]],[[-76.25398,34.90347],[-76.25409,34.90342],[-76.25382,34.90284],[-76.25369,34.90311],[-76.25398,34.90347]],[[-76.25717,34.90076],[-76.25673,34.90057],[-76.25632,34.90093],[-76.2573,34.90124],[-76.25717,34.90076]],[[-76.25656,34.90183],[-76.25667,34.90171],[-76.25657,34.90144],[-76.25637,34.90169],[-76.25656,34.90183]],[[-76.25663,34.90133],[-76.25661,34.9013],[-76.2566,34.90133],[-76.25663,34.90133]],[[-76.25673,34.902],[-76.25688,34.90188],[-76.25687,34.90184],[-76.25665,34.90197],[-76.25666,34.90211],[-76.25673,34.902]],[[-76.25727,34.90148],[-76.25698,34.90129],[-76.25684,34.90131],[-76.25707,34.90143],[-76.25727,34.90148]],[[-76.25683,34.9017],[-76.25703,34.9017],[-76.25717,34.90156],[-76.25694,34.90154],[-76.25683,34.9017]],[[-76.25701,34.90205],[-76.25695,34.90201],[-76.25688,34.90201],[-76.25698,34.90211],[-76.25701,34.90205]],[[-76.25718,34.90174],[-76.25701,34.9019],[-76.25711,34.90197],[-76.25737,34.90189],[-76.25718,34.90174]],[[-76.25857,34.90033],[-76.25869,34.90017],[-76.25858,34.90004],[-76.25836,34.90033],[-76.25857,34.90033]],[[-76.25892,34.89982],[-76.25884,34.89988],[-76.25889,34.89991],[-76.25894,34.89986],[-76.25892,34.89982]],[[-76.26282,34.89767],[-76.26277,34.89754],[-76.26214,34.89762],[-76.26266,34.8979],[-76.26282,34.89767]],[[-76.26336,34.89877],[-76.26332,34.89862],[-76.26262,34.89861],[-76.26278,34.89906],[-76.26336,34.89877]],[[-76.26339,34.89798],[-76.26322,34.89766],[-76.26313,34.89764],[-76.26302,34.89787],[-76.26339,34.89798]],[[-76.26338,34.89774],[-76.26332,34.89776],[-76.26335,34.89778],[-76.26341,34.89777],[-76.26338,34.89774]],[[-76.26351,34.89743],[-76.26386,34.89715],[-76.26396,34.89688],[-76.26372,34.89699],[-76.26351,34.89743]],[[-76.26356,34.89752],[-76.26349,34.89775],[-76.26371,34.89779],[-76.26376,34.8976],[-76.26356,34.89752]],[[-76.26372,34.89804],[-76.26348,34.89803],[-76.26343,34.89811],[-76.26367,34.89816],[-76.26372,34.89804]],[[-76.26431,34.89847],[-76.26455,34.8984],[-76.26389,34.89823],[-76.26387,34.89844],[-76.26431,34.89847]],[[-76.2642,34.89757],[-76.26408,34.89778],[-76.26403,34.89814],[-76.26429,34.89748],[-76.2642,34.89757]],[[-76.26461,34.89771],[-76.26482,34.89754],[-76.26456,34.89738],[-76.26442,34.89752],[-76.26461,34.89771]],[[-76.26491,34.89907],[-76.26478,34.8991],[-76.26469,34.89907],[-76.2649,34.89917],[-76.26491,34.89907]],[[-76.27414,34.89138],[-76.27472,34.89123],[-76.27541,34.89048],[-76.27559,34.88991],[-76.27414,34.89138]],[[-76.28516,34.89643],[-76.28603,34.89573],[-76.28487,34.88962],[-76.28418,34.89078],[-76.28516,34.89643]]],[[[-76.24784,34.9072],[-76.24781,34.90733],[-76.24724,34.90785],[-76.24743,34.90739],[-76.24784,34.9072]]]]}},{"type":"Feature","properties":{"cmu_name":"U042","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.4855,34.76566],[-76.48568,34.77259],[-76.46988,34.78468],[-76.46884,34.78314],[-76.46711,34.78393],[-76.46535,34.78792],[-76.46362,34.78496],[-76.46574,34.78136],[-76.46601,34.78146],[-76.46665,34.7807],[-76.46925,34.77927],[-76.47008,34.77856],[-76.46878,34.77931],[-76.47253,34.77368],[-76.47262,34.77479],[-76.47357,34.76842],[-76.48574,34.75525],[-76.48673,34.75975],[-76.48965,34.76302],[-76.4855,34.76566]]],[[[-76.51998,34.74946],[-76.52077,34.75107],[-76.51699,34.75018],[-76.51097,34.7461],[-76.51397,34.75066],[-76.51034,34.74791],[-76.51104,34.75003],[-76.5161,34.75674],[-76.51418,34.75945],[-76.5153,34.76008],[-76.5153,34.76019],[-76.51092,34.75915],[-76.51207,34.76749],[-76.50864,34.76254],[-76.50733,34.76516],[-76.5067,34.76299],[-76.50474,34.76341],[-76.50378,34.75874],[-76.50242,34.76027],[-76.50403,34.76304],[-76.50217,34.76035],[-76.50276,34.75882],[-76.50199,34.7586],[-76.49044,34.76286],[-76.4861,34.7544],[-76.48764,34.7541],[-76.48613,34.75429],[-76.50016,34.72989],[-76.50045,34.73287],[-76.49878,34.73298],[-76.50151,34.73679],[-76.50233,34.73169],[-76.50071,34.72941],[-76.50645,34.72581],[-76.50693,34.72741],[-76.50885,34.72693],[-76.50554,34.72954],[-76.51002,34.73178],[-76.5099,34.73041],[-76.51085,34.72929],[-76.51056,34.73125],[-76.51288,34.73269],[-76.51266,34.7308],[-76.51422,34.73341],[-76.51186,34.73361],[-76.5114,34.73189],[-76.51021,34.73536],[-76.5096,34.73227],[-76.50686,34.73251],[-76.5083,34.73633],[-76.51043,34.73605],[-76.5119,34.73752],[-76.51156,34.74015],[-76.50984,34.7405],[-76.51273,34.74344],[-76.5144,34.73994],[-76.51588,34.73943],[-76.51317,34.74344],[-76.51391,34.74532],[-76.51581,34.74646],[-76.51644,34.74529],[-76.51581,34.74783],[-76.52134,34.74894],[-76.51998,34.74946]],[[-76.50303,34.74469],[-76.50455,34.74397],[-76.50566,34.74148],[-76.50831,34.74037],[-76.50586,34.7411],[-76.50412,34.73848],[-76.50524,34.74127],[-76.50361,34.74293],[-76.50382,34.74183],[-76.50272,34.74086],[-76.50219,34.74079],[-76.50113,34.73983],[-76.50264,34.73735],[-76.5008,34.74009],[-76.50309,34.74157],[-76.50303,34.74469]],[[-76.50077,34.74468],[-76.50047,34.74419],[-76.50056,34.74497],[-76.50132,34.74527],[-76.50077,34.74468]],[[-76.50242,34.74002],[-76.50256,34.73971],[-76.50215,34.73937],[-76.50204,34.73957],[-76.50242,34.74002]],[[-76.50423,34.73838],[-76.50428,34.73763],[-76.50407,34.73731],[-76.50361,34.73764],[-76.50423,34.73838]],[[-76.5074,34.73696],[-76.50729,34.73701],[-76.50741,34.73713],[-76.50746,34.73702],[-76.5074,34.73696]],[[-76.50828,34.73846],[-76.5088,34.73806],[-76.5075,34.73724],[-76.50794,34.7381],[-76.50828,34.73846]],[[-76.5088,34.73836],[-76.50871,34.73833],[-76.50869,34.73837],[-76.50879,34.73843],[-76.5088,34.73836]],[[-76.50893,34.73831],[-76.50902,34.73832],[-76.50896,34.73819],[-76.50889,34.7382],[-76.50893,34.73831]],[[-76.50978,34.73845],[-76.50894,34.73875],[-76.51043,34.7396],[-76.51042,34.7392],[-76.50978,34.73845]],[[-76.50728,34.75876],[-76.50745,34.76044],[-76.5088,34.76181],[-76.50798,34.75949],[-76.50728,34.75876]],[[-76.50813,34.75648],[-76.50771,34.7566],[-76.50796,34.75792],[-76.50871,34.75664],[-76.50813,34.75648]],[[-76.51207,34.74572],[-76.51201,34.74571],[-76.512,34.74586],[-76.51205,34.74582],[-76.51207,34.74572]],[[-76.50827,34.76197],[-76.50834,34.762],[-76.50838,34.76197],[-76.50826,34.76191],[-76.50827,34.76197]],[[-76.51594,34.7486],[-76.51602,34.74854],[-76.516,34.74852],[-76.51589,34.74856],[-76.51594,34.7486]],[[-76.51595,34.7489],[-76.51598,34.74886],[-76.51602,34.74866],[-76.51586,34.74869],[-76.51595,34.7489]],[[-76.51609,34.74887],[-76.51618,34.74883],[-76.51613,34.748779999999999],[-76.51613,34.74883],[-76.51609,34.74887]],[[-76.51653,34.7491],[-76.51647,34.74905],[-76.51638,34.74908],[-76.5165,34.74912],[-76.51653,34.7491]],[[-76.51675,34.74925],[-76.5167,34.74921],[-76.51666,34.74921],[-76.51674,34.74927],[-76.51675,34.74925]],[[-76.51693,34.74913],[-76.5169,34.7491],[-76.51685,34.74917],[-76.51691,34.74917],[-76.51693,34.74913]],[[-76.51721,34.74926],[-76.517,34.74919],[-76.51698,34.74922],[-76.5171,34.74928],[-76.51721,34.74926]]],[[[-76.50416,34.74318],[-76.50423,34.74387],[-76.50368,34.74409],[-76.50353,34.74368],[-76.50416,34.74318]]]]}},{"type":"Feature","properties":{"cmu_name":"U104","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.52579,34.73258],[-76.52323,34.73249],[-76.52149,34.7295],[-76.51984,34.73055],[-76.52107,34.72802],[-76.51891,34.72745],[-76.52108,34.72769],[-76.52223,34.72567],[-76.52132,34.72112],[-76.52434,34.72124],[-76.52880999999999,34.72747],[-76.52579,34.73258]]]}},{"type":"Feature","properties":{"cmu_name":"U103","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.55653,34.72895],[-76.55266,34.73117],[-76.55303,34.73435],[-76.5488,34.7368],[-76.55008,34.7335],[-76.55176,34.73322],[-76.55101,34.73078],[-76.55286,34.72581],[-76.55589,34.72521],[-76.55653,34.72895]]]}},{"type":"Feature","properties":{"cmu_name":"U101","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.59117,34.77123],[-76.58579,34.76964],[-76.58445,34.77091],[-76.5858,34.77337],[-76.58436,34.77251],[-76.58105,34.7763],[-76.58141,34.77266],[-76.57783,34.77434],[-76.57456,34.77298],[-76.57604,34.77426],[-76.57456,34.77595],[-76.57651,34.77684],[-76.57567,34.78037],[-76.57107,34.78017],[-76.56829,34.77343],[-76.56952,34.77109],[-76.57124,34.77107],[-76.57026,34.76717],[-76.56826,34.76832],[-76.56884,34.76447],[-76.57051,34.76385],[-76.56934,34.7605],[-76.57046,34.76177],[-76.57232,34.7601],[-76.57592,34.76133],[-76.57432,34.76283],[-76.57657,34.76362],[-76.57522,34.76817],[-76.57759,34.7616],[-76.57735,34.76031],[-76.57599,34.76121],[-76.57241,34.75997],[-76.57346,34.75744],[-76.57299,34.75725],[-76.56958,34.76015],[-76.57002,34.7577],[-76.57247,34.75686],[-76.56966,34.75442],[-76.5722,34.75353],[-76.57089,34.7519],[-76.57309,34.75291],[-76.57301,34.75583],[-76.5747,34.75582],[-76.57441,34.75382],[-76.57647,34.75491],[-76.57657,34.75306],[-76.57733,34.75555],[-76.58086,34.75659],[-76.58025,34.75834],[-76.58269,34.75978],[-76.58602,34.75768],[-76.59117,34.77123]],[[-76.57044,34.7584],[-76.5706,34.75855],[-76.57106,34.75819],[-76.57036,34.75791],[-76.57044,34.7584]],[[-76.5716,34.76215],[-76.57083,34.76213],[-76.57119,34.76309],[-76.5717,34.76264],[-76.5716,34.76215]],[[-76.57849,34.75717],[-76.57865,34.75689],[-76.57717,34.75612],[-76.57759,34.75702],[-76.57849,34.75717]],[[-76.57885,34.75718],[-76.57846,34.75743],[-76.57899,34.75763],[-76.57916,34.75746],[-76.57885,34.75718]],[[-76.58227,34.77302],[-76.58239,34.77303],[-76.58256,34.77298],[-76.58237,34.77289],[-76.58227,34.77302]]]}},{"type":"Feature","properties":{"cmu_name":"U100","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.62098,34.76883],[-76.62116,34.76847],[-76.62101,34.76828],[-76.62143,34.76795],[-76.6214,34.76761],[-76.62255,34.76734],[-76.6227,34.76693],[-76.6244,34.76849],[-76.62208,34.77015],[-76.6239,34.77319],[-76.62223,34.77723],[-76.62415,34.77732],[-76.62312,34.77773],[-76.61833,34.77564],[-76.62019,34.77933],[-76.6192,34.77655],[-76.62269,34.77774],[-76.62113,34.78251],[-76.62257,34.7845],[-76.62005,34.78591],[-76.61485,34.7882],[-76.60455,34.78955],[-76.59715,34.78128],[-76.59621,34.78474],[-76.59243,34.78468],[-76.59529,34.78378],[-76.59617,34.78153],[-76.59379,34.78033],[-76.59241,34.78166],[-76.59317,34.77825],[-76.59522,34.78077],[-76.59677,34.77975],[-76.59502,34.7794],[-76.59462,34.77531],[-76.59267,34.77478],[-76.59298,34.77201],[-76.59116,34.77122],[-76.62048,34.76688],[-76.62061,34.76894],[-76.62076,34.76685],[-76.62227,34.76662],[-76.62255999999999,34.76727],[-76.62135,34.76758],[-76.62099,34.76826],[-76.62098,34.76883]],[[-76.59647,34.78133],[-76.59651,34.78134],[-76.59653,34.7813],[-76.59648,34.78129],[-76.59647,34.78133]],[[-76.59645,34.78143],[-76.59645,34.78146],[-76.59648,34.78144],[-76.59645,34.78143]],[[-76.61925,34.76987],[-76.61946,34.76985],[-76.61947,34.76967],[-76.61937,34.76968],[-76.61925,34.76987]],[[-76.61938,34.76953],[-76.61947,34.7695],[-76.61947,34.76941],[-76.61944,34.7694],[-76.61938,34.76953]],[[-76.6206,34.76993],[-76.6205,34.77014],[-76.62051,34.77016],[-76.62058,34.76999],[-76.6206,34.76993]],[[-76.62097,34.7689],[-76.62075,34.7692],[-76.62077,34.76927],[-76.62096,34.76903],[-76.62097,34.7689]],[[-76.62053,34.77022],[-76.62053,34.77023],[-76.62058,34.77031],[-76.62059,34.77029],[-76.62053,34.77022]],[[-76.62081,34.76932],[-76.62065,34.76984],[-76.62094,34.76985],[-76.62102,34.76951],[-76.62081,34.76932]],[[-76.62058,34.77053],[-76.62058,34.77054],[-76.62061,34.77056],[-76.62058,34.77053]],[[-76.62251,34.7678],[-76.62199,34.7683],[-76.62267,34.7687],[-76.62293,34.76833],[-76.62251,34.7678]],[[-76.62014,34.7757],[-76.62047,34.77565],[-76.62058,34.7757],[-76.62049,34.77563],[-76.62041,34.77562],[-76.62014,34.7757]],[[-76.61979,34.77952],[-76.6198,34.77953],[-76.6198,34.77951],[-76.61979,34.77952]],[[-76.61997,34.77937],[-76.61997,34.7794],[-76.62005,34.7793],[-76.62001,34.7793],[-76.61997,34.77937]],[[-76.62028,34.77935],[-76.62038,34.77943],[-76.62044,34.77946],[-76.6204,34.77941],[-76.62028,34.77935]],[[-76.6205,34.7795],[-76.62056,34.77954],[-76.62065,34.7795],[-76.62063,34.77949],[-76.6205,34.7795]],[[-76.62077,34.77957],[-76.62079,34.77959],[-76.62083,34.77957],[-76.62083,34.77957],[-76.62077,34.77957]],[[-76.62099,34.77959],[-76.62102,34.77973],[-76.62111,34.77977],[-76.62096,34.77954],[-76.62099,34.77959]]]}},{"type":"Feature","properties":{"cmu_name":"U107","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.65922,34.70636],[-76.6379,34.69802],[-76.61894,34.70307],[-76.58839,34.70179],[-76.59099,34.67328],[-76.5921,34.67398],[-76.59137,34.67226],[-76.59286,34.67103],[-76.59177,34.67072],[-76.59549,34.67024],[-76.59898,34.67245],[-76.60852,34.67455],[-76.6281,34.68364],[-76.64409,34.68703],[-76.64732,34.68636],[-76.65486,34.69048],[-76.65336,34.68435],[-76.67713,34.69335],[-76.67514,34.69382],[-76.67426,34.69653],[-76.6803,34.69985],[-76.68002,34.7062],[-76.67772,34.70948],[-76.65922,34.70636]]]}},{"type":"Feature","properties":{"cmu_name":"U044","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.4843,34.67912],[-76.49375,34.66858],[-76.5257,34.68517],[-76.48899,34.73811],[-76.4319,34.81051],[-76.37869,34.80135],[-76.38181,34.79558],[-76.38648,34.79234],[-76.38982,34.78623],[-76.40174,34.77341],[-76.4034,34.76893],[-76.40508,34.76919],[-76.40841,34.76439],[-76.41308,34.76131],[-76.41349,34.759],[-76.43445,34.73824],[-76.45444,34.71355],[-76.46665,34.7025],[-76.46975,34.69579],[-76.4843,34.67912]]],[[[-76.49209,34.66898],[-76.49288,34.66814],[-76.49309,34.66824],[-76.49194,34.66925],[-76.49209,34.66898]]]]}},{"type":"Feature","properties":{"cmu_name":"U074","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.36805,34.81169],[-76.37177,34.81112],[-76.37212,34.80991],[-76.37031,34.81032],[-76.37131,34.80956],[-76.37049,34.80988],[-76.36866,34.80983],[-76.36783,34.80902],[-76.37015,34.80972],[-76.37165,34.80901],[-76.37006,34.80873],[-76.37094,34.80642],[-76.37412,34.80646],[-76.3787,34.80133],[-76.4319,34.8105],[-76.30527,34.89885],[-76.27831,34.88437],[-76.27891,34.88294],[-76.28302,34.87969],[-76.28511,34.88064],[-76.28952,34.87829],[-76.28827,34.87785],[-76.29047,34.87791],[-76.28755,34.87696],[-76.28973,34.8752],[-76.2921,34.87627],[-76.29503,34.87454],[-76.29581,34.87332],[-76.29256,34.87548],[-76.29458,34.87392],[-76.29282,34.87405],[-76.29361,34.87304],[-76.30093,34.86989],[-76.30198,34.86859],[-76.30051,34.86754],[-76.30268,34.86638],[-76.3019,34.86642],[-76.30138,34.86635],[-76.30131,34.8662],[-76.30333,34.86499],[-76.30391,34.86586],[-76.30289,34.86416],[-76.3043,34.86567],[-76.30962,34.86139],[-76.31746,34.85926],[-76.31752,34.85778],[-76.31894,34.85829],[-76.31519,34.85578],[-76.31176,34.85607],[-76.32389,34.84854],[-76.32185,34.85249],[-76.32467,34.85451],[-76.32999,34.85209],[-76.32892,34.85128],[-76.33061,34.85129],[-76.33071,34.84923],[-76.32943,34.84988],[-76.33029,34.84875],[-76.32735,34.84837],[-76.32989,34.84831],[-76.32808,34.84536],[-76.33221,34.84236],[-76.33146,34.84156],[-76.33641,34.83936],[-76.33599,34.83932],[-76.3348,34.83851],[-76.33456,34.83811],[-76.33696,34.83886],[-76.3448,34.83154],[-76.34336,34.83104],[-76.34314,34.83076],[-76.34496,34.83128],[-76.34475,34.82979],[-76.3458,34.8306],[-76.34519,34.82967],[-76.34753,34.82925],[-76.34651,34.82757],[-76.34979,34.82752],[-76.34865,34.82604],[-76.35048,34.8277],[-76.3539,34.82632],[-76.35205,34.82562],[-76.3544,34.82449],[-76.3543,34.82109],[-76.35599,34.82164],[-76.36167,34.81677],[-76.36451,34.81697],[-76.36429,34.81596],[-76.36221,34.81536],[-76.36079,34.8144],[-76.36077,34.81422],[-76.36488,34.81476],[-76.36434,34.81305],[-76.36555,34.81258],[-76.36651,34.81434],[-76.36805,34.81169]],[[-76.28166,34.88124],[-76.28165,34.88115],[-76.28154,34.88115],[-76.28158,34.88124],[-76.28166,34.88124]],[[-76.33679,34.86266],[-76.33529,34.86146],[-76.3341,34.86174],[-76.33571,34.86346],[-76.33679,34.86266]]],[[[-76.34132,34.83359],[-76.34142,34.83354],[-76.34149,34.83362],[-76.34138,34.83367],[-76.34132,34.83359]]],[[[-76.35494,34.82087],[-76.35509,34.82081],[-76.35489,34.82101],[-76.35488,34.8209],[-76.35494,34.82087]]],[[[-76.3552,34.82064],[-76.35527,34.82064],[-76.35514,34.82078],[-76.35516,34.82067],[-76.3552,34.82064]]]]}},{"type":"Feature","properties":{"cmu_name":"U138","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.61455,35.20064],[-76.61341,35.2027],[-76.61164,35.19878],[-76.61062,35.20045],[-76.60816,35.20022],[-76.60957,35.19922],[-76.60713,35.19742],[-76.60554,35.19914],[-76.60394,35.19571],[-76.60378,35.19758],[-76.59793,35.19906],[-76.60282,35.20124],[-76.60362,35.20278],[-76.60176,35.20235],[-76.60104,35.20354],[-76.60771,35.20649],[-76.60036,35.2052],[-76.5987,35.20409],[-76.60019,35.20225],[-76.59643,35.20062],[-76.59303,35.20154],[-76.59453,35.20349],[-76.59024,35.20256],[-76.59119,35.20082],[-76.58588,35.20228],[-76.58774,35.20275],[-76.58921,35.20739],[-76.59419,35.20718],[-76.59466,35.2087],[-76.59654,35.20794],[-76.59302,35.21113],[-76.59735,35.21096],[-76.59698,35.21271],[-76.59912,35.21285],[-76.59523,35.21262],[-76.59678,35.21269],[-76.5965,35.21151],[-76.59171,35.2129],[-76.59865,35.21315],[-76.59768,35.21432],[-76.60066,35.21309],[-76.6031,35.21365],[-76.60068,35.21317],[-76.59655,35.21706],[-76.59708,35.21597],[-76.59512,35.2155],[-76.59363,35.21688],[-76.59332,35.21984],[-76.59625,35.2212],[-76.59675,35.22389],[-76.59552,35.22177],[-76.59173,35.22142],[-76.59152,35.21529],[-76.5871,35.21234],[-76.58441,35.2126],[-76.58371,35.21102],[-76.58917,35.21089],[-76.58623,35.2078],[-76.58257,35.20758],[-76.58077,35.20895],[-76.57992,35.20803],[-76.57839,35.2094],[-76.57957,35.20761],[-76.58063,35.2077],[-76.57996,35.20555],[-76.57679,35.20478],[-76.57977,35.20407],[-76.58107,35.20616],[-76.58456,35.20602],[-76.58138,35.20463],[-76.58128,35.20263],[-76.5697,35.1975],[-76.59833,35.18896],[-76.602,35.19274],[-76.60422,35.19232],[-76.60879,35.19536],[-76.61018,35.19451],[-76.61017,35.19674],[-76.61405,35.19641],[-76.61455,35.20064]],[[-76.59592,35.20046],[-76.59589,35.20039],[-76.59575,35.20042],[-76.59585,35.20047],[-76.59592,35.20046]]]}},{"type":"Feature","properties":{"cmu_name":"U035","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.36348,35.40907],[-76.35431,35.40466],[-76.35008,35.40623],[-76.35153,35.40955],[-76.34652,35.40984],[-76.34579,35.41238],[-76.34551,35.40951],[-76.34235,35.41157],[-76.34022,35.41051],[-76.34232,35.41145],[-76.34597,35.40847],[-76.3417,35.39832],[-76.3321,35.39086],[-76.33248,35.38873],[-76.32723,35.38673],[-76.3246,35.38996],[-76.32568,35.38706],[-76.31659,35.38542],[-76.31595,35.38335],[-76.32006,35.38352],[-76.3224,35.38101],[-76.3211,35.38006],[-76.32304,35.37842],[-76.32095,35.37037],[-76.31528,35.36943],[-76.31324,35.37109],[-76.31238,35.36859],[-76.3086,35.36937],[-76.3076,35.37275],[-76.30521,35.37174],[-76.30534,35.37394],[-76.30289,35.37317],[-76.30028,35.3749],[-76.30283,35.37288],[-76.30444,35.37254],[-76.30256,35.36855],[-76.29675,35.3668],[-76.29515,35.36775],[-76.29245,35.36428],[-76.29073,35.36512],[-76.29176,35.36854],[-76.29081,35.37181],[-76.29011,35.3654],[-76.28397,35.36744],[-76.28482,35.36991],[-76.28357,35.36769],[-76.28052,35.36795],[-76.28009,35.36956],[-76.2805,35.36782],[-76.27801,35.36827],[-76.28132,35.36717],[-76.28348,35.36728],[-76.28754,35.36264],[-76.28567,35.36117],[-76.28642,35.36132],[-76.28673,35.36047],[-76.28659,35.36028],[-76.27996,35.36065],[-76.28123,35.35902],[-76.2849,35.36012],[-76.28352,35.35841],[-76.28408,35.35759],[-76.28836,35.36145],[-76.28927,35.3592],[-76.29537,35.35728],[-76.29684,35.35866],[-76.30098,35.35797],[-76.3009,35.35946],[-76.30319,35.35799],[-76.30295,35.35983],[-76.30503,35.36024],[-76.30583,35.36002],[-76.30413,35.3588],[-76.30496,35.35559],[-76.30205,35.3526],[-76.29943,35.35394],[-76.29349,35.35341],[-76.28636,35.34671],[-76.28205,35.34626],[-76.27843,35.34325],[-76.26863,35.34161],[-76.26923,35.32611],[-76.27256,35.32754],[-76.27372,35.33119],[-76.27467,35.33029],[-76.28277,35.33168],[-76.27707,35.32931],[-76.27967,35.32905],[-76.27786,35.32498],[-76.28064,35.32055],[-76.28345,35.31978],[-76.28215,35.31736],[-76.28336,35.31528],[-76.35402,35.34059],[-76.35001,35.34064],[-76.34703,35.34245],[-76.3517,35.34251],[-76.35168,35.34453],[-76.35247,35.343],[-76.35512,35.34314],[-76.35619,35.34929],[-76.35232,35.34926],[-76.34896,35.35105],[-76.35205,35.35268],[-76.35163,35.35388],[-76.35398,35.35216],[-76.35656,35.35484],[-76.35544,35.35435],[-76.35341,35.35662],[-76.35079,35.35577],[-76.34428,35.35045],[-76.34435,35.35605],[-76.34836,35.36229],[-76.34752,35.36412],[-76.34921,35.36439],[-76.35123,35.3601],[-76.35573,35.36158],[-76.3568,35.36853],[-76.35147,35.37156],[-76.35113,35.3737],[-76.35464,35.37636],[-76.35627,35.37588],[-76.3576,35.38027],[-76.35953,35.37998],[-76.35821,35.38204],[-76.35992,35.38334],[-76.35616,35.38682],[-76.35219,35.38648],[-76.35001,35.39044],[-76.34463,35.39283],[-76.34551,35.39449],[-76.34919,35.39376],[-76.3489,35.39184],[-76.35031,35.39261],[-76.35166,35.39103],[-76.35284,35.39179],[-76.35188,35.39364],[-76.35466,35.39336],[-76.35426,35.39492],[-76.34742,35.39742],[-76.3524,35.40161],[-76.3556,35.40127],[-76.35931,35.40383],[-76.36224,35.4013],[-76.36233,35.40153],[-76.36419,35.40062],[-76.36509,35.40063],[-76.36397,35.40104],[-76.36645,35.40191],[-76.36645,35.40228],[-76.36382,35.40123],[-76.35989,35.40507],[-76.3647,35.40973],[-76.36348,35.40907]],[[-76.36112,35.40425],[-76.36112,35.40425],[-76.36112,35.40425],[-76.36112,35.40425]],[[-76.28656,35.36025],[-76.28654,35.36022],[-76.28647,35.36021],[-76.28627,35.36021],[-76.28656,35.36025]],[[-76.31749,35.3832],[-76.31749,35.3832],[-76.31749,35.3832],[-76.31749,35.3832]],[[-76.28144,35.32907],[-76.2818,35.329],[-76.28043,35.32844],[-76.28041,35.32902],[-76.28144,35.32907]],[[-76.29057,35.37157],[-76.29053,35.37164],[-76.29068,35.37162],[-76.29062,35.37156],[-76.29057,35.37157]],[[-76.29066,35.37129],[-76.29064,35.37131],[-76.29064,35.37133],[-76.29065,35.37132],[-76.29066,35.37129]],[[-76.3446,35.34385],[-76.34544,35.34279],[-76.34295,35.34328],[-76.34272,35.34489],[-76.3446,35.34385]],[[-76.33351,35.38833],[-76.33346,35.38835],[-76.33343,35.38838],[-76.33349,35.3884],[-76.33351,35.38833]],[[-76.33397,35.38804],[-76.33422,35.38798],[-76.3343,35.38773],[-76.33393,35.38779],[-76.33397,35.38804]],[[-76.34422,35.34959],[-76.34436,35.34944],[-76.34446,35.34921],[-76.34415,35.34929],[-76.34422,35.34959]],[[-76.34661,35.34261],[-76.34673,35.34252],[-76.34644,35.34252],[-76.34616,35.34261],[-76.34661,35.34261]],[[-76.34797,35.35058],[-76.3479,35.35047],[-76.34699,35.35048],[-76.34711,35.35058],[-76.34797,35.35058]],[[-76.34875,35.35072],[-76.34861,35.35032],[-76.34872,35.34971],[-76.34817,35.35025],[-76.34875,35.35072]],[[-76.34651,35.36242],[-76.34651,35.36239],[-76.34649,35.36245],[-76.34651,35.36242]],[[-76.34641,35.36359],[-76.34639,35.36343],[-76.34618,35.36382],[-76.34626,35.36408],[-76.34641,35.36359]],[[-76.34663,35.36273],[-76.34655,35.36262],[-76.34639,35.36332],[-76.34669,35.36296],[-76.34663,35.36273]],[[-76.35399,35.34549],[-76.35349,35.34461],[-76.35127,35.3449],[-76.35158,35.34803],[-76.35399,35.34549]],[[-76.34949,35.35357],[-76.34967,35.35358],[-76.3495,35.35342],[-76.34945,35.35346],[-76.34949,35.35357]],[[-76.35111,35.35445],[-76.35137,35.35462],[-76.35157,35.35447],[-76.35133,35.35424],[-76.35111,35.35445]],[[-76.3516,35.35463],[-76.35151,35.35472],[-76.35173,35.35484],[-76.35176,35.35482],[-76.3516,35.35463]],[[-76.35384,35.34773],[-76.3541,35.34735],[-76.35346,35.34732],[-76.3535,35.34751],[-76.35384,35.34773]],[[-76.3503,35.39561],[-76.35028,35.39564],[-76.3503,35.39565],[-76.35031,35.39563],[-76.3503,35.39561]],[[-76.35184,35.39149],[-76.35181,35.39146],[-76.35177,35.39144],[-76.35175,35.39153],[-76.35184,35.39149]],[[-76.35194,35.3919],[-76.35191,35.3919],[-76.35191,35.3919],[-76.35191,35.3919],[-76.35194,35.3919]],[[-76.35187,35.39378],[-76.35174,35.39368],[-76.35167,35.3938],[-76.35175,35.39385],[-76.35187,35.39378]],[[-76.35343,35.39433],[-76.35343,35.39433],[-76.35343,35.39433],[-76.35343,35.39433]],[[-76.35899,35.40435],[-76.35897,35.40435],[-76.35897,35.40435],[-76.35899,35.40435],[-76.35899,35.40435]],[[-76.36357,35.40841],[-76.36357,35.40841],[-76.36357,35.40841],[-76.36357,35.40841]]]}},{"type":"Feature","properties":{"cmu_name":"U033","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.14824,35.39058],[-76.14943,35.38598],[-76.13048,35.35949],[-76.12755,35.36032],[-76.12862,35.35731],[-76.12236,35.35616],[-76.11972,35.35827],[-76.11841,35.35743],[-76.12229,35.36045],[-76.12008,35.359],[-76.12217,35.36051],[-76.1226,35.36387],[-76.12234,35.36289],[-76.11437,35.36642],[-76.12214,35.36283],[-76.12207,35.36065],[-76.11946,35.35888],[-76.11865,35.35939],[-76.11652,35.35984],[-76.11865,35.35928],[-76.11923,35.35897],[-76.11945,35.3588],[-76.12001,35.35894],[-76.11945,35.3587],[-76.11861,35.35926],[-76.11631,35.35977],[-76.11182,35.363],[-76.11617,35.35971],[-76.11936,35.35869],[-76.11747,35.35809],[-76.1178,35.35569],[-76.11301,35.35542],[-76.11085,35.35284],[-76.0971,35.36085],[-76.09371,35.36463],[-76.09411,35.36677],[-76.09064,35.36929],[-76.07973,35.37252],[-76.08397,35.37323],[-76.08404,35.37399],[-76.08071,35.37445],[-76.07068,35.37148],[-76.06367,35.36759],[-76.14926,35.33084],[-76.15162,35.33415],[-76.15073,35.33743],[-76.14534,35.34106],[-76.13965,35.34208],[-76.13693,35.34404],[-76.14315,35.35038],[-76.14271,35.35589],[-76.13453,35.36032],[-76.13051,35.35941],[-76.14947,35.38581],[-76.14953,35.39016],[-76.14824,35.39058]],[[-76.12106,35.35438],[-76.12105,35.35439],[-76.12105,35.35439],[-76.12105,35.35439],[-76.12106,35.35438]],[[-76.12104,35.35439],[-76.11793,35.35528],[-76.11845,35.35737],[-76.11951,35.35739],[-76.11928,35.35524],[-76.12104,35.35439]],[[-76.11831,35.35785],[-76.11838,35.35786],[-76.11833,35.35778],[-76.11829,35.35782],[-76.11831,35.35785]],[[-76.13098,35.35771],[-76.13025,35.35748],[-76.1296,35.35744],[-76.13018,35.3579],[-76.13098,35.35771]]]}},{"type":"Feature","properties":{"cmu_name":"U132","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.6606,35.42651],[-76.65787,35.4273],[-76.66002,35.42979],[-76.65719,35.4283],[-76.65584,35.42919],[-76.65698,35.43008],[-76.65454,35.43005],[-76.65457,35.43269],[-76.6566,35.43432],[-76.65398,35.43262],[-76.65346,35.4341],[-76.65313,35.43127],[-76.64913,35.42906],[-76.65241,35.4283],[-76.65513,35.4226],[-76.65768,35.42411],[-76.66163,35.41988],[-76.6598,35.41619],[-76.65438,35.41385],[-76.65219,35.41464],[-76.65351,35.41305],[-76.65151,35.40952],[-76.65503,35.41181],[-76.6591,35.41231],[-76.65971,35.41418],[-76.66201,35.41404],[-76.65127,35.40517],[-76.62947,35.40011],[-76.62111,35.39686],[-76.61766,35.39772],[-76.60564,35.39417],[-76.60471,35.39497],[-76.60514,35.39386],[-76.59519,35.38924],[-76.5749,35.38864],[-76.58208,35.33087],[-76.58996,35.32974],[-76.59883,35.33097],[-76.60506,35.32799],[-76.60941,35.32831],[-76.60819,35.3258],[-76.61159,35.31971],[-76.61049,35.31487],[-76.6083,35.3151],[-76.60691,35.31816],[-76.60541,35.31424],[-76.6009,35.31249],[-76.60057,35.31568],[-76.59953,35.31648],[-76.60066,35.31324],[-76.59772,35.31228],[-76.59691,35.311279999999999],[-76.59971,35.312],[-76.6002,35.31087],[-76.60761,35.31333],[-76.60973,35.30929],[-76.60543,35.30675],[-76.6107,35.30898],[-76.61141,35.31052],[-76.61349,35.30872],[-76.61042,35.3055],[-76.61008,35.304],[-76.61273,35.30594],[-76.61541,35.30261],[-76.61377,35.29823],[-76.61091,35.29877],[-76.61228,35.29588],[-76.60801,35.29592],[-76.6065,35.29272],[-76.60825,35.29108],[-76.60863,35.29266],[-76.61077,35.29033],[-76.60968,35.28781],[-76.61262,35.28388],[-76.60754,35.28061],[-76.60668,35.28107],[-76.60616,35.28234],[-76.60581,35.28252],[-76.60544,35.27943],[-76.60289,35.2803],[-76.60432,35.27645],[-76.60104,35.27272],[-76.59891,35.27246],[-76.59864,35.27552],[-76.59809,35.27237],[-76.59737,35.27256],[-76.59586,35.27433],[-76.59508,35.27463],[-76.59619000000001,35.27311],[-76.5922,35.27119],[-76.59041,35.27217],[-76.59109,35.27085],[-76.58848,35.26872],[-76.58415,35.27054],[-76.57883,35.2708],[-76.57779,35.27045],[-76.5855,35.26984],[-76.58719,35.26759],[-76.59465,35.2709],[-76.59647,35.26587],[-76.5932,35.2613],[-76.59206,35.26056],[-76.58951,35.25975],[-76.58928,35.25952],[-76.59223,35.26048],[-76.59517,35.26259],[-76.5972,35.26555],[-76.59652,35.27053],[-76.60236,35.27032],[-76.60361,35.26884],[-76.60571,35.26817],[-76.60266,35.27113],[-76.6045,35.27315],[-76.60674,35.2732],[-76.60969,35.2783],[-76.61281,35.27689],[-76.61204,35.27684],[-76.61319,35.27098],[-76.61493,35.26956],[-76.61343,35.27926],[-76.61722,35.28068],[-76.61852,35.27866],[-76.61744,35.28264],[-76.61896,35.29256],[-76.6221,35.29601],[-76.62329,35.29555],[-76.62414,35.29728],[-76.62215,35.29696],[-76.62583,35.30178],[-76.6275,35.30066],[-76.63093,35.30198],[-76.6325,35.29987],[-76.63503,35.30025],[-76.63666,35.29762],[-76.64153,35.29706],[-76.6432,35.29926],[-76.65095,35.30111],[-76.639,35.29877],[-76.6368,35.30189],[-76.63825,35.30389],[-76.63537,35.30201],[-76.6324,35.30298],[-76.63327,35.30458],[-76.63179,35.30426],[-76.63085,35.30619],[-76.631,35.30427],[-76.62841,35.3031],[-76.62542,35.30485],[-76.62623,35.3061],[-76.62455,35.30432],[-76.62309,35.30537],[-76.62257,35.31122],[-76.62513,35.31346],[-76.62828,35.31219],[-76.62669,35.31348],[-76.62846,35.31344],[-76.6303,35.3147],[-76.62621,35.314],[-76.62461,35.31507],[-76.62371,35.31366],[-76.62142,35.31531],[-76.62466,35.32114],[-76.6226,35.32146],[-76.6216,35.32386],[-76.62654,35.32432],[-76.62574,35.3318],[-76.62741,35.33121],[-76.6294,35.33207],[-76.62992,35.33329],[-76.6275,35.3321],[-76.62691,35.33389],[-76.62483,35.33287],[-76.62355,35.33438],[-76.62218,35.33913],[-76.62405,35.34249],[-76.62409,35.34081],[-76.62467,35.34251],[-76.64438,35.34368],[-76.64872,35.34145],[-76.64233,35.3402],[-76.6408,35.33904],[-76.64545,35.33992],[-76.6453,35.3384],[-76.64614,35.33541],[-76.64679,35.33483],[-76.6463,35.33858],[-76.64918,35.33995],[-76.65345,35.3359],[-76.65145,35.34063],[-76.65609,35.34001],[-76.66687,35.34591],[-76.66975,35.34529],[-76.66742,35.34316],[-76.66778,35.34074],[-76.6695,35.34427],[-76.67152,35.34412],[-76.67649,35.34705],[-76.67646,35.34835],[-76.68313,35.34939],[-76.6934,35.36221],[-76.67352,35.41675],[-76.67702,35.42137],[-76.67922,35.42143],[-76.68159,35.42275],[-76.67781,35.42197],[-76.67932,35.42533],[-76.675,35.42039],[-76.67409,35.42132],[-76.67261,35.41902],[-76.66921,35.41887],[-76.66701,35.42065],[-76.6679,35.42296],[-76.6606,35.42651]],[[-76.61404,35.27194],[-76.61368,35.27092],[-76.61471,35.26975],[-76.61326,35.27097],[-76.61373,35.27186],[-76.61329,35.27573],[-76.61404,35.27194]],[[-76.61258,35.27676],[-76.61317,35.27612],[-76.61319,35.27575],[-76.61247,35.27666],[-76.61258,35.27676]],[[-76.61514,35.3408],[-76.61488,35.34069],[-76.61452,35.34074],[-76.61489,35.34095],[-76.61514,35.3408]],[[-76.62118,35.34029],[-76.61895,35.34027],[-76.61543,35.34078],[-76.61666,35.34255],[-76.62287,35.34318],[-76.62118,35.34029]],[[-76.64343,35.35895],[-76.64339,35.35892],[-76.64331,35.35893],[-76.64339,35.35896],[-76.64343,35.35895]],[[-76.6499,35.35898],[-76.64466,35.35893],[-76.64363,35.36037],[-76.65272,35.36214],[-76.65863,35.36052],[-76.65137,35.35824],[-76.6499,35.35898]],[[-76.66211,35.41531],[-76.66301,35.41604],[-76.6635,35.41557],[-76.66337,35.41532],[-76.66211,35.41531]]]}},{"type":"Feature","properties":{"cmu_name":"U028","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.3624,34.92545],[-76.36018,34.92651],[-76.36361,34.92671],[-76.36197,34.92892],[-76.35427,34.93565],[-76.3273,34.94411],[-76.31191,34.93577],[-76.30146,34.92425],[-76.29761,34.92365],[-76.31454,34.90348],[-76.31691,34.90641],[-76.31452,34.90655],[-76.31539,34.90717],[-76.32158,34.90723],[-76.31769,34.90452],[-76.3176,34.90697],[-76.31518,34.90293],[-76.316,34.90169],[-76.31661,34.90337],[-76.31993,34.90321],[-76.32391,34.90543],[-76.322,34.90398],[-76.32438,34.90287],[-76.32001,34.90112],[-76.31919,34.89908],[-76.32551,34.90167],[-76.32134,34.89891],[-76.32165,34.89728],[-76.34306,34.90166],[-76.34607,34.90451],[-76.34792,34.9033],[-76.34797,34.90514],[-76.35392,34.9081],[-76.35163,34.9157],[-76.3537,34.91626],[-76.35509,34.91451],[-76.35892,34.91568],[-76.36785,34.9154],[-76.36956,34.91663],[-76.36404,34.92575],[-76.3624,34.92545]],[[-76.3298,34.90923],[-76.32516,34.90777],[-76.33041,34.90757],[-76.32099,34.90523],[-76.32229,34.90743],[-76.3298,34.90923]],[[-76.32811,34.90489],[-76.32797,34.90441],[-76.33206,34.90393],[-76.32434,34.90403],[-76.32811,34.90489]],[[-76.36245,34.92542],[-76.36247,34.92542],[-76.3625,34.92538],[-76.36248,34.92539],[-76.36245,34.92542]]]}},{"type":"Feature","properties":{"cmu_name":"U011","rain_in":2.5,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-77.06502,34.68012],[-77.05488,34.68106],[-77.05543,34.68409],[-77.05119,34.68619],[-77.05077,34.68782],[-77.05023,34.68581],[-77.04833,34.68743],[-77.049,34.68411],[-77.04721,34.68735],[-77.04771,34.68459],[-77.04358,34.68664],[-77.03822,34.68527],[-77.03629,34.68235],[-77.03315,34.68162],[-77.0287,34.68259],[-77.02722,34.68733],[-77.02231,34.68966],[-77.01754,34.68841],[-77.01642,34.68542],[-77.037,34.67635],[-77.06536,34.67405],[-77.06567,34.67503],[-77.06257,34.67503],[-77.06154,34.6754],[-77.06388,34.67524],[-77.06408,34.6765],[-77.06192,34.676],[-77.06133,34.6764],[-77.06294,34.67678],[-77.0614,34.67865],[-77.0631,34.67741],[-77.0645,34.6775],[-77.06326,34.67646],[-77.06622,34.67671],[-77.06706,34.67945],[-77.06502,34.68012]],[[-77.02148,34.68831],[-77.02134,34.68849],[-77.02162,34.68862],[-77.02164,34.68848],[-77.02148,34.68831]],[[-77.0416,34.68353],[-77.0411,34.68421],[-77.04268,34.68453],[-77.04278,34.68287],[-77.0416,34.68353]]],[[[-77.06273,34.67795],[-77.06322,34.67784],[-77.06322,34.67809],[-77.06255,34.67832],[-77.06273,34.67795]]]]}},{"type":"Feature","properties":{"cmu_name":"U070","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.45108,34.81773],[-76.44961,34.82108],[-76.44276,34.8234],[-76.44833,34.8212],[-76.44468,34.81866],[-76.44389,34.81627],[-76.45108,34.8132],[-76.45108,34.81773]]]}},{"type":"Feature","properties":{"cmu_name":"U071","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.43454,34.82953],[-76.44231,34.8236],[-76.43505,34.83001],[-76.43697,34.82853],[-76.43625,34.83149],[-76.43484,34.8306],[-76.4333,34.83166],[-76.43493,34.83012],[-76.429,34.83515],[-76.43056,34.834],[-76.43145,34.83706],[-76.42984,34.84017],[-76.42642,34.83765],[-76.42889,34.83549],[-76.42633,34.83746],[-76.421,34.82883],[-76.41762,34.82636],[-76.43375,34.82344],[-76.43454,34.82953]]]}},{"type":"Feature","properties":{"cmu_name":"U118","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-75.98973,35.11484],[-75.988,35.11243],[-75.98968,35.10442],[-75.98776,35.10232],[-75.98488,35.10296],[-75.98374,35.10289],[-75.98724,35.10201],[-75.98597,35.09914],[-75.98592,35.09981],[-75.98351,35.10076],[-75.9858,35.09891],[-75.98435,35.09754],[-75.98778,35.09586],[-75.99805,35.08042],[-76.00635,35.07879],[-76.01241,35.07246],[-76.01492,35.07437],[-76.01782,35.07301],[-76.04591,35.09783],[-76.04641,35.0995],[-75.99875,35.12146],[-75.76259,35.20155],[-75.77415,35.18985],[-75.78023,35.19102],[-75.78018,35.18909],[-75.78155,35.18917],[-75.78506,35.19201],[-75.78286,35.18594],[-75.78618,35.18602],[-75.79097,35.18187],[-75.79717,35.17862],[-75.80337,35.17655],[-75.80385,35.17949],[-75.80609,35.17829],[-75.80771,35.17927],[-75.80654,35.17607],[-75.80736,35.17538],[-75.80874,35.17832],[-75.80848,35.1763],[-75.81028,35.17558],[-75.80915,35.17376],[-75.81395,35.17205],[-75.81733,35.1723],[-75.81495,35.17128],[-75.8183,35.17149],[-75.81804,35.16916],[-75.8213,35.17111],[-75.82398,35.16983],[-75.82397,35.16675],[-75.82474,35.16861],[-75.82918,35.16721],[-75.82869,35.16891],[-75.83114,35.16927],[-75.8348,35.16562],[-75.83285,35.1641],[-75.83513,35.16562],[-75.83466,35.16644],[-75.83528,35.16711],[-75.83554,35.16612],[-75.83745,35.16735],[-75.83695,35.16647],[-75.83703,35.16573],[-75.83813,35.1671],[-75.8391,35.16515],[-75.83635,35.16225],[-75.84196,35.16542],[-75.85851,35.15513],[-75.86037,35.15527],[-75.85947,35.15463],[-75.86528,35.15272],[-75.86743,35.1539],[-75.86949,35.15427],[-75.86819,35.15213],[-75.86756,35.15359],[-75.86649,35.15226],[-75.86908,35.15029],[-75.86924,35.15262],[-75.87135,35.1536],[-75.8716,35.15142],[-75.87232,35.15329],[-75.874,35.15303],[-75.8732,35.1505],[-75.87507,35.1527],[-75.8745,35.14995],[-75.87555,35.15236],[-75.87648,35.15244],[-75.87549,35.14994],[-75.87687,35.15176],[-75.87615,35.14972],[-75.87822,35.15123],[-75.87668,35.14954],[-75.87706,35.1489],[-75.87709,35.14974],[-75.87879,35.15107],[-75.87781,35.15011],[-75.87725,35.14826],[-75.87881,35.15074],[-75.87871,35.14848],[-75.87973,35.15028],[-75.8811,35.14924],[-75.87773,35.14592],[-75.88203,35.14914],[-75.88366,35.14882],[-75.88645,35.14606],[-75.88602,35.14517],[-75.88585,35.14308],[-75.88695,35.14742],[-75.88814,35.14677],[-75.88673,35.14524],[-75.8897,35.14605],[-75.89339,35.14498],[-75.89139,35.14185],[-75.89298,35.14241],[-75.89309,35.14141],[-75.8936,35.14272],[-75.89329,35.1407],[-75.89516,35.14415],[-75.89697,35.14482],[-75.89546,35.14295],[-75.89798,35.1437],[-75.90091,35.14083],[-75.90241,35.14164],[-75.90162,35.13728],[-75.90537,35.14012],[-75.90434,35.13823],[-75.90635,35.13999],[-75.90749,35.13844],[-75.905,35.13727],[-75.90941,35.13762],[-75.90868,35.13598],[-75.9085,35.13379],[-75.91045,35.13763],[-75.91094,35.13404],[-75.91187,35.13626],[-75.91497,35.1358],[-75.91856,35.13466],[-75.92253,35.13055],[-75.92417,35.13138],[-75.92858,35.12834],[-75.9295,35.12961],[-75.93099,35.12869],[-75.93287,35.12958],[-75.93217,35.1268],[-75.93359,35.12846],[-75.93651,35.12772],[-75.94292,35.1234],[-75.96144,35.11404],[-75.96197,35.11425],[-75.96256,35.11829],[-75.9705,35.11687],[-75.9782,35.12102],[-75.98129,35.11933],[-75.98306,35.12031],[-75.98973,35.11484]],[[-75.78321,35.18635],[-75.78331,35.18642],[-75.78354,35.1864],[-75.78317,35.18616],[-75.78321,35.18635]],[[-75.78389,35.18616],[-75.7838,35.1861],[-75.78375,35.18616],[-75.78379,35.18619],[-75.78389,35.18616]],[[-75.79131,35.18266],[-75.79126,35.18257],[-75.79115,35.18259],[-75.79117,35.18268],[-75.79131,35.18266]],[[-75.79559,35.1804],[-75.79548,35.18038],[-75.79545,35.18048],[-75.79559,35.18045],[-75.79559,35.1804]],[[-75.80054,35.17849],[-75.80048,35.17848],[-75.80047,35.17852],[-75.80056,35.17853],[-75.80054,35.17849]],[[-75.807,35.18492],[-75.80622,35.18428],[-75.8052,35.18437],[-75.80585,35.18501],[-75.807,35.18492]],[[-75.80705,35.18471],[-75.8074,35.18486],[-75.80756,35.18467],[-75.8071,35.18443],[-75.80705,35.18471]],[[-75.80974,35.17729],[-75.80943,35.17745],[-75.80975,35.1779],[-75.80994,35.17764],[-75.80974,35.17729]],[[-75.81506,35.17307],[-75.81444,35.17299],[-75.81406,35.17232],[-75.81437,35.17325],[-75.81506,35.17307]],[[-75.81883,35.17364],[-75.81963,35.17311],[-75.81826,35.17267],[-75.81787,35.1738],[-75.81883,35.17364]],[[-75.82023,35.17349],[-75.82042,35.17322],[-75.82,35.17315],[-75.82005,35.17328],[-75.82023,35.17349]],[[-75.82703,35.16966],[-75.82676,35.17001],[-75.82693,35.17018],[-75.82724,35.16993],[-75.82703,35.16966]],[[-75.85277,35.15977],[-75.85277,35.15975],[-75.85275,35.15977],[-75.85277,35.15977]],[[-75.85285,35.15958],[-75.85285,35.15956],[-75.85283,35.15957],[-75.85285,35.15958]],[[-75.89337,35.14623],[-75.89361,35.14612],[-75.89301,35.14559],[-75.89267,35.14603],[-75.89337,35.14623]],[[-75.89391,35.14489],[-75.89379,35.14468],[-75.89372,35.14508],[-75.89389,35.1451],[-75.89391,35.14489]],[[-75.9085,35.13808],[-75.90819,35.13838],[-75.90845,35.13853],[-75.90867,35.13822],[-75.9085,35.13808]],[[-75.94827,35.12094],[-75.94822,35.12092],[-75.94817,35.12093],[-75.94826,35.12097],[-75.94827,35.12094]],[[-75.94833,35.1211],[-75.94833,35.12104],[-75.94829,35.12105],[-75.94829,35.12108],[-75.94833,35.1211]],[[-75.94839,35.12122],[-75.94832,35.12119],[-75.94835,35.12128],[-75.9484,35.12127],[-75.94839,35.12122]],[[-75.95861,35.11576],[-75.95861,35.11573],[-75.95859,35.11574],[-75.95861,35.11576]],[[-75.9591,35.11608],[-75.95905,35.11608],[-75.95912,35.11613],[-75.95914,35.11612],[-75.9591,35.11608]],[[-75.95975,35.11607],[-75.95975,35.116],[-75.95966,35.11599],[-75.95965,35.11602],[-75.95975,35.11607]],[[-75.96033,35.1152],[-75.96017,35.11511],[-75.96031,35.11538],[-75.96033,35.11534],[-75.96033,35.1152]],[[-75.96055,35.11509],[-75.96068,35.11512],[-75.96057,35.11495],[-75.96054,35.11498],[-75.96055,35.11509]],[[-75.96108,35.11508],[-75.96117,35.11506],[-75.96117,35.11501],[-75.9611,35.11499],[-75.96108,35.11508]],[[-75.96159,35.11457],[-75.96136,35.11472],[-75.96163,35.11487],[-75.96169,35.1147],[-75.96159,35.11457]]],[[[-76.01388,35.07104],[-76.01482,35.07039],[-76.01683,35.07216],[-76.01535,35.07155],[-76.01388,35.07104]]]]}},{"type":"Feature","properties":{"cmu_name":"U114","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-75.5446,35.77877],[-75.54148,35.77735],[-75.53982,35.7741],[-75.53262,35.78074],[-75.52722,35.77277],[-75.52842,35.77056],[-75.52579,35.76791],[-75.52755,35.76688],[-75.52342,35.76421],[-75.52284,35.76108],[-75.51904,35.76144],[-75.52425,35.76005],[-75.52193,35.75793],[-75.52398,35.7561],[-75.52162,35.75591],[-75.52316,35.75397],[-75.51746,35.75323],[-75.51525,35.75219],[-75.51705,35.7516],[-75.51591,35.74932],[-75.51785,35.74858],[-75.51964,35.74366],[-75.5174,35.74324],[-75.51746,35.74533],[-75.51498,35.747],[-75.51721,35.74688],[-75.5138,35.75037],[-75.51331,35.7398],[-75.50936,35.74018],[-75.50636,35.73628],[-75.50432,35.73715],[-75.50724,35.73501],[-75.5082,35.7373],[-75.51411,35.73966],[-75.5167,35.74305],[-75.51949,35.74239],[-75.51768,35.7405],[-75.5179,35.73613],[-75.51172,35.73544],[-75.5101,35.73697],[-75.50961,35.73574],[-75.51098,35.73263],[-75.50871,35.733],[-75.51011,35.72975],[-75.50856,35.72838],[-75.5107,35.72837],[-75.5111,35.73247],[-75.51386,35.7292],[-75.50856,35.72661],[-75.50672,35.72306],[-75.50778,35.72203],[-75.50928,35.72477],[-75.50829,35.72545],[-75.50895,35.72617],[-75.514,35.7223],[-75.51075,35.72111],[-75.5134,35.7209],[-75.51247,35.71881],[-75.50825,35.71877],[-75.50796,35.71976],[-75.5069,35.71804],[-75.50504,35.71858],[-75.50686,35.71775],[-75.50471,35.71687],[-75.50711,35.71749],[-75.50932,35.71453],[-75.50418,35.71355],[-75.51082,35.71389],[-75.51017,35.71221],[-75.50772,35.71297],[-75.50706,35.71263],[-75.51091,35.71064],[-75.50229,35.71046],[-75.5072,35.71041],[-75.50907,35.70773],[-75.50463,35.70562],[-75.50205,35.7079],[-75.50134,35.70793],[-75.50459,35.70532],[-75.50364,35.70163],[-75.5009,35.69944],[-75.49981,35.70183],[-75.49882,35.70227],[-75.49987,35.70135],[-75.4988,35.7014],[-75.49765,35.70055],[-75.50002,35.70106],[-75.50037,35.69869],[-75.49699,35.69777],[-75.49825,35.69594],[-75.49794,35.69331],[-75.49679,35.69361],[-75.49855,35.69249],[-75.49628,35.69135],[-75.49598,35.69251],[-75.49506,35.6905],[-75.49866,35.69197],[-75.49977,35.68863],[-75.48912,35.68645],[-75.48819,35.68552],[-75.48861,35.68473],[-75.48606,35.68393],[-75.4859,35.68702],[-75.48505,35.68414],[-75.48865,35.68283],[-75.4846,35.68057],[-75.48426,35.67637],[-75.4819,35.67578],[-75.48056,35.67308],[-75.48224,35.67177],[-75.48085,35.6682],[-75.48235,35.67011],[-75.485,35.66932],[-75.48458,35.66836],[-75.48711,35.66953],[-75.4856,35.66852],[-75.48501,35.6678],[-75.48749,35.66936],[-75.48693,35.66863],[-75.48775,35.66799],[-75.48333,35.66591],[-75.48448,35.66339],[-75.48307,35.6656],[-75.48343,35.66379],[-75.48128,35.66463],[-75.48029,35.66348],[-75.48491,35.66259],[-75.48518,35.66222],[-75.48288,35.66198],[-75.48232,35.66152],[-75.486,35.66175],[-75.48688,35.6605],[-75.4854,35.66071],[-75.48733,35.65965],[-75.48703,35.65822],[-75.48524,35.65874],[-75.48688,35.65782],[-75.48612,35.65674],[-75.48347,35.65741],[-75.4867,35.65628],[-75.48375,35.65639],[-75.48568,35.65573],[-75.48447,35.65565],[-75.4847,35.65131],[-75.48237,35.65571],[-75.48139,35.65628],[-75.48191,35.64964],[-75.48446,35.64818],[-75.48332,35.64737],[-75.48089,35.64856],[-75.48053,35.64705],[-75.48376,35.64682],[-75.48406,35.64477],[-75.48151,35.6413],[-75.4789,35.64316],[-75.478,35.64246],[-75.47836,35.64018],[-75.48211,35.63939],[-75.48101,35.63828],[-75.48087,35.63683],[-75.47667,35.63907],[-75.47551,35.63818],[-75.47958,35.63494],[-75.4769,35.63295],[-75.47488,35.63022],[-75.47511,35.62896],[-75.4729,35.62883],[-75.47403,35.62757],[-75.47132,35.62449],[-75.47323,35.62403],[-75.46989,35.62155],[-75.47253,35.6134],[-75.47087,35.60872],[-75.46945,35.61078],[-75.4705,35.60751],[-75.51919,35.59831],[-75.5446,35.77877]],[[-75.47114,35.62004],[-75.4714,35.62033],[-75.4716,35.62004],[-75.47081,35.61996],[-75.47114,35.62004]],[[-75.47283,35.62639],[-75.47278,35.62639],[-75.47278,35.62644],[-75.47283,35.62643],[-75.47283,35.62639]],[[-75.47565,35.62951],[-75.4755,35.62941],[-75.47536,35.62978],[-75.47545,35.62977],[-75.47565,35.62951]],[[-75.47599,35.63813],[-75.47592,35.63809],[-75.4759,35.6381],[-75.47595,35.63814],[-75.47599,35.63813]],[[-75.47663,35.63841],[-75.47675,35.63864],[-75.47679,35.63865],[-75.47689,35.63826],[-75.47663,35.63841]],[[-75.48285,35.63882],[-75.48248,35.63839],[-75.48138,35.63819],[-75.48253,35.63898],[-75.48285,35.63882]],[[-75.48332,35.64243],[-75.48373,35.64228],[-75.48336,35.64155],[-75.4824,35.64148],[-75.48332,35.64243]],[[-75.4824,35.65453],[-75.48235,35.65392],[-75.48167,35.65389],[-75.48183,35.65526],[-75.4824,35.65453]],[[-75.48344,35.64983],[-75.48299,35.65073],[-75.4848,35.65045],[-75.48434,35.64949],[-75.48344,35.64983]],[[-75.48455,35.64629],[-75.48475,35.64648],[-75.48522,35.64593],[-75.48514,35.64506],[-75.48452,35.6445],[-75.48455,35.64629]],[[-75.48439,35.6458],[-75.48423,35.64594],[-75.48412,35.64649],[-75.48425,35.64639],[-75.48439,35.6458]],[[-75.4851,35.64374],[-75.48493,35.6437],[-75.48487,35.64375],[-75.48522,35.64385],[-75.4851,35.64374]],[[-75.48216,35.6555],[-75.48219,35.65539],[-75.48212,35.65537],[-75.48205,35.65545],[-75.48216,35.6555]],[[-75.48469,35.64781],[-75.48445,35.64779],[-75.4848,35.64834],[-75.48494,35.64809],[-75.48469,35.64781]],[[-75.48574,35.64974],[-75.48614,35.64964],[-75.48577,35.64918],[-75.48559,35.64956],[-75.48574,35.64974]],[[-75.48578,35.65355],[-75.48561,35.65348],[-75.48548,35.65365],[-75.48559,35.65367],[-75.48578,35.65355]],[[-75.48589,35.65497],[-75.48564,35.65494],[-75.48527,35.65528],[-75.48579,35.6552],[-75.48589,35.65497]],[[-75.48585,35.65466],[-75.48591,35.65462],[-75.4859,35.65454],[-75.48579,35.65469],[-75.48585,35.65466]],[[-75.48611,35.65552],[-75.48597,35.65565],[-75.48594,35.65577],[-75.48616,35.65566],[-75.48611,35.65552]],[[-75.48997,35.66623],[-75.49002,35.6667],[-75.48931,35.66656],[-75.49077,35.66546],[-75.49205,35.6655],[-75.48928,35.66374],[-75.48738,35.66498],[-75.48556,35.66402],[-75.484,35.66596],[-75.48941,35.66706],[-75.49181,35.66571],[-75.48997,35.66623]],[[-75.48678,35.67276],[-75.48742,35.67111],[-75.4832,35.67145],[-75.4852,35.67427],[-75.48678,35.67276]],[[-75.48838,35.66253],[-75.49114,35.66237],[-75.49136,35.66158],[-75.48909,35.66113],[-75.48672,35.66264],[-75.48838,35.66253]],[[-75.48623,35.66972],[-75.48588,35.66917],[-75.48523,35.66923],[-75.48529,35.66966],[-75.48623,35.66972]],[[-75.48715,35.66742],[-75.48657,35.66703],[-75.48613,35.6671],[-75.48652,35.66737],[-75.48715,35.66742]],[[-75.49093,35.66016],[-75.49175,35.66102],[-75.49137,35.66005],[-75.49055,35.6598],[-75.48792,35.66127],[-75.49093,35.66016]],[[-75.4895,35.65796],[-75.48889,35.65831],[-75.48867,35.65917],[-75.48979,35.65857],[-75.4895,35.65796]],[[-75.4861,35.67778],[-75.48608,35.67733],[-75.48457,35.67679],[-75.48468,35.67716],[-75.4861,35.67778]],[[-75.48938,35.66003],[-75.48993,35.65996],[-75.48999,35.65974],[-75.48953,35.65983],[-75.48938,35.66003]],[[-75.49055,35.6571],[-75.49038,35.65711],[-75.4903,35.65719],[-75.49062,35.6572],[-75.49055,35.6571]],[[-75.48995,35.66778],[-75.48828,35.66781],[-75.48737,35.66868],[-75.48978,35.66881],[-75.48995,35.66778]],[[-75.4853,35.67803],[-75.48533,35.67778],[-75.48518,35.67774],[-75.48498,35.67794],[-75.4853,35.67803]],[[-75.49029,35.65984],[-75.49029,35.65979],[-75.49008,35.65989],[-75.49011,35.659910000000007],[-75.49029,35.65984]],[[-75.49031,35.6597],[-75.49039,35.65971],[-75.49044,35.65967],[-75.49033,35.65966],[-75.49031,35.6597]],[[-75.49035,35.66064],[-75.49034,35.66062],[-75.49031,35.66064],[-75.49032,35.66064],[-75.49035,35.66064]],[[-75.48988,35.67188],[-75.49034,35.67153],[-75.48936,35.67107],[-75.48808,35.67154],[-75.48657,35.6747],[-75.48847,35.67641],[-75.48836,35.67523],[-75.48966,35.67462],[-75.48845,35.6723],[-75.48988,35.67188]],[[-75.48608,35.67933],[-75.48549,35.67928],[-75.48543,35.68024],[-75.48672,35.6798],[-75.48608,35.67933]],[[-75.48623,35.68031],[-75.48613,35.68029],[-75.48604,35.68038],[-75.48621,35.68034],[-75.48623,35.68031]],[[-75.49007,35.67335],[-75.48939,35.67218],[-75.48864,35.67236],[-75.48992,35.6744],[-75.49007,35.67335]],[[-75.49162,35.66175],[-75.49158,35.66183],[-75.49165,35.6618],[-75.49166,35.66149],[-75.49162,35.66175]],[[-75.49281,35.66511],[-75.4933,35.66435],[-75.49128,35.6641],[-75.49249,35.66571],[-75.49281,35.66511]],[[-75.48964,35.67502],[-75.48889,35.67504],[-75.48857,35.67528],[-75.48937,35.67544],[-75.48964,35.67502]],[[-75.49022,35.67125],[-75.49039,35.6714],[-75.49027,35.67115],[-75.48985,35.67108],[-75.49022,35.67125]],[[-75.48978,35.6722],[-75.48981,35.6722],[-75.4898,35.67218],[-75.48978,35.6722]],[[-75.49111,35.66761],[-75.49151,35.66806],[-75.49225,35.66753],[-75.492,35.66743],[-75.49111,35.66761]],[[-75.49051,35.67294],[-75.49096,35.67261],[-75.48986,35.67262],[-75.49006,35.67283],[-75.49051,35.67294]],[[-75.48935,35.67496],[-75.48942,35.67497],[-75.4896,35.67491],[-75.48947,35.67487],[-75.48935,35.67496]],[[-75.49215,35.66587],[-75.49212,35.66568],[-75.49203,35.66567],[-75.49201,35.66574],[-75.49215,35.66587]],[[-75.49156,35.6717],[-75.49095,35.67118],[-75.49028,35.67238],[-75.4914,35.67257],[-75.49136,35.67209],[-75.49156,35.6717]],[[-75.49142,35.67486],[-75.48957,35.67693],[-75.49183,35.67775],[-75.49104,35.67659],[-75.49331,35.67562],[-75.49111,35.67617],[-75.49142,35.67486]],[[-75.49158,35.6717],[-75.49146,35.67213],[-75.49194,35.67231],[-75.49207,35.67172],[-75.49158,35.6717]],[[-75.49375,35.66482],[-75.49431,35.66468],[-75.49417,35.66427],[-75.49375,35.66452],[-75.49375,35.66482]],[[-75.48922,35.68568],[-75.48969,35.6846],[-75.48846,35.68454],[-75.4888,35.68462],[-75.48878,35.68552],[-75.48922,35.68568]],[[-75.49265,35.67245],[-75.49393,35.67291],[-75.49406,35.6715],[-75.49228,35.67138],[-75.49265,35.67245]],[[-75.49212,35.67272],[-75.4922,35.67273],[-75.49215,35.67253],[-75.4921,35.67268],[-75.49212,35.67272]],[[-75.49553,35.66253],[-75.49512,35.66267],[-75.49609,35.66314],[-75.49602,35.66292],[-75.49553,35.66253]],[[-75.49402,35.68238],[-75.49144,35.68148],[-75.48983,35.68211],[-75.49027,35.68268],[-75.49402,35.68238]],[[-75.49262,35.67506],[-75.49227,35.67496],[-75.49215,35.67544],[-75.49235,35.67543],[-75.49262,35.67506]],[[-75.49212,35.67565],[-75.49213,35.67566],[-75.4922,35.67561],[-75.49211,35.67563],[-75.49212,35.67565]],[[-75.49218,35.67704],[-75.49204,35.67683],[-75.49185,35.67692],[-75.49231,35.6773],[-75.49218,35.67704]],[[-75.49305,35.6764],[-75.49216,35.67658],[-75.49244,35.67736],[-75.49263,35.67718],[-75.49305,35.6764]],[[-75.49002,35.68587],[-75.49017,35.68581],[-75.49048,35.68581],[-75.49021,35.68569],[-75.49002,35.68587]],[[-75.49398,35.67618],[-75.49327,35.67614],[-75.49235,35.67787],[-75.49325,35.67749],[-75.49398,35.67618]],[[-75.49461,35.6725],[-75.49422,35.67286],[-75.49455,35.67317],[-75.49478,35.67309],[-75.49461,35.6725]],[[-75.49585,35.67664],[-75.49438,35.67628],[-75.49307,35.67812],[-75.49665,35.6782],[-75.49585,35.67664]],[[-75.49598,35.67159],[-75.49471,35.67224],[-75.49502,35.67326],[-75.49618,35.67189],[-75.49598,35.67159]],[[-75.49391,35.6756],[-75.4939,35.67552],[-75.49384,35.67554],[-75.49385,35.67564],[-75.49391,35.6756]],[[-75.49265,35.68305],[-75.49292,35.68302],[-75.49251,35.68283],[-75.49245,35.68296],[-75.49265,35.68305]],[[-75.49654,35.67233],[-75.49569,35.67299],[-75.49566,35.67333],[-75.49686,35.67315],[-75.49644,35.67288],[-75.49654,35.67233]],[[-75.49495,35.67598],[-75.49502,35.67601],[-75.49502,35.67592],[-75.49497,35.67592],[-75.49495,35.67598]],[[-75.49811,35.67195],[-75.49763,35.67125],[-75.4961,35.67232],[-75.49703,35.67186],[-75.49705,35.67299],[-75.49811,35.67195]],[[-75.49905,35.67584],[-75.49874,35.67593],[-75.49888,35.67616],[-75.49918,35.6761],[-75.49905,35.67584]],[[-75.49945,35.67576],[-75.49922,35.67557],[-75.49908,35.67563],[-75.4996,35.67597],[-75.49945,35.67576]],[[-75.49663,35.68723],[-75.49654,35.68717],[-75.49613,35.68721],[-75.49658,35.68733],[-75.49663,35.68723]],[[-75.49605,35.68806],[-75.49604,35.68809],[-75.4961,35.68809],[-75.49608,35.68806],[-75.49605,35.68806]],[[-75.49984,35.67529],[-75.49964,35.67551],[-75.49974,35.67562],[-75.49989,35.6756],[-75.49984,35.67529]],[[-75.49653,35.68763],[-75.4965,35.6876],[-75.49636,35.68762],[-75.49652,35.68766],[-75.49653,35.68763]],[[-75.50021,35.67462],[-75.49994,35.67514],[-75.50002,35.6756],[-75.5006,35.67534],[-75.50021,35.67462]],[[-75.49872,35.69736],[-75.49852,35.69735],[-75.49842,35.69752],[-75.49871,35.69748],[-75.49872,35.69736]],[[-75.50566,35.68866],[-75.50415,35.68896],[-75.50409,35.68906],[-75.50533,35.68944],[-75.50566,35.68866]],[[-75.50516,35.69031],[-75.50533,35.68985],[-75.50467,35.68971],[-75.505,35.6904],[-75.50516,35.69031]],[[-75.506,35.68823],[-75.50585,35.68819],[-75.50555,35.68851],[-75.50597,35.68842],[-75.506,35.68823]],[[-75.50608,35.69033],[-75.5059,35.69035],[-75.50592,35.69051],[-75.50607,35.69042],[-75.50608,35.69033]],[[-75.50858,35.7063],[-75.50836,35.70546],[-75.50615,35.70584],[-75.50692,35.70588],[-75.50858,35.7063]],[[-75.50933,35.70677],[-75.5091,35.70677],[-75.509,35.70678],[-75.50939,35.70697],[-75.50933,35.70677]],[[-75.50954,35.70756],[-75.50941,35.70753],[-75.50938,35.70773],[-75.50942,35.70773],[-75.50954,35.70756]],[[-75.50827,35.7136],[-75.50816,35.71358],[-75.50802,35.71359],[-75.50818,35.71366],[-75.50827,35.7136]],[[-75.50868,35.7138],[-75.5086,35.71378],[-75.50855,35.71378],[-75.50868,35.71382],[-75.50868,35.7138]],[[-75.51427,35.73481],[-75.51408,35.7341],[-75.51168,35.73506],[-75.51297,35.73537],[-75.51427,35.73481]],[[-75.51613,35.73537],[-75.51684,35.73542],[-75.51753,35.73587],[-75.51692,35.73536],[-75.51613,35.73537]],[[-75.52193,35.75361],[-75.51975,35.75231],[-75.51822,35.7525],[-75.52006,35.75263],[-75.52193,35.75361]],[[-75.52357,35.75481],[-75.52357,35.7549],[-75.52373,35.75485],[-75.52365,35.75476],[-75.52357,35.75481]],[[-75.52431,35.75749],[-75.52501,35.75679],[-75.52422,35.75549],[-75.52351,35.75748],[-75.52431,35.75749]],[[-75.52368,35.758],[-75.52342,35.75815],[-75.52403,35.75812],[-75.52395,35.75796],[-75.52368,35.758]]],[[[-75.54439,35.79378],[-75.54277,35.79462],[-75.54494,35.79322],[-75.54282,35.7935],[-75.54347,35.78845],[-75.54166,35.78815],[-75.54089,35.79168],[-75.53845,35.78803],[-75.53943,35.78716],[-75.53805,35.78761],[-75.54049,35.78327],[-75.54367,35.78269],[-75.54412,35.78139],[-75.54202,35.78081],[-75.53771,35.78582],[-75.5374,35.78287],[-75.53809,35.78024],[-75.54374,35.77876],[-75.54668,35.79355],[-75.54365,35.79614],[-75.54439,35.79378]]]]}},{"type":"Feature","properties":{"cmu_name":"U134","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.49029,35.37792],[-76.48258,35.31054],[-76.48479,35.31339],[-76.49042,35.31518],[-76.50943,35.31787],[-76.51102,35.31701],[-76.5104,35.31528],[-76.51502,35.31829],[-76.52419,35.32028],[-76.52561,35.3185],[-76.52892,35.31913],[-76.53802,35.3256],[-76.55973,35.32722],[-76.57128,35.33013],[-76.57323,35.32912],[-76.57648,35.33083],[-76.5821,35.33087],[-76.57472,35.38882],[-76.49029,35.37792]],[[-76.51486,35.3186],[-76.51229,35.31691],[-76.50984,35.31773],[-76.51004,35.31809],[-76.51486,35.3186]]]}},{"type":"Feature","properties":{"cmu_name":"U009","rain_in":1.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-78.22936,33.9268],[-78.22443,33.92929],[-78.20954,33.93088],[-78.21298,33.92046],[-78.21915,33.92432],[-78.22936,33.9268]]]}},{"type":"Feature","properties":{"cmu_name":"U060","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.17754,34.64585],[-77.1762,34.64961],[-77.17064,34.65137],[-77.16993,34.65044],[-77.16333,34.6537],[-77.1518,34.66423],[-77.13402,34.67266],[-77.13303,34.67102],[-77.17979,34.64297],[-77.18071,34.64396],[-77.17754,34.64585]],[[-77.1341,34.67232],[-77.13405,34.67229],[-77.13404,34.67236],[-77.13411,34.67238],[-77.1341,34.67232]]]}},{"type":"Feature","properties":{"cmu_name":"U061","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.13215,34.66963],[-77.11901,34.68248],[-77.1079,34.67595],[-77.09898,34.67317],[-77.09453,34.64981],[-77.09826,34.64629],[-77.10007,34.64594],[-77.10063,34.64731],[-77.10098,34.64615],[-77.09768,34.64396],[-77.12268,34.63778],[-77.12135,34.64088],[-77.12267,34.64285],[-77.12414,34.64188],[-77.12201,34.64093],[-77.12351,34.63825],[-77.12893,34.63711],[-77.12895,34.63898],[-77.12387,34.64284],[-77.12748,34.64462],[-77.13381,34.64082],[-77.13929,34.63951],[-77.15195,34.65323],[-77.15384,34.6585],[-77.13304,34.67103],[-77.13215,34.66963]],[[-77.10218,34.67224],[-77.10104,34.66911],[-77.09889,34.66907],[-77.09935,34.67198],[-77.10218,34.67224]],[[-77.10699,34.67282],[-77.10665,34.67227],[-77.10345,34.67325],[-77.10627,34.6736],[-77.10699,34.67282]],[[-77.11828,34.67561],[-77.11964,34.67369],[-77.11493,34.67],[-77.11757,34.66865],[-77.11625,34.66507],[-77.10605,34.66916],[-77.10571,34.66979],[-77.10605,34.67062],[-77.10775,34.66934],[-77.11536,34.67236],[-77.11828,34.67561]],[[-77.11315,34.67807],[-77.11361,34.67657],[-77.10855,34.67457],[-77.11069,34.67731],[-77.11315,34.67807]],[[-77.11512,34.67884],[-77.11555,34.67866],[-77.11431,34.67791],[-77.11405,34.67867],[-77.11512,34.67884]],[[-77.11739,34.67921],[-77.11651,34.67905],[-77.11617,34.67958],[-77.11702,34.67994],[-77.11739,34.67921]],[[-77.13087,34.64403],[-77.12891,34.64414],[-77.12881,34.64435],[-77.12969,34.64471],[-77.13087,34.64403]],[[-77.13409,34.66891],[-77.13321,34.66928],[-77.13399,34.66998],[-77.13526,34.66904],[-77.13409,34.66891]],[[-77.13495,34.66716],[-77.13435,34.6674],[-77.13603,34.6684],[-77.13632,34.66783],[-77.13495,34.66716]],[[-77.13678,34.66664],[-77.13631,34.66679],[-77.13709,34.66744],[-77.13768,34.66703],[-77.13678,34.66664]],[[-77.13968,34.66571],[-77.13954,34.66581],[-77.13974,34.66604],[-77.13987,34.66586],[-77.13968,34.66571]],[[-77.14028,34.66566],[-77.14469,34.66322],[-77.14499,34.66239],[-77.14072,34.66374],[-77.14028,34.66566]],[[-77.14528,34.66113],[-77.14484,34.66103],[-77.14427,34.66143],[-77.14502,34.6616],[-77.14528,34.66113]],[[-77.14681,34.66172],[-77.14652,34.66121],[-77.14607,34.66121],[-77.14637,34.66194],[-77.14681,34.66172]],[[-77.14741,34.66102],[-77.14944,34.66056],[-77.14955,34.65952],[-77.14688,34.6606],[-77.14741,34.66102]],[[-77.15001,34.6596],[-77.15057,34.65944],[-77.15043,34.65893],[-77.15002,34.6591],[-77.15001,34.6596]],[[-77.15125,34.65898],[-77.15236,34.65891],[-77.15334,34.65827],[-77.1521,34.65742],[-77.15125,34.65898]]]}},{"type":"Feature","properties":{"cmu_name":"U026","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.73229,34.72081],[-76.7244,34.71895],[-76.72474,34.71473],[-76.73532,34.71725],[-76.73429,34.72156],[-76.73229,34.72081]]]}},{"type":"Feature","properties":{"cmu_name":"U027","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.70259,34.70567],[-76.69868,34.70269],[-76.68943,34.70321],[-76.68944,34.70004],[-76.68433,34.69858],[-76.68321,34.69622],[-76.70953,34.69939],[-76.71147,34.70428],[-76.71398,34.7019],[-76.71226,34.70029],[-76.71985,34.6999],[-76.71975,34.70219],[-76.73681,34.71118],[-76.73532,34.71726],[-76.70351,34.70811],[-76.70259,34.70567]]]}},{"type":"Feature","properties":{"cmu_name":"U043","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.47295,34.77384],[-76.4688,34.7793],[-76.4701,34.77857],[-76.46575,34.78137],[-76.45714,34.79668],[-76.45531,34.79713],[-76.45622,34.79825],[-76.45384,34.80271],[-76.45535,34.8051],[-76.45315,34.80371],[-76.45025,34.81336],[-76.43188,34.81051],[-76.48897,34.7381],[-76.52569,34.68516],[-76.52045,34.70303],[-76.50646,34.72582],[-76.50025,34.72934],[-76.48542,34.75543],[-76.47938,34.76349],[-76.47462,34.76687],[-76.47284,34.76997],[-76.47319,34.77364],[-76.47264,34.77479],[-76.47212,34.7754],[-76.47295,34.77384]]]}},{"type":"Feature","properties":{"cmu_name":"U062","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-77.11938,34.68209],[-77.13081,34.67091],[-77.13137,34.67148],[-77.13288,34.67076],[-77.13178,34.67873],[-77.12521,34.68309],[-77.11938,34.68209]],[[-77.12215,34.68149],[-77.12156,34.68106],[-77.12112,34.68119],[-77.12167,34.68206],[-77.12215,34.68149]],[[-77.12617,34.68104],[-77.12669,34.68146],[-77.12701,34.68134],[-77.1267,34.68079],[-77.12617,34.68104]],[[-77.12868,34.67829],[-77.12737,34.67833],[-77.1272,34.68047],[-77.12863,34.68054],[-77.12868,34.67829]],[[-77.12999,34.67503],[-77.12935,34.67536],[-77.13016,34.67701],[-77.13075,34.67627],[-77.12999,34.67503]],[[-77.13118,34.67233],[-77.13032,34.67279],[-77.13088,34.67354],[-77.13125,34.67342],[-77.13118,34.67233]]],[[[-77.13171,34.6705],[-77.13119,34.67054],[-77.13216,34.6696],[-77.13247,34.67087],[-77.13171,34.6705]]]]}},{"type":"Feature","properties":{"cmu_name":"U106","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.54706,34.69831],[-76.5491,34.69631],[-76.55093,34.69647],[-76.54997,34.6981],[-76.5513,34.69643],[-76.55152,34.69807],[-76.55233,34.6963],[-76.55502,34.69675],[-76.5552,34.69989],[-76.558,34.70178],[-76.55972,34.70047],[-76.56418,34.70197],[-76.56242,34.70537],[-76.56388,34.70563],[-76.56098,34.70954],[-76.56772,34.71232],[-76.57827,34.71324],[-76.57467,34.72182],[-76.5654,34.72375],[-76.56228,34.72274],[-76.55287,34.72583],[-76.54846,34.72377],[-76.54512,34.72389],[-76.54283,34.72592],[-76.54298,34.72442],[-76.54754,34.72295],[-76.54311,34.71993],[-76.5422,34.72099],[-76.54174,34.71945],[-76.53311,34.72313],[-76.52132,34.72113],[-76.51867,34.71862],[-76.51317,34.71994],[-76.50669,34.7255],[-76.52051,34.70275],[-76.52,34.70449],[-76.52531,34.70427],[-76.52052,34.70737],[-76.52157,34.70917],[-76.54635,34.71011],[-76.54551,34.70818],[-76.54798,34.70795],[-76.54554,34.70268],[-76.54653,34.7018],[-76.54282,34.70043],[-76.53757,34.70157],[-76.5296,34.69913],[-76.52836,34.70195],[-76.52232,34.70116],[-76.52055,34.70262],[-76.5257,34.68518],[-76.52525,34.68974],[-76.52681,34.69237],[-76.52845,34.6917],[-76.52807,34.69319],[-76.52905,34.6922],[-76.53365,34.69422],[-76.54316,34.69525],[-76.5414,34.69759],[-76.544,34.69604],[-76.54328,34.69828],[-76.54482,34.69525],[-76.54367,34.69836],[-76.5454,34.69608],[-76.54421,34.69864],[-76.54737,34.696],[-76.54706,34.69831]],[[-76.52297,34.71343],[-76.52301,34.71238],[-76.52147,34.71201],[-76.52134,34.71246],[-76.52297,34.71343]]]}},{"type":"Feature","properties":{"cmu_name":"U122","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.15202,34.98132],[-76.24396,34.99697],[-76.25267,35.00104],[-76.27505,35.00524],[-76.04803,35.09877],[-76.01481,35.07041],[-76.0129,35.07048],[-76.01037,35.06756],[-76.00582,35.06895],[-76.00501,35.06752],[-76.01027,35.06671],[-76.01335,35.06951],[-76.00979,35.06565],[-76.03269,35.05982],[-76.0312,35.0631],[-76.04127,35.06769],[-76.03937,35.06501],[-76.03466,35.06464],[-76.03518,35.06067],[-76.03857000000001,35.0612],[-76.04404,35.0552],[-76.05124,35.05148],[-76.05177,35.05416],[-76.05311,35.0539],[-76.05419,35.05015],[-76.06952,35.04234],[-76.10671,35.01504],[-76.11658,35.00941],[-76.12385,35.00287],[-76.1275,35.00334],[-76.12594,35.00107],[-76.12911,35.00142],[-76.13384,34.99629],[-76.13894,34.99397],[-76.15202,34.98132]],[[-76.03688,35.06198],[-76.03588,35.06234],[-76.03561,35.06361],[-76.03658,35.06301],[-76.03688,35.06198]],[[-76.03791,35.06296],[-76.04014,35.06117],[-76.03936,35.06239],[-76.04091,35.06218],[-76.04153,35.06061],[-76.04044,35.06007],[-76.03791,35.06296]],[[-76.03792,35.06301],[-76.03796,35.0636],[-76.04217,35.06731],[-76.04686,35.07086],[-76.05269,35.07266],[-76.0489,35.06873],[-76.04473,35.0677],[-76.04241,35.06472],[-76.03792,35.06301]],[[-76.04075,35.06241],[-76.04037,35.06262],[-76.04075,35.06282],[-76.04112,35.06246],[-76.04075,35.06241]],[[-76.04075,35.06315],[-76.04086,35.06329],[-76.04137,35.0631],[-76.04114,35.06306],[-76.04075,35.06315]],[[-76.04247,35.05833],[-76.04199,35.05862],[-76.04194,35.0592],[-76.04238,35.059],[-76.04247,35.05833]],[[-76.04272,35.05711],[-76.04271,35.05703],[-76.04261,35.05713],[-76.04269,35.05715],[-76.04272,35.05711]],[[-76.04148,35.06328],[-76.04106,35.06351],[-76.04126,35.06379],[-76.04192,35.06333],[-76.04148,35.06328]],[[-76.04318,35.05697],[-76.04301,35.05699],[-76.04301,35.05714],[-76.04315,35.05716],[-76.04318,35.05697]],[[-76.04348,35.0574],[-76.04342,35.05724],[-76.04321,35.05739],[-76.04333,35.05748],[-76.04348,35.0574]],[[-76.0437,35.05677],[-76.0438,35.05674],[-76.0438,35.05672],[-76.04359,35.05678],[-76.0437,35.05677]],[[-76.04451,35.05646],[-76.04419,35.0563],[-76.04425,35.05594],[-76.04395,35.0564],[-76.04451,35.05646]],[[-76.04463,35.05683],[-76.0446,35.05679],[-76.04455,35.0568],[-76.04455,35.05685],[-76.04463,35.05683]],[[-76.04523,35.05527],[-76.0452,35.05524],[-76.04507,35.05528],[-76.04509,35.05533],[-76.04523,35.05527]],[[-76.04484,35.0574],[-76.04494,35.05737],[-76.04496,35.05726],[-76.04483,35.05726],[-76.04484,35.0574]],[[-76.04577,35.05564],[-76.04568,35.05552],[-76.04551,35.05545],[-76.04559,35.05573],[-76.04577,35.05564]],[[-76.04588,35.05556],[-76.04599,35.0556],[-76.04602,35.05554],[-76.04591,35.05548],[-76.04588,35.05556]],[[-76.06521,35.07281],[-76.0698,35.07019],[-76.06992,35.06831],[-76.06899,35.06848],[-76.06918,35.06758],[-76.06736,35.06753],[-76.06678,35.06702],[-76.06686,35.06676],[-76.06748,35.06748],[-76.06773,35.0661],[-76.07154,35.06682],[-76.07351,35.0651],[-76.07192,35.06357],[-76.07303,35.06313],[-76.0705,35.0623],[-76.07005,35.06191],[-76.07231,35.06273],[-76.07124,35.06098],[-76.07463,35.06319],[-76.0742,35.06088],[-76.07046,35.05896],[-76.06467,35.0627],[-76.0561,35.06388],[-76.05432,35.06575],[-76.0555,35.06527],[-76.05371,35.06769],[-76.05438,35.06979],[-76.05626,35.07036],[-76.05706,35.06904],[-76.05794,35.07162],[-76.05762,35.06956],[-76.06029,35.07111],[-76.06221,35.06986],[-76.06329,35.06958],[-76.06081,35.07167],[-76.06521,35.07281]],[[-76.05663,35.07125],[-76.05684,35.07127],[-76.05675,35.07106],[-76.05662,35.07113],[-76.05663,35.07125]],[[-76.06546,35.0448],[-76.0654,35.04475],[-76.0653,35.04477],[-76.06536,35.04481],[-76.06546,35.0448]],[[-76.05874,35.07095],[-76.05872,35.07083],[-76.05852,35.07082],[-76.05852,35.07095],[-76.05874,35.07095]],[[-76.05918,35.07097],[-76.05901,35.07093],[-76.05898,35.07099],[-76.05917,35.07103],[-76.05918,35.07097]],[[-76.06625,35.04509],[-76.06594,35.04495],[-76.06587,35.04504],[-76.06593,35.04512],[-76.06625,35.04509]],[[-76.05921,35.07142],[-76.05915,35.07141],[-76.05905,35.07146],[-76.05916,35.07149],[-76.05921,35.07142]],[[-76.0665,35.0448],[-76.06675,35.04479],[-76.06675,35.04468],[-76.06652,35.04472],[-76.0665,35.0448]],[[-76.06839,35.06727],[-76.06838,35.06724],[-76.06832,35.06722],[-76.06834,35.06728],[-76.06839,35.06727]],[[-76.06945,35.07719],[-76.06616,35.07705],[-76.06595,35.07719],[-76.06778,35.07788],[-76.06945,35.07719]],[[-76.06996,35.06726],[-76.07019,35.06683],[-76.06887,35.06663],[-76.06994,35.06786],[-76.06996,35.06726]],[[-76.07262,35.06837],[-76.07156,35.06814],[-76.07284,35.06665],[-76.07054,35.06733],[-76.07112,35.06831],[-76.06989,35.07113],[-76.06846,35.07147],[-76.0689,35.07204],[-76.0714,35.0715],[-76.07121,35.07053],[-76.07176,35.06975],[-76.07223,35.07087],[-76.07262,35.06837]],[[-76.07753,35.06324],[-76.07835,35.06354],[-76.07903,35.06327],[-76.07802,35.06163],[-76.08094,35.0616],[-76.08138,35.05946],[-76.07954,35.06015],[-76.08039,35.05877],[-76.0842,35.05892],[-76.08409,35.05769],[-76.08541,35.05703],[-76.08288,35.05586],[-76.08071,35.05668],[-76.08256,35.05547],[-76.07996,35.05485],[-76.07932,35.05651],[-76.07803,35.05703],[-76.07985,35.05471],[-76.07865,35.05405],[-76.07293,35.0575],[-76.07753,35.06324]],[[-76.06946,35.07121],[-76.06948,35.07111],[-76.06941,35.07119],[-76.06946,35.07121]],[[-76.07052,35.06716],[-76.07056,35.0672],[-76.07074,35.06717],[-76.07066,35.06705],[-76.07052,35.06716]],[[-76.07057,35.06808],[-76.07047,35.06808],[-76.07045,35.0682],[-76.07053,35.06821],[-76.07057,35.06808]],[[-76.06972,35.07107],[-76.06971,35.07112],[-76.06981,35.07104],[-76.06978,35.07103],[-76.06972,35.07107]],[[-76.07218,35.06773],[-76.07223,35.06774],[-76.07222,35.06767],[-76.07218,35.06767],[-76.07218,35.06773]],[[-76.07241,35.07133],[-76.07206,35.07131],[-76.07114,35.07193],[-76.07249,35.07195],[-76.07241,35.07133]],[[-76.07255,35.06786],[-76.07262,35.06789],[-76.07261,35.06781],[-76.07253,35.06782],[-76.07255,35.06786]],[[-76.07264,35.06837],[-76.07297,35.06842],[-76.07305,35.06764],[-76.07265,35.06773],[-76.07264,35.06837]],[[-76.0726,35.06896],[-76.07264,35.06898],[-76.07266,35.06894],[-76.0726,35.06896]],[[-76.07299,35.06896],[-76.07271,35.06922],[-76.07324,35.06983],[-76.07326,35.06933],[-76.07299,35.06896]],[[-76.07238,35.07061],[-76.07241,35.07061],[-76.07245,35.0705],[-76.07237,35.07055],[-76.07238,35.07061]],[[-76.07521,35.06564],[-76.07318,35.06806],[-76.07347,35.0697],[-76.07268,35.07103],[-76.07603,35.06644],[-76.07521,35.06564]],[[-76.07312,35.06825],[-76.07313,35.06827],[-76.07313,35.06824],[-76.07312,35.06825]],[[-76.07338,35.06727],[-76.07352,35.06762],[-76.07386,35.06689],[-76.07372,35.06688],[-76.07338,35.06727]],[[-76.07312,35.06846],[-76.07316,35.06845],[-76.07315,35.06843],[-76.07313,35.06842],[-76.07312,35.06846]],[[-76.07173,35.07522],[-76.07144,35.07569],[-76.07165,35.07582],[-76.07194,35.0754],[-76.07173,35.07522]],[[-76.07685,35.06789],[-76.07511,35.06795],[-76.07527,35.07009],[-76.07263,35.07123],[-76.07546,35.07057],[-76.07685,35.06789]],[[-76.07437,35.06973],[-76.07424,35.06963],[-76.07414,35.06966],[-76.0742,35.06978],[-76.07437,35.06973]],[[-76.07443,35.06948],[-76.0743,35.06945],[-76.07427,35.06957],[-76.07435,35.06959],[-76.07443,35.06948]],[[-76.07514,35.06731],[-76.07508,35.06729],[-76.07509,35.06735],[-76.07512,35.06735],[-76.07514,35.06731]],[[-76.08127,35.05388],[-76.08204,35.05421],[-76.08161,35.05394],[-76.08191,35.05364],[-76.08307,35.05327],[-76.08258,35.05264],[-76.0851,35.05211],[-76.0861,35.0506],[-76.08376,35.05046],[-76.08375,35.04833],[-76.0793,35.05217],[-76.08095,35.05393],[-76.081,35.05111],[-76.08127,35.05388]],[[-76.07711,35.06677],[-76.07709,35.06721],[-76.07721,35.06749],[-76.07733,35.06651],[-76.07711,35.06677]],[[-76.08101,35.05473],[-76.08073,35.05459],[-76.08063,35.05464],[-76.08098,35.0549],[-76.08101,35.05473]],[[-76.08684,35.05308],[-76.08695,35.05344],[-76.08497,35.05379],[-76.08591,35.05389],[-76.08544,35.05532],[-76.08499,35.05481],[-76.08492,35.05442],[-76.08514,35.05426],[-76.08398,35.05405],[-76.08547,35.05336],[-76.08192,35.05387],[-76.08328,35.05388],[-76.08458,35.05439],[-76.0856,35.05549],[-76.08605,35.05415],[-76.08696,35.05389],[-76.08784,35.0525],[-76.08774,35.05233],[-76.08684,35.05308]],[[-76.08682,35.05307],[-76.08687,35.05291],[-76.0866,35.05318],[-76.08672,35.05312],[-76.08682,35.05307]],[[-76.08055,35.05963],[-76.08058,35.05963],[-76.0806,35.05959],[-76.08056,35.05959],[-76.08055,35.05963]],[[-76.08597,35.0476],[-76.08647,35.04581],[-76.08428,35.04557],[-76.08483,35.04777],[-76.08597,35.0476]],[[-76.08077,35.05952],[-76.08083,35.05953],[-76.08087,35.05949],[-76.0808,35.05948],[-76.08077,35.05952]],[[-76.08277,35.0541],[-76.08235,35.05414],[-76.08232,35.05427],[-76.08272,35.05426],[-76.08277,35.0541]],[[-76.0842,35.05465],[-76.08463,35.05459],[-76.08332,35.05428],[-76.0829,35.05405],[-76.0828,35.05439],[-76.0842,35.05465]],[[-76.08446,35.05289],[-76.08366,35.05282],[-76.08376,35.05337],[-76.08479,35.05338],[-76.08446,35.05289]],[[-76.08476,35.04989],[-76.08476,35.05034],[-76.08515,35.05052],[-76.08513,35.05009],[-76.08476,35.04989]],[[-76.08781,35.04513],[-76.0901,35.04446],[-76.0882,35.04157],[-76.08723,35.04244],[-76.08781,35.04513]],[[-76.09168,35.02757],[-76.0922,35.02735],[-76.09213,35.02697],[-76.09129,35.02772],[-76.09168,35.02757]],[[-76.08558,35.0546],[-76.08552,35.05444],[-76.08506,35.05449],[-76.08523,35.05467],[-76.08558,35.0546]],[[-76.09266,35.02682],[-76.09278,35.0267],[-76.09266,35.02663],[-76.09253,35.02679],[-76.09266,35.02682]],[[-76.09297,35.02652],[-76.09329,35.02647],[-76.09363,35.02584],[-76.0929,35.02645],[-76.09297,35.02652]],[[-76.08495,35.05748],[-76.08513,35.0575],[-76.08517,35.05724],[-76.08505,35.05724],[-76.08495,35.05748]],[[-76.08675,35.05276],[-76.08671,35.05266],[-76.08663,35.05263],[-76.08665,35.05276],[-76.08675,35.05276]],[[-76.09075,35.04193],[-76.0923,35.04055],[-76.09228,35.04391],[-76.09513,35.04116],[-76.09417,35.04088],[-76.09177,35.03916],[-76.09075,35.04193]],[[-76.09491,35.02508],[-76.09481,35.025],[-76.09474,35.02517],[-76.09484,35.02516],[-76.09491,35.02508]],[[-76.09586,35.02429],[-76.0957,35.02434],[-76.09577,35.02446],[-76.0959,35.02441],[-76.09586,35.02429]],[[-76.09315,35.03918],[-76.09341,35.03905],[-76.09318,35.03848],[-76.09301,35.03857],[-76.09315,35.03918]],[[-76.09357,35.03915],[-76.09411,35.04056],[-76.0947,35.03898],[-76.09782,35.04014],[-76.0955,35.0378],[-76.0935,35.03801],[-76.09357,35.03915]],[[-76.09781,35.02326],[-76.09758,35.02306],[-76.09745,35.02305],[-76.09744,35.02311],[-76.09781,35.02326]],[[-76.09788,35.02322],[-76.09796,35.02316],[-76.09787,35.0231],[-76.09782,35.02312],[-76.09788,35.02322]],[[-76.09804,35.0229],[-76.0979,35.02287],[-76.0979,35.02296],[-76.09802,35.02299],[-76.09804,35.0229]],[[-76.09898,35.02232],[-76.09873,35.0223],[-76.09843,35.02257],[-76.09897,35.02237],[-76.09898,35.02232]],[[-76.09591,35.03757],[-76.09626,35.03772],[-76.0951,35.03716],[-76.09513,35.03725],[-76.09591,35.03757]],[[-76.09707,35.03664],[-76.09649,35.03596],[-76.09586,35.0358],[-76.09617,35.03642],[-76.09707,35.03664]],[[-76.10071,35.02103],[-76.10046,35.02107],[-76.10014,35.02129],[-76.10052,35.02139],[-76.10071,35.02103]],[[-76.09731,35.03582],[-76.10031,35.03445],[-76.09809,35.03256],[-76.09691,35.03383],[-76.09731,35.03582]],[[-76.10099,35.02076],[-76.10092,35.02072],[-76.10082,35.02078],[-76.10102,35.02086],[-76.10099,35.02076]],[[-76.10204,35.02],[-76.1017,35.02004],[-76.10168,35.02011],[-76.10187,35.02014],[-76.10204,35.02]],[[-76.10374,35.01905],[-76.10389,35.01841],[-76.10263,35.01955],[-76.10286,35.01961],[-76.10374,35.01905]],[[-76.09884,35.03621],[-76.10008,35.03665],[-76.10035,35.03662],[-76.09943,35.03581],[-76.09884,35.03621]],[[-76.10136,35.03257],[-76.10343,35.03273],[-76.10085,35.03018],[-76.10028,35.03084],[-76.10136,35.03257]],[[-76.10078,35.03273],[-76.10108,35.03259],[-76.10017,35.03158],[-76.10006,35.03196],[-76.10078,35.03273]],[[-76.10435,35.01848],[-76.1052,35.01795],[-76.1052,35.01783],[-76.10437,35.01812],[-76.10435,35.01848]],[[-76.10106,35.03453],[-76.10065,35.03432],[-76.10019,35.03566],[-76.10131,35.03531],[-76.10106,35.03453]],[[-76.10557,35.01755],[-76.10532,35.01757],[-76.1053,35.01776],[-76.10554,35.01768],[-76.10557,35.01755]],[[-76.10381,35.03157],[-76.10313,35.03083],[-76.10426,35.03153],[-76.10516,35.03154],[-76.10397,35.03037],[-76.10672,35.03181],[-76.1074,35.03083],[-76.10854,35.03068],[-76.10853,35.03012],[-76.10326,35.02787],[-76.10252,35.02925],[-76.10292,35.03081],[-76.10381,35.03157]],[[-76.10646,35.01674],[-76.10617,35.01682],[-76.10614,35.01718],[-76.1064,35.01697],[-76.10646,35.01674]],[[-76.10201,35.03737],[-76.10385,35.03659],[-76.10229,35.03508],[-76.10138,35.0363],[-76.10201,35.03737]],[[-76.10709,35.01612],[-76.10699,35.01609],[-76.1067,35.01654],[-76.10715,35.01633],[-76.10709,35.01612]],[[-76.10441,35.02777],[-76.10465,35.02748],[-76.10416,35.0271],[-76.10383,35.02745],[-76.10441,35.02777]],[[-76.10261,35.03287],[-76.10243,35.03273],[-76.10239,35.03303],[-76.10258,35.03309],[-76.10261,35.03287]],[[-76.10194,35.03496],[-76.10223,35.03498],[-76.10227,35.0349],[-76.10196,35.0348],[-76.10194,35.03496]],[[-76.10751,35.01599],[-76.10931,35.01541],[-76.10905,35.01452],[-76.10725,35.01553],[-76.10751,35.01599]],[[-76.10504,35.02708],[-76.10589,35.0287],[-76.10767,35.02851],[-76.1062,35.02648],[-76.10467,35.02615],[-76.10504,35.02708]],[[-76.107,35.02629],[-76.1102,35.02783],[-76.11125,35.0259],[-76.11255,35.02483],[-76.10955,35.02444],[-76.10718,35.02237],[-76.10569,35.0242],[-76.10625,35.02558],[-76.10679,35.02384],[-76.107,35.02629]],[[-76.10575,35.02559],[-76.10546,35.02529],[-76.10541,35.02527],[-76.1057,35.02584],[-76.10575,35.02559]],[[-76.10513,35.02752],[-76.10486,35.02763],[-76.10525,35.02815],[-76.10529,35.0279],[-76.10513,35.02752]],[[-76.10715,35.03334],[-76.10566,35.03207],[-76.10592,35.03184],[-76.10517,35.03206],[-76.1052,35.03295],[-76.10437,35.03219],[-76.10609,35.03412],[-76.10837,35.0346],[-76.10715,35.03334]],[[-76.10668,35.02641],[-76.10678,35.0263],[-76.10648,35.02599],[-76.10637,35.02613],[-76.10668,35.02641]],[[-76.10962,35.01475],[-76.10992,35.01467],[-76.10948,35.01436],[-76.1095,35.0146],[-76.10962,35.01475]],[[-76.10998,35.02437],[-76.11302,35.0242],[-76.1103,35.02392],[-76.1099,35.0226],[-76.1125,35.02319],[-76.11389,35.021],[-76.1119,35.01977],[-76.11168,35.01686],[-76.10778,35.0214],[-76.10998,35.02437]],[[-76.10474,35.03767],[-76.10484,35.03748],[-76.10466,35.03726],[-76.10449,35.03763],[-76.10474,35.03767]],[[-76.10846,35.02762],[-76.10801,35.02732],[-76.10752,35.02726],[-76.108,35.02765],[-76.10846,35.02762]],[[-76.10648,35.03257],[-76.10664,35.03235],[-76.10632,35.03218],[-76.10629,35.03229],[-76.10648,35.03257]],[[-76.10766,35.02802],[-76.10755,35.02816],[-76.10786,35.02848],[-76.10785,35.02822],[-76.10766,35.02802]],[[-76.11153,35.01342],[-76.1119,35.01314],[-76.11191,35.01307],[-76.11154,35.0132],[-76.11153,35.01342]],[[-76.11112,35.01583],[-76.11105,35.01595],[-76.11116,35.01607],[-76.11117,35.01594],[-76.11112,35.01583]],[[-76.10765,35.03281],[-76.10704,35.03244],[-76.10677,35.03236],[-76.10843,35.0333],[-76.10765,35.03281]],[[-76.10915,35.03041],[-76.10732,35.03131],[-76.10859,35.03274],[-76.11054,35.03134],[-76.10915,35.03041]],[[-76.11162,35.0157],[-76.11149,35.01573],[-76.11152,35.01586],[-76.11165,35.01585],[-76.11162,35.0157]],[[-76.1124,35.0139],[-76.11241,35.01362],[-76.11226,35.01344],[-76.11212,35.01355],[-76.1124,35.0139]],[[-76.11295,35.01231],[-76.11286,35.01236],[-76.11304,35.01251],[-76.11307,35.0124],[-76.11295,35.01231]],[[-76.10861,35.02852],[-76.10966,35.02895],[-76.11167,35.02887],[-76.10896,35.02865],[-76.10861,35.02852]],[[-76.10692,35.03689],[-76.10674,35.03763],[-76.10729,35.038],[-76.10839,35.038],[-76.10692,35.03689]],[[-76.11288,35.01341],[-76.11279,35.01334],[-76.11274,35.01334],[-76.11273,35.01341],[-76.11288,35.01341]],[[-76.11238,35.01672],[-76.113,35.01691],[-76.11291,35.01627],[-76.11201,35.01663],[-76.11238,35.01672]],[[-76.11471,35.01977],[-76.11357,35.01764],[-76.11236,35.01741],[-76.11274,35.01963],[-76.11471,35.01977]],[[-76.11398,35.01342],[-76.11379,35.01337],[-76.11376,35.01346],[-76.11408,35.01351],[-76.11398,35.01342]],[[-76.11416,35.01417],[-76.1143,35.01395],[-76.11417,35.01384],[-76.11385,35.01424],[-76.11416,35.01417]],[[-76.11083,35.03164],[-76.10943,35.03265],[-76.10938,35.03303],[-76.10993,35.03327],[-76.11017,35.03318],[-76.11083,35.03164]],[[-76.11296,35.02472],[-76.1118,35.02601],[-76.11133,35.02604],[-76.11141,35.02709],[-76.11296,35.02472]],[[-76.11288,35.02322],[-76.11304,35.02325],[-76.11339,35.02309],[-76.11308,35.02309],[-76.11288,35.02322]],[[-76.11332,35.02217],[-76.11316,35.02221],[-76.1133,35.02236],[-76.11332,35.02217]],[[-76.11268,35.02479],[-76.11267,35.02474],[-76.11262,35.02475],[-76.11262,35.02479],[-76.11268,35.02479]],[[-76.11133,35.03026],[-76.1127,35.03035],[-76.11329,35.02971],[-76.11156,35.0296],[-76.11133,35.03026]],[[-76.11333,35.02746],[-76.11244,35.0277],[-76.1119,35.0281],[-76.11302,35.02805],[-76.11333,35.02746]],[[-76.114,35.02132],[-76.11351,35.02228],[-76.11427,35.02256],[-76.11436,35.02246],[-76.114,35.02132]],[[-76.11518,35.01613],[-76.11528,35.01621],[-76.1152,35.01578],[-76.11516,35.01587],[-76.11518,35.01613]],[[-76.11769,35.01775],[-76.11516,35.01782],[-76.11829,35.02228],[-76.11842,35.01961],[-76.11769,35.01775]],[[-76.1162,35.01618],[-76.11705,35.01706],[-76.11789,35.01729],[-76.11669,35.01525],[-76.1162,35.01618]],[[-76.11726,35.01744],[-76.11617,35.01662],[-76.11609,35.01663],[-76.1166,35.01769],[-76.11726,35.01744]],[[-76.11861,35.00965],[-76.11878,35.00944],[-76.11852,35.00909],[-76.11827,35.00944],[-76.11861,35.00965]],[[-76.11901,35.00836],[-76.11892,35.00834],[-76.11873,35.00842],[-76.11883,35.00845],[-76.11901,35.00836]],[[-76.12155,35.00588],[-76.12144,35.00587],[-76.12141,35.00604],[-76.12154,35.00595],[-76.12155,35.00588]],[[-76.12208,35.00562],[-76.12222,35.00534],[-76.12223,35.00519],[-76.12171,35.00562],[-76.12208,35.00562]],[[-76.11887,35.02119],[-76.11911,35.02115],[-76.11875,35.02055],[-76.11869,35.02069],[-76.11887,35.02119]],[[-76.12386,35.00401],[-76.1237,35.00399],[-76.12367,35.00417],[-76.12389,35.00407],[-76.12386,35.00401]],[[-76.1242,35.00383],[-76.12404,35.0038],[-76.12402,35.00392],[-76.12413,35.00393],[-76.1242,35.00383]],[[-76.12676,35.01362],[-76.12737,35.01306],[-76.12842,35.01305],[-76.12643,35.01125],[-76.12676,35.01362]],[[-76.12566,35.01487],[-76.126,35.01456],[-76.12548,35.01424],[-76.1254,35.0145],[-76.12566,35.01487]],[[-76.12939,35.01097],[-76.12881,35.01158],[-76.12839,35.01166],[-76.12997,35.01296],[-76.12941,35.01005],[-76.12746,35.01041],[-76.12939,35.01097]],[[-76.12769,35.01315],[-76.12701,35.01392],[-76.12818,35.01427],[-76.12848,35.0137],[-76.12769,35.01315]],[[-76.13191,34.9991],[-76.13177,34.99911],[-76.1316,34.99926],[-76.13187,34.99922],[-76.13191,34.9991]],[[-76.13052,35.00989],[-76.13187,35.0123],[-76.1333,35.01263],[-76.13434,35.01116],[-76.13199,35.00791],[-76.12998,35.00836],[-76.13052,35.00989]],[[-76.13663,34.99596],[-76.13759,34.99565],[-76.13774,34.99528],[-76.13538,34.99613],[-76.13663,34.99596]],[[-76.13672,35.00316],[-76.13555,35.00529],[-76.138,35.00598],[-76.1391,35.0047],[-76.13676,35.00502],[-76.13681,35.00401],[-76.14124,35.00239],[-76.13893,35.00101],[-76.13672,35.00316]],[[-76.13684,35.00239],[-76.13667,35.00234],[-76.13656,35.00265],[-76.13675,35.00269],[-76.13684,35.00239]],[[-76.14056,35.00178],[-76.14291,35.00179],[-76.14009,34.99974],[-76.13935,35.00076],[-76.14056,35.00178]],[[-76.14029,35.00647],[-76.13868,35.00574],[-76.13821,35.0062],[-76.13946,35.00692],[-76.14029,35.00647]],[[-76.13898,35.00413],[-76.13883,35.00421],[-76.13919,35.00441],[-76.13917,35.00424],[-76.13898,35.00413]],[[-76.13891,35.00568],[-76.13877,35.00572],[-76.13919,35.00586],[-76.13905,35.00572],[-76.13891,35.00568]],[[-76.14276,35.00008],[-76.14221,34.99824],[-76.14086,34.99891],[-76.14138,34.99959],[-76.14276,35.00008]],[[-76.14058,35.00511],[-76.13954,35.00489],[-76.13915,35.0056],[-76.14115,35.00616],[-76.14058,35.00511]],[[-76.14198,35.00363],[-76.14181,35.00266],[-76.13954,35.00444],[-76.14064,35.00466],[-76.14198,35.00363]],[[-76.14052,35.00312],[-76.1403,35.00309],[-76.13998,35.00319],[-76.14021,35.00322],[-76.14052,35.00312]],[[-76.14085,35.00286],[-76.14062,35.00285],[-76.14042,35.00292],[-76.14081,35.00299],[-76.14085,35.00286]],[[-76.14137,35.00187],[-76.14142,35.00269],[-76.14359,35.00249],[-76.14347,35.00207],[-76.14137,35.00187]],[[-76.1437,34.99981],[-76.14566,34.99847],[-76.14456,34.99766],[-76.14424,34.9985],[-76.14346,34.9987],[-76.14288,34.99836],[-76.14401,34.99699],[-76.14519,34.99781],[-76.14381,34.99652],[-76.14235,34.99796],[-76.1437,34.99981]],[[-76.14154,35.00456],[-76.14129,35.00458],[-76.14093,35.00491],[-76.14149,35.00509],[-76.14154,35.00456]],[[-76.14419,34.99988],[-76.14469,34.99987],[-76.14309,35.00018],[-76.14462,35.0002],[-76.1448,34.99944],[-76.14419,34.99988]],[[-76.14373,35.00249],[-76.14321,35.0029],[-76.1423,35.00322],[-76.1434,35.00345],[-76.14254,35.0037],[-76.14219,35.00425],[-76.14392,35.00329],[-76.14373,35.00249]],[[-76.14604,34.99732],[-76.14789,34.99636],[-76.14582,34.99435],[-76.14439,34.99594],[-76.14604,34.99732]],[[-76.14393,35.00125],[-76.14398,35.00127],[-76.14404,35.00119],[-76.14393,35.00115],[-76.14393,35.00125]],[[-76.14885,34.99577],[-76.15023,34.99551],[-76.14836,34.99409],[-76.15005,34.99499],[-76.14621,34.99277],[-76.14885,34.99577]],[[-76.14857,34.99361],[-76.15127,34.99475],[-76.1517,34.99331],[-76.14907,34.99235],[-76.15264,34.99294],[-76.14899,34.99008],[-76.14732,34.9926],[-76.14857,34.99361]],[[-76.14624,34.99897],[-76.14638,34.99894],[-76.14623,34.99882],[-76.1462,34.99884],[-76.14624,34.99897]],[[-76.14743,34.99716],[-76.14701,34.99735],[-76.14729,34.99772],[-76.14762,34.99752],[-76.14743,34.99716]],[[-76.14807,34.99649],[-76.14773,34.99686],[-76.14849,34.99715],[-76.14853,34.99677],[-76.14807,34.99649]],[[-76.15102,34.99146],[-76.15321,34.99154],[-76.1499,34.98943],[-76.14965,34.99004],[-76.15102,34.99146]],[[-76.1483,34.99738],[-76.14842,34.99736],[-76.14823,34.99727],[-76.14822,34.9973],[-76.1483,34.99738]],[[-76.1492,34.99579],[-76.14918,34.99622],[-76.14993,34.99644],[-76.15015,34.99585],[-76.1492,34.99579]],[[-76.14912,34.99662],[-76.14899,34.99661],[-76.14943,34.9968],[-76.14943,34.99677],[-76.14912,34.99662]],[[-76.15017,34.99516],[-76.15019,34.99518],[-76.15021,34.99516],[-76.15019,34.99513],[-76.15017,34.99516]],[[-76.15024,34.9965],[-76.15053,34.99643],[-76.15046,34.99608],[-76.1502,34.99638],[-76.15024,34.9965]],[[-76.15032,34.99663],[-76.15029,34.99672],[-76.15043,34.99675],[-76.15048,34.99662],[-76.15032,34.99663]],[[-76.15109,34.99525],[-76.15106,34.99516],[-76.15096,34.99516],[-76.15103,34.99526],[-76.15109,34.99525]]]}},{"type":"Feature","properties":{"cmu_name":"U030","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.31481,35.01237],[-76.31188,35.0128],[-76.31139,35.01496],[-76.29636,35.00952],[-76.29312,35.0096],[-76.29414,35.00739],[-76.29269,35.00899],[-76.28896,35.00863],[-76.28646,35.00807],[-76.28731,35.00708],[-76.28262,35.00721],[-76.27776,35.00413],[-76.27843,34.99882],[-76.27422,34.99303],[-76.27631,34.99316],[-76.27576,34.99041],[-76.26254,34.97499],[-76.27937,34.94117],[-76.31448,34.95774],[-76.30818,34.97155],[-76.30888,34.96834],[-76.30563,34.96368],[-76.30182,34.96376],[-76.30108,34.96148],[-76.29897,34.96164],[-76.29742,34.95923],[-76.29694,34.96159],[-76.28901,34.95557],[-76.28601,34.9513],[-76.27965,34.95112],[-76.27628,34.95587],[-76.27708,34.96038],[-76.29326,34.97117],[-76.29891,34.98347],[-76.3052,34.99055],[-76.3039,34.99151],[-76.30791,34.99356],[-76.30729,34.9957],[-76.3126,35.00619],[-76.31161,35.00754],[-76.31478,35.00918],[-76.31481,35.01237]]]}},{"type":"Feature","properties":{"cmu_name":"U121","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.53692,35.1503],[-76.27127,35.30956],[-76.26868,35.30932],[-76.04802,35.09876],[-76.276,35.0052],[-76.29647,35.01034],[-76.30729,35.01456],[-76.30639,35.01699],[-76.31156,35.01969],[-76.31019,35.02062],[-76.31475,35.01905],[-76.31811,35.01955],[-76.32938,35.0229],[-76.33239,35.02558],[-76.35218,35.03395],[-76.36173,35.03588],[-76.36732,35.03484],[-76.46415,35.07596],[-76.47561,35.11034],[-76.53692,35.1503]],[[-76.06868,35.09786],[-76.06866,35.0978],[-76.06864,35.09786],[-76.06868,35.09786]]]}},{"type":"Feature","properties":{"cmu_name":"U029","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.32711,34.94419],[-76.31447,34.95775],[-76.27936,34.94118],[-76.29742,34.92373],[-76.29612,34.92738],[-76.30244,34.92676],[-76.31193,34.93576],[-76.32711,34.94419]],[[-76.2921,34.93955],[-76.29203,34.93958],[-76.29208,34.93963],[-76.29214,34.93957],[-76.2921,34.93955]],[[-76.29584,34.92811],[-76.29533,34.92924],[-76.29769,34.92868],[-76.29757,34.92853],[-76.29584,34.92811]],[[-76.29809,34.93723],[-76.29823,34.93721],[-76.29817,34.93707],[-76.29796,34.93723],[-76.29809,34.93723]]]}},{"type":"Feature","properties":{"cmu_name":"U032","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.27659,34.99996],[-76.2777,34.9996],[-76.27777,35.00412],[-76.27244,35.0047],[-76.25266,35.00106],[-76.24483,34.99722],[-76.26255,34.97498],[-76.26475,34.97736],[-76.26195,34.97838],[-76.2645,34.98117],[-76.26317,34.9814],[-76.26961,34.98334],[-76.27309,34.98749],[-76.2713,34.98863],[-76.27217,34.99084],[-76.27204,34.98847],[-76.27486,34.99057],[-76.27437,34.99268],[-76.27152,34.99143],[-76.27516,34.99496],[-76.27383,34.99655],[-76.27679,34.99744],[-76.27659,34.99996]],[[-76.27361,34.99834],[-76.27387,34.99824],[-76.27387,34.99799],[-76.27347,34.99814],[-76.27361,34.99834]],[[-76.27541,34.99954],[-76.27585,34.99953],[-76.2759,34.99931],[-76.27557,34.9992],[-76.27541,34.99954]]]}},{"type":"Feature","properties":{"cmu_name":"U145","rain_in":2.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.59529,34.41495],[-77.59274,34.41957],[-77.58824,34.41896],[-77.58683,34.42069],[-77.58432,34.41986],[-77.58373,34.42152],[-77.57677,34.42341],[-77.57626,34.42592],[-77.57419,34.42645],[-77.57529,34.42798],[-77.56789,34.43062],[-77.56121,34.4303],[-77.55913,34.43299],[-77.55735,34.43191],[-77.55248,34.43248],[-77.55241,34.43088],[-77.55535,34.43155],[-77.55606,34.42975],[-77.55237,34.43039],[-77.55198,34.42923],[-77.58667,34.41628],[-77.59471,34.41065],[-77.59328,34.41337],[-77.59529,34.41495]],[[-77.58753,34.41894],[-77.58736,34.41861],[-77.58784,34.41817],[-77.58691,34.4188],[-77.58753,34.41894]]]}},{"type":"Feature","properties":{"cmu_name":"U105","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.57557,34.72067],[-76.57884,34.71394],[-76.58577,34.71371],[-76.58733,34.71221],[-76.58471,34.71156],[-76.58512,34.71009],[-76.58661,34.71104],[-76.585,34.70891],[-76.58466,34.70162],[-76.60468,34.70242],[-76.57557,34.72067]]]}},{"type":"Feature","properties":{"cmu_name":"U098","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.62436,34.73564],[-76.62182,34.73754],[-76.62297,34.74098],[-76.58848,34.7414],[-76.58931,34.7514],[-76.58837,34.74873],[-76.58169,34.74299],[-76.57478,34.74516],[-76.57622,34.743],[-76.57437,34.73984],[-76.57407,34.74071],[-76.57213,34.74041],[-76.56975,34.73828],[-76.56956,34.73763],[-76.57318,34.74018],[-76.57242,34.73885],[-76.57308,34.73791],[-76.57216,34.73696],[-76.57337,34.73789],[-76.57298,34.7395],[-76.57477,34.73959],[-76.57738,34.73511],[-76.57643,34.73259],[-76.57494,34.73292],[-76.57483,34.7324],[-76.57688,34.73131],[-76.57715,34.73267],[-76.57763,34.73089],[-76.57817,34.73474],[-76.58103,34.73436],[-76.58091,34.73103],[-76.57535,34.72123],[-76.60467,34.70241],[-76.61837,34.72706],[-76.62095,34.72845],[-76.62247,34.72777],[-76.62294,34.73063],[-76.62575,34.7332],[-76.62929,34.73224],[-76.62925,34.73575],[-76.62809,34.73349],[-76.6257,34.73692],[-76.62458,34.73378],[-76.62436,34.73564]],[[-76.588,34.73529],[-76.58784,34.73544],[-76.58808,34.73563],[-76.5881,34.73556],[-76.588,34.73529]],[[-76.58838,34.74151],[-76.58793,34.74143],[-76.58777,34.74155],[-76.58841,34.74174],[-76.58838,34.74151]]]}},{"type":"Feature","properties":{"cmu_name":"U078","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.57475,34.99189],[-76.61857,34.98788],[-76.62147,34.98694],[-76.62111,34.98584],[-76.62562,34.98863],[-76.62627,34.98694],[-76.62751,34.9884],[-76.63124,34.98873],[-76.63818,34.98603],[-76.63678,34.9854],[-76.63236,34.98737],[-76.63191,34.98518],[-76.62974,34.98454],[-76.6278,34.9755],[-76.63017,34.97687],[-76.62989,34.9799],[-76.63404,34.98557],[-76.64141,34.9835],[-76.63958,34.98087],[-76.64088,34.97839],[-76.63884,34.97453],[-76.63904,34.9713],[-76.6373,34.97015],[-76.63849,34.96815],[-76.64154,34.97731],[-76.64361,34.97624],[-76.64343,34.97461],[-76.6444,34.97608],[-76.64134,34.98139],[-76.64305,34.9834],[-76.64609,34.98361],[-76.64711,34.98175],[-76.65378,34.98191],[-76.65903,34.97942],[-76.66206,34.97664],[-76.66088,34.97227],[-76.66389,34.97611],[-76.67657,34.96821],[-76.70632,34.95485],[-76.72888,34.97188],[-76.4756,35.11035],[-76.46025,35.06276],[-76.44804,35.04484],[-76.4476,35.04054],[-76.45088,35.01177],[-76.45383,35.01386],[-76.45416,35.02108],[-76.45984,35.02064],[-76.46021,35.02261],[-76.4603,35.02072],[-76.46506,35.02054],[-76.4645,35.02777],[-76.46593,35.02822],[-76.46538,35.02058],[-76.47361,35.0204],[-76.46984,35.02015],[-76.47118,35.0172],[-76.46933,35.01506],[-76.47141,35.01464],[-76.47343,35.01133],[-76.47566,35.01172],[-76.47501,35.00427],[-76.48112,35.00525],[-76.48435,35.00226],[-76.48501,34.99963],[-76.47404,34.99388],[-76.47319,34.99085],[-76.47056,34.99004],[-76.46878,34.98328],[-76.46598,34.98153],[-76.47637,34.96442],[-76.47572,34.95552],[-76.48033,34.95439],[-76.48333,34.95547],[-76.48553,34.95917],[-76.48718,34.95789],[-76.48868,34.95868],[-76.48969,34.95762],[-76.48788,34.95672],[-76.49073,34.95517],[-76.49553,34.95508],[-76.49816,34.95167],[-76.49976,34.95219],[-76.50586,34.94683],[-76.50026,34.95476],[-76.50104,34.95735],[-76.49913,34.96219],[-76.50036,34.96517],[-76.50495,34.96826],[-76.50316,34.96816],[-76.49992,34.97541],[-76.50594,34.97628],[-76.50546,34.97522],[-76.50932,34.97527],[-76.51106,34.97304],[-76.51301,34.9774],[-76.51762,34.97865],[-76.5231,34.97667],[-76.52257,34.97997],[-76.51908,34.98328],[-76.5235,34.98594],[-76.52302,34.99074],[-76.52079,34.9896],[-76.51735,34.99418],[-76.52793,34.99283],[-76.5293,34.99089],[-76.53754,34.99248],[-76.54096,34.99039],[-76.54251,34.99224],[-76.54782,34.99128],[-76.55429,34.99326],[-76.55469,34.99065],[-76.5495,34.98807],[-76.54608,34.98842],[-76.54911,34.98684],[-76.5482,34.98222],[-76.55005,34.97914],[-76.55546,34.98245],[-76.55417,34.98499],[-76.55662,34.98951],[-76.55968,34.98801],[-76.55721,34.99037],[-76.55684,34.99362],[-76.55991,34.99146],[-76.56386,34.99187],[-76.56228,34.99303],[-76.55931,34.99255],[-76.55818,34.99401],[-76.56622,34.99599],[-76.57475,34.99189]]],[[[-76.45447,35.0204],[-76.45527,35.01127],[-76.45913,35.01121],[-76.45877,35.01571],[-76.46027,35.01242],[-76.4631,35.01214],[-76.46426,35.0133],[-76.46477,35.01558],[-76.46348,35.01907],[-76.46594,35.01824],[-76.46652,35.02023],[-76.46262,35.02032],[-76.46243,35.01514],[-76.4641,35.01386],[-76.46244,35.01229],[-76.46034,35.01364],[-76.46203,35.01547],[-76.46223,35.02024],[-76.45447,35.0204]]],[[[-76.62973,34.9878],[-76.62924,34.98657],[-76.63014,34.98543],[-76.63143,34.98791],[-76.62973,34.9878]]]]}},{"type":"Feature","properties":{"cmu_name":"U021","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.7941,34.72597],[-76.79029,34.72561],[-76.79039,34.72174],[-76.81284,34.72253],[-76.81273,34.72603],[-76.80604,34.72518],[-76.80609,34.72307],[-76.79986,34.72284],[-76.79979,34.7253],[-76.7941,34.72597]]]}},{"type":"Feature","properties":{"cmu_name":"U068","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.06346,34.66782],[-77.06552,34.6677],[-77.06519,34.66614],[-77.06343,34.66541],[-77.06368,34.66706],[-77.06289,34.66453],[-77.06349,34.66413],[-77.08187,34.65856],[-77.09217,34.65255],[-77.09437,34.65353],[-77.09512,34.65263],[-77.09639,34.65937],[-77.06373,34.66865],[-77.06346,34.66782]]]}},{"type":"Feature","properties":{"cmu_name":"U123","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.39268,34.64064],[-77.39346,34.64209],[-77.38597,34.64147],[-77.37792,34.63654],[-77.37047,34.63883],[-77.37182,34.64482],[-77.37785,34.64712],[-77.35822,34.66861],[-77.3571,34.66085],[-77.34834,34.65359],[-77.35246,34.65006],[-77.34683,34.6299],[-77.35161,34.62414],[-77.35997,34.61806],[-77.37268,34.62642],[-77.37661,34.63431],[-77.3766,34.63243],[-77.37825,34.63193],[-77.37938,34.63419],[-77.38305,34.63445],[-77.38325,34.6373],[-77.38656,34.63981],[-77.38947,34.63798],[-77.38977,34.64045],[-77.39333,34.63879],[-77.39268,34.64064]],[[-77.3769,34.63474],[-77.37671,34.63457],[-77.37657,34.63458],[-77.3767,34.63474],[-77.3769,34.63474]]]}},{"type":"Feature","properties":{"cmu_name":"U124","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.38943,34.61491],[-77.38799,34.61921],[-77.37317,34.62659],[-77.35995,34.61807],[-77.35998,34.61497],[-77.35916,34.61551],[-77.35787,34.61509],[-77.35714,34.61193],[-77.35912,34.61539],[-77.36505,34.60793],[-77.37533,34.59977],[-77.39135,34.60209],[-77.3932,34.60085],[-77.39746,34.61128],[-77.38943,34.61491]]]}},{"type":"Feature","properties":{"cmu_name":"U087","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.82793,34.19278],[-77.82359,34.20077],[-77.81711,34.20076],[-77.81536,34.20274],[-77.81559,34.20421],[-77.81846,34.20496],[-77.81764,34.20736],[-77.80955,34.20887],[-77.80976,34.20678],[-77.80242,34.20152],[-77.81358,34.18913],[-77.81391,34.18571],[-77.80915,34.1869],[-77.8113,34.18115],[-77.81581,34.18201],[-77.82232,34.18998],[-77.82793,34.19278]],[[-77.80831,34.2005],[-77.80832,34.20001],[-77.80768,34.20167],[-77.80799,34.20139],[-77.80831,34.2005]],[[-77.80864,34.19891],[-77.80845,34.19914],[-77.80884,34.19946],[-77.80882,34.1991],[-77.80864,34.19891]],[[-77.80941,34.19734],[-77.80927,34.19748],[-77.8094,34.19778],[-77.80951,34.19764],[-77.80941,34.19734]],[[-77.81092,34.1957],[-77.8134,34.19389],[-77.81422,34.19215],[-77.81012,34.19607],[-77.81092,34.1957]],[[-77.81502,34.19178],[-77.81523,34.19122],[-77.81643,34.19159],[-77.81826,34.19064],[-77.81587,34.19085],[-77.81504,34.19123],[-77.8144,34.19198],[-77.81502,34.19178]],[[-77.82038,34.19827],[-77.82196,34.19774],[-77.8243,34.19234],[-77.82144,34.19183],[-77.81931,34.19752],[-77.82038,34.19827]]]}},{"type":"Feature","properties":{"cmu_name":"U005","rain_in":2.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-78.38329,33.90917],[-78.37347,33.91435],[-78.36229,33.91008],[-78.3562,33.91158],[-78.35481,33.90716],[-78.36985,33.90363],[-78.37403,33.9045],[-78.37549,33.90691],[-78.37689,33.90531],[-78.38056,33.90584],[-78.37877,33.90106],[-78.38931,33.89889],[-78.38689,33.90171],[-78.38635,33.90421],[-78.3895,33.90413],[-78.38706,33.90365],[-78.38853,33.90112],[-78.3917,33.90095],[-78.39203,33.90261],[-78.39361,33.9013],[-78.39404,33.90476],[-78.38891,33.90546],[-78.38329,33.90917]],[[-78.35723,33.90922],[-78.35787,33.90881],[-78.35552,33.90905],[-78.35574,33.90933],[-78.35723,33.90922]],[[-78.35924,33.90889],[-78.36012,33.90888],[-78.36021,33.90847],[-78.35951,33.9081],[-78.35924,33.90889]],[[-78.36291,33.90839],[-78.36473,33.90915],[-78.36568,33.90833],[-78.36341,33.90762],[-78.36291,33.90839]],[[-78.37003,33.90982],[-78.36869,33.90926],[-78.36821,33.90998],[-78.36976,33.91095],[-78.37003,33.90982]],[[-78.37731,33.91139],[-78.37931,33.90898],[-78.37243,33.91202],[-78.37455,33.91261],[-78.37731,33.91139]]]}},{"type":"Feature","properties":{"cmu_name":"U077","rain_in":4.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-76.59098,34.97238],[-76.5914,34.97447],[-76.59508,34.97463],[-76.59327,34.97699],[-76.5919,34.97672],[-76.59126,34.97679],[-76.59235,34.97687],[-76.59384,34.97742],[-76.59548,34.97542],[-76.59375,34.97756],[-76.59054,34.97693],[-76.5909,34.97552],[-76.58994,34.97741],[-76.59352,34.97986],[-76.59891,34.98024],[-76.59893,34.98161],[-76.59939,34.97961],[-76.59714,34.97734],[-76.60151,34.97452],[-76.59783,34.97768],[-76.60202,34.97995],[-76.60132,34.98267],[-76.60419,34.97973],[-76.60689,34.96888],[-76.60728,34.97126],[-76.60885,34.96978],[-76.60619,34.97293],[-76.60387,34.9836],[-76.60609,34.9847],[-76.61113,34.97979],[-76.61362,34.98028],[-76.60707,34.98471],[-76.6125,34.98654],[-76.61289,34.98374],[-76.61423,34.98215],[-76.61363,34.98623],[-76.61594,34.98765],[-76.57485,34.99183],[-76.56887,34.9937],[-76.57035,34.99098],[-76.57568,34.98968],[-76.57373,34.98719],[-76.57084,34.98648],[-76.57324,34.98495],[-76.57171,34.98377],[-76.57506,34.98201],[-76.57579,34.97937],[-76.57146,34.97791],[-76.57557,34.97771],[-76.57629,34.98014],[-76.57933,34.9752],[-76.57646,34.97236],[-76.57515,34.97645],[-76.57604,34.96959],[-76.57342,34.96868],[-76.57136,34.96972],[-76.5725,34.96825],[-76.57471,34.96805],[-76.57192,34.96516],[-76.57187,34.96696],[-76.57008,34.96701],[-76.57115,34.96459],[-76.56915,34.96505],[-76.56733,34.96041],[-76.58232,34.94665],[-76.5861,34.9516],[-76.58226,34.95624],[-76.58932,34.96443],[-76.58899,34.97002],[-76.59098,34.97238]],[[-76.59259,34.97601],[-76.59249,34.976],[-76.59245,34.97598],[-76.59251,34.97603],[-76.59259,34.97601]],[[-76.59284,34.97601],[-76.59271,34.97599],[-76.59265,34.976],[-76.5928,34.97602],[-76.59284,34.97601]],[[-76.5929,34.97599],[-76.59293,34.97599],[-76.59291,34.97598],[-76.5929,34.97599]],[[-76.59305,34.97597],[-76.59302,34.97599],[-76.59305,34.97599],[-76.59305,34.97597]]]}},{"type":"Feature","properties":{"cmu_name":"U088","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.79762,34.23709],[-77.79016,34.24657],[-77.78556,34.24416],[-77.78127,34.24934],[-77.77814,34.2484],[-77.77622,34.24938],[-77.77664,34.25387],[-77.77968,34.25162],[-77.78219,34.25336],[-77.77865,34.25578],[-77.7775,34.25506],[-77.77531,34.26069],[-77.7725,34.26227],[-77.77238,34.26394],[-77.77018,34.26387],[-77.77148,34.26487],[-77.76991,34.26874],[-77.77141,34.2712],[-77.77058,34.27304],[-77.76662,34.2713],[-77.76669,34.26933],[-77.76301,34.27417],[-77.76064,34.27503],[-77.74784,34.26981],[-77.7468,34.26773],[-77.7483,34.26597],[-77.751,34.26888],[-77.74998,34.2646],[-77.75232,34.26935],[-77.75204,34.2619],[-77.76247,34.25556],[-77.75784,34.25595],[-77.7631,34.25075],[-77.76321,34.25473],[-77.76657,34.2505],[-77.76368,34.24953],[-77.76606,34.24916],[-77.76884,34.24554],[-77.76726,34.24465],[-77.77098,34.24485],[-77.76864,34.2434],[-77.76587,34.24408],[-77.76934,34.23994],[-77.77106,34.24247],[-77.77534,34.2368],[-77.77834,34.23576],[-77.78575,34.22545],[-77.78917,34.22455],[-77.79303,34.22938],[-77.7997,34.23267],[-77.79762,34.23709]],[[-77.751,34.26957],[-77.75073,34.26963],[-77.7516,34.26992],[-77.75125,34.26963],[-77.751,34.26957]],[[-77.75708,34.26143],[-77.75612,34.26184],[-77.75666,34.26248],[-77.7571,34.26183],[-77.75708,34.26143]],[[-77.76044,34.25816],[-77.7627,34.25739],[-77.76268,34.25694],[-77.75959,34.25788],[-77.75931,34.25898],[-77.76044,34.25816]],[[-77.76044,34.27159],[-77.76257,34.2706],[-77.76242,34.26977],[-77.75959,34.2697],[-77.75867,34.27242],[-77.76044,34.27159]],[[-77.76438,34.26718],[-77.76555,34.26655],[-77.76494,34.26552],[-77.76356,34.26591],[-77.76438,34.26718]],[[-77.76346,34.26893],[-77.76309,34.26902],[-77.76293,34.26921],[-77.76342,34.26912],[-77.76346,34.26893]],[[-77.76704,34.26388],[-77.7665,34.26344],[-77.76602,34.26385],[-77.7671,34.26447],[-77.76704,34.26388]],[[-77.76795,34.26384],[-77.76995,34.26238],[-77.77037,34.26176],[-77.76705,34.26118],[-77.76795,34.26384]],[[-77.77138,34.26028],[-77.77375,34.25695],[-77.77288,34.25554],[-77.76985,34.25827],[-77.7701,34.26032],[-77.77138,34.26028]],[[-77.777,34.23835],[-77.77762,34.23766],[-77.77748,34.23743],[-77.7765,34.23923],[-77.777,34.23835]],[[-77.77474,34.25602],[-77.77524,34.25481],[-77.77347,34.25459],[-77.77336,34.25534],[-77.77474,34.25602]],[[-77.78705,34.24129],[-77.79552,34.23384],[-77.79491,34.23161],[-77.79189,34.23213],[-77.79262,34.23474],[-77.78885,34.23732],[-77.78934,34.23886],[-77.78768,34.23886],[-77.78705,34.24129]]]}},{"type":"Feature","properties":{"cmu_name":"U089","rain_in":2.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.75509,34.28252],[-77.73357,34.30958],[-77.73134,34.30943],[-77.73013,34.31111],[-77.73186,34.31194],[-77.72932,34.31737],[-77.73128,34.31924],[-77.72726,34.31891],[-77.72908,34.32075],[-77.72757,34.32191],[-77.72519,34.32099],[-77.7259,34.32196],[-77.7236,34.32212],[-77.72783,34.3227],[-77.73061,34.32053],[-77.73202,34.32212],[-77.72604,34.32667],[-77.72477,34.3267],[-77.72667,34.32323],[-77.72431,34.32342],[-77.7218,34.32625],[-77.72232,34.32444],[-77.71736,34.32686],[-77.71585,34.32375],[-77.72467,34.31746],[-77.75977,34.2747],[-77.76137,34.27535],[-77.75872,34.27619],[-77.75509,34.28252]],[[-77.71815,34.32477],[-77.71802,34.32464],[-77.71779,34.3247],[-77.71802,34.32494],[-77.71815,34.32477]],[[-77.71872,34.32462],[-77.71891,34.32451],[-77.71882,34.32437],[-77.71864,34.32444],[-77.71872,34.32462]],[[-77.7268,34.3203],[-77.72648,34.32048],[-77.72642,34.3207],[-77.72659,34.3206],[-77.7268,34.3203]],[[-77.72868,34.32079],[-77.72828,34.32083],[-77.72826,34.32091],[-77.72857,34.32095],[-77.72868,34.32079]],[[-77.72925,34.3177],[-77.72907,34.31789],[-77.72924,34.31804],[-77.72935,34.31783],[-77.72925,34.3177]]]}},{"type":"Feature","properties":{"cmu_name":"U090","rain_in":3.0,"rain_lab":"emergency"},"geometry":{"type":"Polygon","coordinates":[[[-77.71555,34.32319],[-77.71174,34.31748],[-77.71202,34.31179],[-77.70851,34.30797],[-77.70773,34.3029],[-77.71088,34.30054],[-77.71304,34.30138],[-77.71111,34.30145],[-77.71176,34.30332],[-77.71355,34.30172],[-77.71318,34.30075],[-77.70972,34.2994],[-77.71482,34.29291],[-77.71617,34.2953],[-77.72347,34.29154],[-77.72024,34.2919],[-77.74616,34.27035],[-77.7469,34.27192],[-77.74965,34.2726],[-77.75001,34.27159],[-77.75978,34.2747],[-77.72468,34.31748],[-77.71555,34.32319]],[[-77.71753,34.32094],[-77.71736,34.32041],[-77.7166,34.32025],[-77.71659,34.32151],[-77.71753,34.32094]],[[-77.71852,34.32085],[-77.71964,34.31943],[-77.71839,34.31875],[-77.71786,34.31934],[-77.71852,34.32085]],[[-77.72691,34.29012],[-77.72638,34.28961],[-77.72555,34.2907],[-77.72647,34.29078],[-77.72691,34.29012]],[[-77.72024,34.31939],[-77.72086,34.31902],[-77.71997,34.31805],[-77.71981,34.31903],[-77.72024,34.31939]],[[-77.72169,34.31803],[-77.72242,34.31794],[-77.72245,34.31715],[-77.72151,34.3171],[-77.72169,34.31803]],[[-77.72441,34.31618],[-77.72565,34.31457],[-77.72476,34.31375],[-77.72272,34.31524],[-77.72441,34.31618]],[[-77.72365,34.31716],[-77.72417,34.31625],[-77.72279,34.31619],[-77.72297,34.31666],[-77.72365,34.31716]],[[-77.7269,34.3133],[-77.72766,34.3129],[-77.72699,34.312],[-77.72591,34.31281],[-77.7269,34.3133]],[[-77.72795,34.31157],[-77.72869,34.31061],[-77.72752,34.31036],[-77.72717,34.31106],[-77.72795,34.31157]],[[-77.73181,34.30621],[-77.72979,34.30652],[-77.72914,34.30983],[-77.73255,34.30694],[-77.73181,34.30621]],[[-77.73232,34.30497],[-77.73146,34.30542],[-77.73249,34.30608],[-77.73285,34.30542],[-77.73232,34.30497]],[[-77.7347,34.30168],[-77.73344,34.30313],[-77.73441,34.30443],[-77.736,34.30262],[-77.7347,34.30168]],[[-77.73806,34.29946],[-77.73877,34.29925],[-77.7377,34.29807],[-77.73689,34.29922],[-77.73806,34.29946]],[[-77.73845,34.29825],[-77.74046,34.29661],[-77.73942,34.29568],[-77.73725,34.29769],[-77.73845,34.29825]],[[-77.74316,34.29331],[-77.74372,34.2919],[-77.74211,34.29107],[-77.74113,34.29355],[-77.74316,34.29331]],[[-77.74516,34.29151],[-77.74586,34.29076],[-77.74436,34.2901],[-77.74424,34.29068],[-77.74516,34.29151]],[[-77.7468,34.28784],[-77.74569,34.28813],[-77.746,34.28884],[-77.74726,34.28871],[-77.7468,34.28784]],[[-77.74801,34.28613],[-77.74705,34.2863],[-77.74729,34.28722],[-77.74832,34.28724],[-77.74801,34.28613]],[[-77.74891,34.28429],[-77.74847,34.28498],[-77.74929,34.28523],[-77.74955,34.2847],[-77.74891,34.28429]],[[-77.75009,34.28291],[-77.74971,34.28378],[-77.75119,34.28387],[-77.75089,34.28323],[-77.75009,34.28291]],[[-77.75266,34.28112],[-77.75147,34.2808],[-77.75081,34.28131],[-77.75261,34.28236],[-77.75266,34.28112]],[[-77.75324,34.2811],[-77.75571,34.2787],[-77.75434,34.27763],[-77.75248,34.27956],[-77.75324,34.2811]],[[-77.75608,34.2777],[-77.7555,34.27647],[-77.75455,34.2765],[-77.75466,34.2774],[-77.75608,34.2777]],[[-77.75688,34.27489],[-77.75593,34.27499],[-77.75671,34.27592],[-77.7572,34.27514],[-77.75688,34.27489]]]}},{"type":"Feature","properties":{"cmu_name":"U002","rain_in":1.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-78.41891,33.90616],[-78.41643,33.90152],[-78.39703,33.90548],[-78.39402,33.90476],[-78.39423,33.90083],[-78.41174,33.89512],[-78.41422,33.89556],[-78.41385,33.8945],[-78.4147,33.89432],[-78.41555,33.89847],[-78.4108,33.89951],[-78.41058,33.90068],[-78.41771,33.89903],[-78.41891,33.90616]],[[-78.40955,33.90082],[-78.40498,33.90087],[-78.39803,33.90303],[-78.4031,33.90299],[-78.40955,33.90082]]]}},{"type":"Feature","properties":{"cmu_name":"U001","rain_in":1.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-78.4931,33.87533],[-78.49395,33.87891],[-78.49278,33.8779],[-78.4793,33.8818],[-78.47881,33.88312],[-78.47195,33.8819],[-78.47048,33.87889],[-78.47776,33.87619],[-78.47248,33.87624],[-78.4845,33.87259],[-78.48406,33.87362],[-78.48883,33.87355],[-78.49844,33.87177],[-78.49302,33.87369],[-78.4931,33.87533]]]}},{"type":"Feature","properties":{"cmu_name":"U006","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-78.34288,33.91353],[-78.34313,33.90742],[-78.34548,33.90878],[-78.34991,33.90817],[-78.34884,33.90966],[-78.35027,33.91022],[-78.35116,33.90817],[-78.35483,33.90716],[-78.3559,33.91133],[-78.34288,33.91353]]]}},{"type":"Feature","properties":{"cmu_name":"U007","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-78.26602,33.92065],[-78.26272,33.91814],[-78.2577,33.91811],[-78.25769,33.91961],[-78.25329,33.92005],[-78.25388,33.92074],[-78.25371,33.92281],[-78.2533,33.92101],[-78.24276,33.92057],[-78.24253,33.91927],[-78.24702,33.91757],[-78.24714,33.91864],[-78.24923,33.91731],[-78.26015,33.91784],[-78.27038,33.91572],[-78.27037,33.91672],[-78.26514,33.91732],[-78.26602,33.92065]]]}},{"type":"Feature","properties":{"cmu_name":"U003","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-78.37236,33.9189],[-78.37115,33.92311],[-78.36213,33.92232],[-78.35985,33.91708],[-78.36033,33.91206],[-78.36366,33.91171],[-78.36323,33.91034],[-78.37187,33.91351],[-78.37325,33.9159],[-78.37236,33.9189]]]}},{"type":"Feature","properties":{"cmu_name":"U004","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-78.37085,33.92512],[-78.36959,33.92731],[-78.36081,33.92911],[-78.35878,33.92674],[-78.36214,33.9223],[-78.37115,33.92309],[-78.37085,33.92512]],[[-78.36706,33.92719],[-78.36717,33.92725],[-78.36757,33.92715],[-78.36714,33.92713],[-78.36706,33.92719]]]}},{"type":"Feature","properties":{"cmu_name":"U041","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.50015,34.78613],[-76.49891,34.78697],[-76.49082,34.78523],[-76.49023,34.77689],[-76.48865,34.77715],[-76.48592,34.774],[-76.48573,34.76915],[-76.487,34.76814],[-76.48549,34.76566],[-76.50122,34.75897],[-76.5001,34.76608],[-76.50092,34.76686],[-76.50119,34.7651],[-76.50213,34.76561],[-76.50138,34.77439],[-76.50452,34.78115],[-76.50593,34.78104],[-76.50578,34.77776],[-76.50761,34.77893],[-76.50643,34.78065],[-76.50776,34.78405],[-76.50648,34.78288],[-76.50623,34.78508],[-76.5053,34.78381],[-76.50108,34.78715],[-76.50015,34.78613]],[[-76.48757,34.76899],[-76.48672,34.76935],[-76.48672,34.7696],[-76.48714,34.76967],[-76.48757,34.76899]],[[-76.48833,34.7709],[-76.48781,34.7712],[-76.48856,34.77233],[-76.4887,34.77223],[-76.48833,34.7709]],[[-76.49193,34.77873],[-76.49138,34.77897],[-76.49177,34.77988],[-76.49219,34.77943],[-76.49193,34.77873]],[[-76.50578,34.7831],[-76.50607,34.78159],[-76.50481,34.78161],[-76.50535,34.7834],[-76.50578,34.7831]]]}},{"type":"Feature","properties":{"cmu_name":"U022","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.8782,34.6921],[-76.88097,34.72168],[-76.86274,34.72447],[-76.79039,34.72175],[-76.79092,34.70439],[-76.79791,34.7031],[-76.80102,34.7042],[-76.81783,34.70346],[-76.82294,34.70445],[-76.82418,34.70395],[-76.82256,34.70154],[-76.82416,34.70341],[-76.82745,34.70277],[-76.82711,34.70175],[-76.82998,34.70161],[-76.82904,34.70069],[-76.83351,34.70007],[-76.83282,34.69892],[-76.84196,34.6965],[-76.84018,34.69496],[-76.84933,34.69503],[-76.85083,34.69336],[-76.86464,34.69373],[-76.86584,34.69245],[-76.8699,34.69432],[-76.87108,34.69356],[-76.86929,34.69248],[-76.87162,34.693],[-76.87751,34.69082],[-76.8782,34.6921]],[[-76.87057,34.72246],[-76.87049,34.72244],[-76.87039,34.72249],[-76.87045,34.72255],[-76.87057,34.72246]],[[-76.87091,34.72276],[-76.87111,34.72274],[-76.8711,34.72269],[-76.87083,34.72277],[-76.87091,34.72276]]]}},{"type":"Feature","properties":{"cmu_name":"U141","rain_in":2.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.71504,34.32662],[-77.71411,34.32596],[-77.71384,34.32616],[-77.71311,34.33075],[-77.71178,34.32911],[-77.71058,34.33376],[-77.71187,34.33395],[-77.70884,34.33665],[-77.70508,34.33653],[-77.69943,34.34679],[-77.69029,34.35162],[-77.69034,34.35389],[-77.6892,34.35295],[-77.68121,34.3572],[-77.68124,34.35489],[-77.69998,34.34378],[-77.70694,34.32945],[-77.71586,34.32374],[-77.71662,34.32541],[-77.71496,34.32585],[-77.71699,34.32622],[-77.71724,34.32675],[-77.71504,34.32662]],[[-77.70966,34.33421],[-77.70903,34.33349],[-77.70839,34.33366],[-77.70925,34.33442],[-77.70966,34.33421]]]}},{"type":"Feature","properties":{"cmu_name":"U067","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.06513,34.67329],[-77.06372,34.66864],[-77.09639,34.65936],[-77.09899,34.67317],[-77.09082,34.67212],[-77.0654,34.67408],[-77.06513,34.67329]],[[-77.06586,34.67329],[-77.06837,34.67257],[-77.0685,34.67204],[-77.06617,34.67115],[-77.06586,34.67329]],[[-77.06985,34.67153],[-77.06914,34.67201],[-77.06987,34.67292],[-77.07067,34.67227],[-77.06985,34.67153]],[[-77.07186,34.67265],[-77.07217,34.67221],[-77.07141,34.67204],[-77.07147,34.67249],[-77.07186,34.67265]],[[-77.08332,34.67208],[-77.08389,34.67204],[-77.08427,34.67206],[-77.08374,34.6716],[-77.08332,34.67208]],[[-77.08436,34.67149],[-77.08511,34.67198],[-77.08524,34.67078],[-77.08441,34.67082],[-77.08436,34.67149]],[[-77.08602,34.67194],[-77.08788,34.67183],[-77.08696,34.6705],[-77.08597,34.67068],[-77.08602,34.67194]],[[-77.08821,34.67141],[-77.09356,34.67171],[-77.09433,34.67005],[-77.08845,34.67009],[-77.08821,34.67141]]]}},{"type":"Feature","properties":{"cmu_name":"U085","rain_in":2.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.86639,34.13494],[-77.86369,34.14037],[-77.86463,34.14179],[-77.86022,34.14321],[-77.85686,34.15208],[-77.85032,34.1608],[-77.85292,34.16331],[-77.8519,34.16492],[-77.84922,34.1641],[-77.85174,34.1651],[-77.84998,34.1654],[-77.85087,34.16694],[-77.84711,34.16719],[-77.84916,34.16928],[-77.84704,34.16893],[-77.84734,34.17013],[-77.85064,34.17225],[-77.84674,34.17281],[-77.84554,34.1768],[-77.84095,34.17553],[-77.83393,34.18645],[-77.8283,34.19032],[-77.82793,34.19278],[-77.82629,34.19185],[-77.82892,34.18785],[-77.85664,34.15093],[-77.86399,34.13364],[-77.86639,34.13494]],[[-77.84595,34.17361],[-77.84589,34.17362],[-77.84587,34.17363],[-77.84595,34.17361]],[[-77.84794,34.17214],[-77.84833,34.17167],[-77.84731,34.17146],[-77.84735,34.17204],[-77.84794,34.17214]]]}},{"type":"Feature","properties":{"cmu_name":"U094","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.71023,34.77824],[-76.70889,34.77662],[-76.70396,34.77818],[-76.69774,34.77506],[-76.6955,34.77564],[-76.69383,34.77353],[-76.6922,34.77431],[-76.68715,34.77249],[-76.70281,34.74716],[-76.70415,34.74862],[-76.70534,34.74638],[-76.70548,34.74688],[-76.70524,34.74769],[-76.70516,34.74814],[-76.70521,34.74827],[-76.70582,34.74605],[-76.70552,34.74874],[-76.70701,34.74656],[-76.70873,34.75039],[-76.70843,34.74931],[-76.70954,34.748],[-76.71113,34.75219],[-76.71234,34.75073],[-76.71221,34.75196],[-76.71365,34.75311],[-76.71326,34.75228],[-76.714,34.75079],[-76.71477,34.75261],[-76.71685,34.75156],[-76.71549,34.75456],[-76.71433,34.75362],[-76.71363,34.75425],[-76.71986,34.75866],[-76.72006,34.75867],[-76.72007,34.75767],[-76.72039,34.75707],[-76.72179,34.76001],[-76.7219,34.75944],[-76.72346,34.75787],[-76.72474,34.75731],[-76.72209,34.75969],[-76.72502,34.76189],[-76.71026,34.77639],[-76.71165,34.77881],[-76.71023,34.77824]],[[-76.69062,34.77191],[-76.69061,34.77188],[-76.69058,34.77189],[-76.69059,34.77192],[-76.69062,34.77191]],[[-76.70869,34.74946],[-76.70858,34.74944],[-76.70932,34.74985],[-76.70915,34.74974],[-76.70869,34.74946]]]}},{"type":"Feature","properties":{"cmu_name":"U096","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.68493,34.77163],[-76.67572,34.77006],[-76.67312,34.76797],[-76.67358,34.7665],[-76.66595,34.76078],[-76.66206,34.75498],[-76.66076,34.75623],[-76.66062,34.75609],[-76.6618,34.7543],[-76.65979,34.75215],[-76.662,34.75072],[-76.66203,34.74836],[-76.65863,34.74627],[-76.66056,34.74141],[-76.66559,34.73777],[-76.66154,34.73714],[-76.66126,34.73665],[-76.66565,34.7377],[-76.67529,34.73599],[-76.67091,34.72457],[-76.67209,34.72284],[-76.68225,34.72246],[-76.68385,34.72506],[-76.6863,34.72376],[-76.68849,34.72947],[-76.69188,34.73037],[-76.68147,34.73944],[-76.67474,34.75885],[-76.68493,34.77163]],[[-76.67758,34.74233],[-76.67728,34.74273],[-76.67741,34.74177],[-76.67695,34.74238],[-76.67744,34.74308],[-76.67758,34.74233]],[[-76.67751,34.74214],[-76.67761,34.74208],[-76.67753,34.74197],[-76.6775,34.74203],[-76.67751,34.74214]],[[-76.67901,34.76974],[-76.67815,34.76669],[-76.67621,34.76514],[-76.67668,34.76772],[-76.67901,34.76974]],[[-76.68719,34.73291],[-76.68675,34.7323],[-76.68882,34.73018],[-76.68511,34.73271],[-76.68719,34.73291]],[[-76.68012,34.77004],[-76.67971,34.76976],[-76.67942,34.77029],[-76.6802,34.77046],[-76.68012,34.77004]]]}},{"type":"Feature","properties":{"cmu_name":"U097","rain_in":1.0,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-76.68456,34.79565],[-76.68196,34.7955],[-76.68431,34.78328],[-76.6824,34.78094],[-76.68222,34.78321],[-76.68037,34.78302],[-76.68032,34.78106],[-76.67987,34.78297],[-76.67844,34.78283],[-76.67864,34.78129],[-76.67714,34.7827],[-76.67861,34.77835],[-76.67653,34.77041],[-76.68753,34.77202],[-76.68756,34.77355],[-76.69336,34.77393],[-76.69495,34.77568],[-76.69417,34.78107],[-76.69544,34.78356],[-76.69316,34.78542],[-76.6911,34.78094],[-76.68958,34.79004],[-76.6874,34.79185],[-76.69015,34.79394],[-76.69013,34.79528],[-76.68778,34.79601],[-76.68791,34.79997],[-76.68502,34.79992],[-76.68456,34.79565]],[[-76.68029,34.78031],[-76.67983,34.78052],[-76.6801,34.78083],[-76.68048,34.7807],[-76.68029,34.78031]],[[-76.68031,34.78015],[-76.68044,34.77984],[-76.68028,34.77931],[-76.68002,34.77992],[-76.68031,34.78015]],[[-76.68058,34.78191],[-76.68089,34.78179],[-76.68099,34.78118],[-76.68079,34.78122],[-76.68058,34.78191]],[[-76.68127,34.78088],[-76.68137,34.78029],[-76.68108,34.78018],[-76.68097,34.78072],[-76.68127,34.78088]],[[-76.6816,34.78014],[-76.6815,34.78076],[-76.68186,34.78079],[-76.68197,34.78008],[-76.6816,34.78014]],[[-76.68846,34.77519],[-76.68771,34.77545],[-76.6877,34.77556],[-76.68841,34.77584],[-76.68846,34.77519]],[[-76.68791,34.78502],[-76.68768,34.78543],[-76.68818,34.78616],[-76.68832,34.78531],[-76.68791,34.78502]],[[-76.68846,34.7839],[-76.68862,34.78363],[-76.68847,34.78352],[-76.68823,34.78367],[-76.68846,34.7839]],[[-76.68844,34.78724],[-76.68799,34.78722],[-76.68763,34.78754],[-76.68833,34.78762],[-76.68844,34.78724]],[[-76.68844,34.78954],[-76.68735,34.78938],[-76.68737,34.79037],[-76.68804,34.79041],[-76.68844,34.78954]],[[-76.68883,34.78386],[-76.68908,34.78354],[-76.68903,34.78341],[-76.68889,34.78349],[-76.68883,34.78386]],[[-76.6897,34.78219],[-76.68926,34.7823],[-76.68918,34.78313],[-76.68974,34.78265],[-76.6897,34.78219]]],[[[-76.68313,34.7833],[-76.68296,34.78197],[-76.68316,34.78194],[-76.68421,34.78332],[-76.68313,34.7833]]]]}},{"type":"Feature","properties":{"cmu_name":"U126","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.39888,34.59496],[-77.39642,34.5916],[-77.39335,34.59295],[-77.39437,34.59034],[-77.39099,34.59073],[-77.3877,34.59356],[-77.39174,34.58938],[-77.38272,34.58598],[-77.38211,34.58724],[-77.38473,34.58873],[-77.38282,34.59196],[-77.38084,34.58637],[-77.38251,34.5833],[-77.38092,34.57776],[-77.37814,34.57963],[-77.37939,34.58224],[-77.37688,34.5848],[-77.37887,34.58622],[-77.37696,34.59325],[-77.37624,34.58876],[-77.37786,34.58638],[-77.37498,34.5862],[-77.36961,34.59055],[-77.36556,34.58824],[-77.36402,34.5888],[-77.36879,34.58495],[-77.36874,34.58265],[-77.3659,34.58224],[-77.36604,34.58143],[-77.36977,34.58144],[-77.37159,34.58412],[-77.3733,34.58344],[-77.3725,34.5813],[-77.36611,34.57759],[-77.36219,34.577],[-77.36067,34.57435],[-77.36014,34.57772],[-77.35686,34.57944],[-77.35395,34.57451],[-77.35633,34.57434],[-77.35738,34.57233],[-77.35203,34.57372],[-77.3564,34.56953],[-77.35248,34.57166],[-77.3523,34.56851],[-77.35005,34.57257],[-77.3469,34.57267],[-77.34771,34.57512],[-77.34617,34.5783],[-77.34645,34.5758],[-77.34335,34.57771],[-77.34582,34.5752],[-77.34328,34.57288],[-77.33093,34.57753],[-77.33025,34.57879],[-77.33167,34.5795],[-77.33129,34.58102],[-77.32932,34.57795],[-77.325,34.57819],[-77.33244,34.57684],[-77.33445,34.57591],[-77.33499,34.57338],[-77.33931,34.57296],[-77.33641,34.56748],[-77.33558,34.56809],[-77.34037,34.56345],[-77.33954,34.55668],[-77.33762,34.55442],[-77.33463,34.55547],[-77.33357,34.55229],[-77.32069,34.55259],[-77.31918,34.54842],[-77.32049,34.54697],[-77.31787,34.54617],[-77.31545,34.54246],[-77.32146,34.53926],[-77.32738,34.53831],[-77.3342,34.53251],[-77.33696,34.53433],[-77.3371,34.53665],[-77.3407,34.53355],[-77.3363,34.53144],[-77.34377,34.52529],[-77.34253,34.52753],[-77.34445,34.53237],[-77.34167,34.53867],[-77.34897,34.54859],[-77.34954,34.55162],[-77.36153,34.55157],[-77.37143,34.55431],[-77.37275,34.55526],[-77.37149,34.55663],[-77.37229,34.56064],[-77.3799,34.56198],[-77.37974,34.56331],[-77.38183,34.563720000000007],[-77.38046,34.56507],[-77.38348,34.56638],[-77.38349,34.56814],[-77.39416,34.5714],[-77.39477,34.57753],[-77.39942,34.57658],[-77.39895,34.5818],[-77.39249,34.58797],[-77.3949,34.58919],[-77.39864,34.58695],[-77.396,34.58973],[-77.39863,34.5898],[-77.39774,34.59118],[-77.39964,34.59518],[-77.3957,34.59579],[-77.39888,34.59496]],[[-77.32263,34.54532],[-77.32279,34.5433],[-77.31904,34.54475],[-77.32178,34.54557],[-77.32263,34.54532]],[[-77.32348,34.54826],[-77.3229,34.54791],[-77.32255,34.54861],[-77.32329,34.54884],[-77.32348,34.54826]],[[-77.32453,34.54869],[-77.32397,34.54823],[-77.32378,34.54915],[-77.32405,34.54931],[-77.32453,34.54869]],[[-77.32633,34.5487],[-77.32569,34.54875],[-77.32557,34.54926],[-77.32611,34.54929],[-77.32633,34.5487]],[[-77.32871,34.54986],[-77.32821,34.5494],[-77.32762,34.54979],[-77.32824,34.55013],[-77.32871,34.54986]],[[-77.33029,34.55037],[-77.33014,34.54993],[-77.32955,34.54986],[-77.32961,34.55068],[-77.33029,34.55037]],[[-77.33281,34.5483],[-77.334,34.54868],[-77.335,34.54738],[-77.33369,34.54741],[-77.33281,34.5483]],[[-77.33646,34.54825],[-77.33577,34.54809],[-77.33612,34.54909],[-77.33639,34.54891],[-77.33646,34.54825]],[[-77.33786,34.54947],[-77.33877,34.54887],[-77.33835,34.54825],[-77.33765,34.54859],[-77.33786,34.54947]],[[-77.34685,34.55225],[-77.34825,34.55108],[-77.34377,34.54727],[-77.34435,34.5501],[-77.34242,34.5489],[-77.3396,34.54941],[-77.34685,34.55225]],[[-77.35143,34.55674],[-77.34823,34.55558],[-77.34713,34.55727],[-77.34974,34.5579],[-77.35143,34.55674]],[[-77.35348,34.55887],[-77.3532,34.55736],[-77.35177,34.55676],[-77.35137,34.55833],[-77.35348,34.55887]],[[-77.35563,34.56164],[-77.35608,34.56097],[-77.35487,34.56016],[-77.35475,34.56145],[-77.35563,34.56164]],[[-77.35894,34.57222],[-77.35882,34.57228],[-77.35893,34.57251],[-77.35901,34.57234],[-77.35894,34.57222]]]}},{"type":"Feature","properties":{"cmu_name":"U040","rain_in":2.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-76.48249,34.80568],[-76.4819,34.80238],[-76.47608,34.80327],[-76.47898,34.80702],[-76.46855,34.80202],[-76.46927,34.79541],[-76.47396,34.7975],[-76.47407,34.79519],[-76.47829,34.7927],[-76.47643,34.79189],[-76.47799,34.79084],[-76.47895,34.79229],[-76.481,34.79024],[-76.48394,34.79012],[-76.48724,34.78496],[-76.49891,34.78696],[-76.5001,34.78609],[-76.50476,34.78774],[-76.50485,34.79191],[-76.5038,34.79246],[-76.50429,34.79026],[-76.50268,34.78964],[-76.50148,34.79215],[-76.50383,34.79328],[-76.50156,34.79296],[-76.49982,34.79526],[-76.50043,34.79743],[-76.49752,34.79804],[-76.49663,34.79181],[-76.4949,34.79128],[-76.49556,34.79821],[-76.48249,34.80568]],[[-76.47184,34.79842],[-76.47174,34.7984],[-76.4717,34.79841],[-76.47191,34.79849],[-76.47184,34.79842]],[[-76.47367,34.79764],[-76.47347,34.79763],[-76.47312,34.79797],[-76.47374,34.79814],[-76.47367,34.79764]],[[-76.48217,34.80076],[-76.48213,34.80073],[-76.48204,34.80077],[-76.48214,34.80079],[-76.48217,34.80076]],[[-76.4976,34.79142],[-76.49801,34.79125],[-76.49783,34.79071],[-76.49732,34.79078],[-76.4976,34.79142]],[[-76.50012,34.79145],[-76.50056,34.79171],[-76.50015,34.7882],[-76.4994,34.78929],[-76.50012,34.79145]]]}},{"type":"Feature","properties":{"cmu_name":"U125","rain_in":3.0,"rain_lab":"depth_defined"},"geometry":{"type":"Polygon","coordinates":[[[-77.42744,34.62054],[-77.41355,34.61908],[-77.40363,34.61296],[-77.39744,34.61128],[-77.39319,34.60086],[-77.4015,34.59517],[-77.40363,34.58528],[-77.40173,34.58051],[-77.39957,34.57969],[-77.3994,34.57585],[-77.40644,34.57131],[-77.40932,34.57197],[-77.41142,34.57059],[-77.4176,34.57172],[-77.42578,34.57746],[-77.43783,34.59161],[-77.43873,34.60351],[-77.43452,34.61815],[-77.42744,34.62054]],[[-77.40938,34.57218],[-77.40942,34.57203],[-77.40926,34.57205],[-77.40935,34.57217],[-77.40938,34.57218]]]}},{"type":"Feature","properties":{"cmu_name":"U127","rain_in":1.5,"rain_lab":"depth_defined"},"geometry":{"type":"MultiPolygon","coordinates":[[[[-77.37782,34.5348],[-77.37862,34.53376],[-77.37993,34.53756],[-77.37449,34.53888],[-77.37145,34.54149],[-77.37093,34.53992],[-77.36736,34.54074],[-77.36779,34.54214],[-77.35901,34.54227],[-77.35894,34.54639],[-77.36371,34.54467],[-77.3645,34.54576],[-77.36286,34.54538],[-77.36118,34.54735],[-77.36153,34.55159],[-77.35448,34.55161],[-77.35817,34.54905],[-77.35804,34.54741],[-77.35423,34.54932],[-77.35187,34.54827],[-77.34833,34.54851],[-77.34164,34.53867],[-77.34417,34.5337],[-77.34363,34.53012],[-77.34878,34.52627],[-77.35912,34.52388],[-77.35968,34.5218],[-77.3689,34.51635],[-77.36881,34.51823],[-77.37108,34.51765],[-77.37285,34.52043],[-77.37155,34.5199],[-77.37132,34.52205],[-77.36921,34.52239],[-77.36825,34.52557],[-77.36939,34.52644],[-77.37142,34.52331],[-77.37438,34.52364],[-77.37568,34.52234],[-77.37693,34.52183],[-77.38022,34.52271],[-77.38212,34.52157],[-77.38285,34.52146],[-77.37877,34.52384],[-77.3789,34.52549],[-77.38052,34.52326],[-77.3815,34.52276],[-77.38236,34.52272],[-77.37947,34.52533],[-77.37976,34.52715],[-77.37753,34.52602],[-77.37623,34.53122],[-77.37033,34.53414],[-77.37152,34.53689],[-77.37782,34.5348]],[[-77.35015,34.52879],[-77.3497,34.5284],[-77.3496,34.52839],[-77.35001,34.52898],[-77.35015,34.52879]],[[-77.35028,34.52939],[-77.35017,34.52922],[-77.34999,34.52919],[-77.35012,34.52955],[-77.35028,34.52939]],[[-77.35835,34.53866],[-77.36161,34.53145],[-77.36024,34.52952],[-77.35671,34.5337],[-77.35835,34.53866]],[[-77.35683,34.53657],[-77.35676,34.53654],[-77.35672,34.53655],[-77.35681,34.53661],[-77.35683,34.53657]],[[-77.35681,34.53668],[-77.35674,34.53671],[-77.3568,34.53677],[-77.35685,34.53671],[-77.35681,34.53668]],[[-77.35668,34.54167],[-77.35837,34.54122],[-77.35825,34.54065],[-77.35746,34.53938],[-77.35668,34.54167]],[[-77.36013,34.52807],[-77.36012,34.52806],[-77.3601,34.52806],[-77.36013,34.52807]],[[-77.3603,34.52887],[-77.36032,34.52889],[-77.36034,34.52886],[-77.3603,34.52887]],[[-77.36456,34.52676],[-77.36358,34.52429],[-77.36122,34.52867],[-77.36282,34.5292],[-77.36456,34.52676]],[[-77.36764,34.51729],[-77.36741,34.51729],[-77.36728,34.51743],[-77.36762,34.51741],[-77.36764,34.51729]],[[-77.3674,34.51786],[-77.3674,34.5177],[-77.36731,34.51767],[-77.3672,34.51784],[-77.3674,34.51786]],[[-77.37022,34.53811],[-77.37019,34.53699],[-77.36992,34.53696],[-77.36978,34.53709],[-77.37022,34.53811]],[[-77.37589,34.52295],[-77.37617,34.52273],[-77.3761,34.52236],[-77.37539,34.52279],[-77.37589,34.52295]],[[-77.37693,34.52389],[-77.37714,34.52303],[-77.37581,34.52323],[-77.37593,34.52437],[-77.37693,34.52389]],[[-77.37674,34.52539],[-77.37687,34.52475],[-77.37545,34.52502],[-77.37569,34.52534],[-77.37674,34.52539]],[[-77.3776,34.52386],[-77.3773,34.52431],[-77.3777,34.52461],[-77.37771,34.52413],[-77.3776,34.52386]],[[-77.37742,34.52535],[-77.37781,34.5254],[-77.378,34.52491],[-77.37737,34.52481],[-77.37742,34.52535]]],[[[-77.34953,34.55164],[-77.34895,34.54859],[-77.34896,34.54858],[-77.35123,34.55162],[-77.34953,34.55164]]],[[[-77.37717,34.51939],[-77.37672,34.5206],[-77.37959,34.52025],[-77.37158,34.52213],[-77.37317,34.5202],[-77.37977,34.51835],[-77.37717,34.51939]]]]}}]}
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.dbf b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.dbf
deleted file mode 100644
index 9acba5e..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.prj b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.prj
deleted file mode 100644
index 72252d6..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD_1983_2011_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609601.2192024384],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.sbn b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.sbn
deleted file mode 100644
index 49cbf24..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.sbn and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.sbx b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.sbx
deleted file mode 100644
index d57b870..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.sbx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.shp b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.shp
deleted file mode 100644
index 79c1734..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.shp.xml b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.shp.xml
deleted file mode 100644
index 1d66958..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.shp.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-20201026164821001.0FALSECMU002file://\\MDO-IT9216MS6\C$\Users\mpalleti\Documents\PMR\GIS-1110_PA-PC-2-2020\Edits\SGA_Edits_1.gdbLocal Area Network603044.129800935906.9497004306.362000315271.05920010.000ProjectedGCS_NAD_1983_2011Linear Unit: Meter (1.000000)<ProjectedCoordinateSystem xsi:type='typens:ProjectedCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/10.6'><WKT>PROJCS["NAD_1983_2011_StatePlane_North_Carolina_FIPS_3200",GEOGCS["GCS_NAD_1983_2011",DATUM["D_NAD_1983_2011",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",609601.2192024384],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Meter",1.0],AUTHORITY["EPSG",6542]]</WKT><XOrigin>-37137500</XOrigin><YOrigin>-28547400</YOrigin><XYScale>10000</XYScale><ZOrigin>-100000</ZOrigin><ZScale>10000</ZScale><MOrigin>-100000</MOrigin><MScale>10000</MScale><XYTolerance>0.001</XYTolerance><ZTolerance>0.001</ZTolerance><MTolerance>0.001</MTolerance><HighPrecision>true</HighPrecision><WKID>103121</WKID><LatestWKID>6542</LatestWKID></ProjectedCoordinateSystem>NAD_1983_2011_StatePlane_North_Carolina_FIPS_3200FeatureClassToFeatureClass G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp G:\DATABASE_MASTER\Mohan2019\Current_SGAdata\SSData.gdb\SGA SGA2019 # "OBJECTID_1 "OBJECTID_1" true true false 10 Long 0 10 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,OBJECTID_1,-1,-1;OBJECTID_2 "OBJECTID_2" true true false 10 Long 0 10 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,OBJECTID_2,-1,-1;OBJECTID "OBJECTID" true true false 10 Long 0 10 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,OBJECTID,-1,-1;OBJECTID_3 "OBJECTID_3" true true false 10 Long 0 10 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,OBJECTID_3,-1,-1;SGA_INDEX "SGA_INDEX" true true false 10 Long 0 10 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,SGA_INDEX,-1,-1;REGION "REGION" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,REGION,-1,-1;GROW_AREA "GROW_AREA" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,GROW_AREA,-1,-1;DSHA_NAME "DSHA_NAME" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,DSHA_NAME,-1,-1;DSHA_ID "DSHA_ID" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,DSHA_ID,-1,-1;DSHA_AREA "DSHA_AREA" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,DSHA_AREA,-1,-1;DSHA_CODE "DSHA_CODE" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,DSHA_CODE,-1,-1;DSHA_LABEL "DSHA_LABEL" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,DSHA_LABEL,-1,-1;HA_CLASS "HA_CLASS" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,HA_CLASS,-1,-1;HA_CLASSID "HA_CLASSID" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,HA_CLASSID,-1,-1;HA_NAME "HA_NAME" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,HA_NAME,-1,-1;HA_NAMEID "HA_NAMEID" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,HA_NAMEID,-1,-1;HA_STATUS "HA_STATUS" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,HA_STATUS,-1,-1;HA_AREA "HA_AREA" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,HA_AREA,-1,-1;HA_SUBAREA "HA_SUBAREA" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,HA_SUBAREA,-1,-1;HA_CODE "HA_CODE" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,HA_CODE,-1,-1;HA_LABEL "HA_LABEL" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,HA_LABEL,-1,-1;MAP_NAME "MAP_NAME" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,MAP_NAME,-1,-1;MAP_NUMBER "MAP_NUMBER" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,MAP_NUMBER,-1,-1;MAP_ID "MAP_ID" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,MAP_ID,-1,-1;COUNTY "COUNTY" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,COUNTY,-1,-1;JURISDCTN "JURISDCTN" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,JURISDCTN,-1,-1;WATER_DES "WATER_DES" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,WATER_DES,-1,-1;SURFACE "SURFACE" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,SURFACE,-1,-1;RELAY "RELAY" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,RELAY,-1,-1;CREATOR "CREATOR" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,CREATOR,-1,-1;CREATED "CREATED" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,CREATED,-1,-1;UPDATED "UPDATED" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,UPDATED,-1,-1;ACRES "ACRES" true true false 24 Double 15 23 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,ACRES,-1,-1;SQ_MILES "SQ_MILES" true true false 24 Double 15 23 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,SQ_MILES,-1,-1;SHAPE_Leng "SHAPE_Leng" true true false 24 Double 15 23 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,SHAPE_Leng,-1,-1;Shape_Le_1 "Shape_Le_1" true true false 24 Double 15 23 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,Shape_Le_1,-1,-1;GlobalID "GlobalID" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,GlobalID,-1,-1;SHAPE_Le_2 "SHAPE_Le_2" true true false 24 Double 15 23 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,SHAPE_Le_2,-1,-1;GlobalID_2 "GlobalID_2" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,GlobalID_2,-1,-1;Shape__Are "Shape__Are" true true false 24 Double 15 23 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,Shape__Are,-1,-1;Shape__Len "Shape__Len" true true false 24 Double 15 23 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,Shape__Len,-1,-1;GlobalID_3 "GlobalID_3" true true false 80 Text 0 0 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,GlobalID_3,-1,-1;Shape__A_1 "Shape__A_1" true true false 24 Double 15 23 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,Shape__A_1,-1,-1;Shape__L_1 "Shape__L_1" true true false 24 Double 15 23 ,First,#,G:\DATABASE_MASTER\Mohan2019\SGA_Current_Classifications02062019\SGA_Current_Classifications.shp,Shape__L_1,-1,-1" #CalculateField SGA2019 HA_STATUS 'Closed' PYTHON_9.3 #CalculateField SGA2019 HA_CLASS 'Conditionally Approved - Closed' PYTHON_9.3 #CalculateField SGA2019 HA_CLASS 'Conditionally Approved - Closed' PYTHON_9.3 #CalculateField SGA2019 HA_CLASSID 'CA-C' PYTHON_9.3 #CalculateField SGA2019 HA_STATUS 'Closed' PYTHON_9.3 #CalculateField SGA2019 HA_CLASS 'Conditionally Approved - Closed' PYTHON_9.3 #CalculateField SGA2019 RELAY 'YES' PYTHON_9.3 #FeatureClassToFeatureClass SGA2019 G:\DATABASE_MASTER\Mohan2019\Current_SGAdata\SSData.gdb\SGA SGA # "OBJECTID_1 "OBJECTID_1" true true false 4 Long 0 0 ,First,#,SGA2019,OBJECTID_1,-1,-1;OBJECTID_2 "OBJECTID_2" true true false 4 Long 0 0 ,First,#,SGA2019,OBJECTID_2,-1,-1;OBJECTID "OBJECTID" true true false 4 Long 0 0 ,First,#,SGA2019,OBJECTID,-1,-1;OBJECTID_3 "OBJECTID_3" true true false 4 Long 0 0 ,First,#,SGA2019,OBJECTID_3,-1,-1;SGA_INDEX "SGA_INDEX" true true false 4 Long 0 0 ,First,#,SGA2019,SGA_INDEX,-1,-1;REGION "REGION" true true false 80 Text 0 0 ,First,#,SGA2019,REGION,-1,-1;GROW_AREA "GROW_AREA" true true false 80 Text 0 0 ,First,#,SGA2019,GROW_AREA,-1,-1;DSHA_NAME "DSHA_NAME" true true false 80 Text 0 0 ,First,#,SGA2019,DSHA_NAME,-1,-1;DSHA_ID "DSHA_ID" true true false 80 Text 0 0 ,First,#,SGA2019,DSHA_ID,-1,-1;DSHA_AREA "DSHA_AREA" true true false 80 Text 0 0 ,First,#,SGA2019,DSHA_AREA,-1,-1;DSHA_CODE "DSHA_CODE" true true false 80 Text 0 0 ,First,#,SGA2019,DSHA_CODE,-1,-1;DSHA_LABEL "DSHA_LABEL" true true false 80 Text 0 0 ,First,#,SGA2019,DSHA_LABEL,-1,-1;HA_CLASS "HA_CLASS" true true false 80 Text 0 0 ,First,#,SGA2019,HA_CLASS,-1,-1;HA_CLASSID "HA_CLASSID" true true false 80 Text 0 0 ,First,#,SGA2019,HA_CLASSID,-1,-1;HA_NAME "HA_NAME" true true false 80 Text 0 0 ,First,#,SGA2019,HA_NAME,-1,-1;HA_NAMEID "HA_NAMEID" true true false 80 Text 0 0 ,First,#,SGA2019,HA_NAMEID,-1,-1;HA_STATUS "HA_STATUS" true true false 80 Text 0 0 ,First,#,SGA2019,HA_STATUS,-1,-1;HA_AREA "HA_AREA" true true false 80 Text 0 0 ,First,#,SGA2019,HA_AREA,-1,-1;HA_SUBAREA "HA_SUBAREA" true true false 80 Text 0 0 ,First,#,SGA2019,HA_SUBAREA,-1,-1;HA_CODE "HA_CODE" true true false 80 Text 0 0 ,First,#,SGA2019,HA_CODE,-1,-1;HA_LABEL "HA_LABEL" true true false 80 Text 0 0 ,First,#,SGA2019,HA_LABEL,-1,-1;MAP_NAME "MAP_NAME" true true false 80 Text 0 0 ,First,#,SGA2019,MAP_NAME,-1,-1;MAP_NUMBER "MAP_NUMBER" true true false 80 Text 0 0 ,First,#,SGA2019,MAP_NUMBER,-1,-1;MAP_ID "MAP_ID" true true false 80 Text 0 0 ,First,#,SGA2019,MAP_ID,-1,-1;COUNTY "COUNTY" true true false 80 Text 0 0 ,First,#,SGA2019,COUNTY,-1,-1;JURISDCTN "JURISDCTN" true true false 80 Text 0 0 ,First,#,SGA2019,JURISDCTN,-1,-1;WATER_DES "WATER_DES" true true false 80 Text 0 0 ,First,#,SGA2019,WATER_DES,-1,-1;SURFACE "SURFACE" true true false 80 Text 0 0 ,First,#,SGA2019,SURFACE,-1,-1;RELAY "RELAY" true true false 80 Text 0 0 ,First,#,SGA2019,RELAY,-1,-1;CREATOR "CREATOR" true true false 80 Text 0 0 ,First,#,SGA2019,CREATOR,-1,-1;CREATED "CREATED" true true false 80 Text 0 0 ,First,#,SGA2019,CREATED,-1,-1;UPDATED "UPDATED" true true false 80 Text 0 0 ,First,#,SGA2019,UPDATED,-1,-1;ACRES "ACRES" true true false 8 Double 0 0 ,First,#,SGA2019,ACRES,-1,-1;SQ_MILES "SQ_MILES" true true false 8 Double 0 0 ,First,#,SGA2019,SQ_MILES,-1,-1;SHAPE_Leng "SHAPE_Leng" true true false 8 Double 0 0 ,First,#,SGA2019,SHAPE_Leng,-1,-1;Shape_Le_1 "Shape_Le_1" true true false 8 Double 0 0 ,First,#,SGA2019,Shape_Le_1,-1,-1;GlobalID "GlobalID" true true false 80 Text 0 0 ,First,#,SGA2019,GlobalID,-1,-1;SHAPE_Le_2 "SHAPE_Le_2" true true false 8 Double 0 0 ,First,#,SGA2019,SHAPE_Le_2,-1,-1;GlobalID_2 "GlobalID_2" true true false 80 Text 0 0 ,First,#,SGA2019,GlobalID_2,-1,-1;Shape__Are "Shape__Are" true true false 8 Double 0 0 ,First,#,SGA2019,Shape__Are,-1,-1;Shape__Len "Shape__Len" true true false 8 Double 0 0 ,First,#,SGA2019,Shape__Len,-1,-1;GlobalID_3 "GlobalID_3" true true false 80 Text 0 0 ,First,#,SGA2019,GlobalID_3,-1,-1;Shape__A_1 "Shape__A_1" true true false 8 Double 0 0 ,First,#,SGA2019,Shape__A_1,-1,-1;Shape__L_1 "Shape__L_1" true true false 8 Double 0 0 ,First,#,SGA2019,Shape__L_1,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#,SGA2019,Shape_Length,-1,-1;Shape_Area "Shape_Area" false true true 8 Double 0 0 ,First,#,SGA2019,Shape_Area,-1,-1" #CopyFeatures G:\DATABASE_MASTER\Mohan2019\Current_SGAdata\SSData.gdb\SGA\SGA G:\DATABASE_MASTER\Mohan2019\Current_SGAdata\SSData.mdb\SGA # 0 0 0CalculateField SGA RELAY 'YES' PYTHON_9.3 #CalculateField SGA HA_CLASSID 'R' PYTHON_9.3 #CalculateField SGA HA_STATUS 'Closed' PYTHON_9.3 #CalculateField SGA RELAY 'YES' PYTHON_9.3 #CalculateField SGA UPDATED '2-12-2019' PYTHON_9.3 #CalculateField SGA RELAY 'YES' PYTHON_9.3 #CalculateField SGA UPDATED '02-13-2019' PYTHON_9.3 #FeatureClassToFeatureClass SGA_04092019 G:\DATABASE_MASTER\Mohan2019\Current_SGAdata\ShellfishData2019.mdb\SGA SGA # "OBJECTID_1 "OBJECTID_1" true true false 10 Long 0 10 ,First,#,SGA_04092019,OBJECTID_1,-1,-1;OBJECTID_2 "OBJECTID_2" true true false 10 Long 0 10 ,First,#,SGA_04092019,OBJECTID_2,-1,-1;OBJECTID_3 "OBJECTID_3" true true false 10 Long 0 10 ,First,#,SGA_04092019,OBJECTID_3,-1,-1;OBJECTID "OBJECTID" true true false 10 Long 0 10 ,First,#,SGA_04092019,OBJECTID,-1,-1;OBJECTID_4 "OBJECTID_4" true true false 10 Long 0 10 ,First,#,SGA_04092019,OBJECTID_4,-1,-1;SGA_INDEX "SGA_INDEX" true true false 10 Long 0 10 ,First,#,SGA_04092019,SGA_INDEX,-1,-1;REGION "REGION" true true false 80 Text 0 0 ,First,#,SGA_04092019,REGION,-1,-1;GROW_AREA "GROW_AREA" true true false 80 Text 0 0 ,First,#,SGA_04092019,GROW_AREA,-1,-1;DSHA_NAME "DSHA_NAME" true true false 80 Text 0 0 ,First,#,SGA_04092019,DSHA_NAME,-1,-1;DSHA_ID "DSHA_ID" true true false 80 Text 0 0 ,First,#,SGA_04092019,DSHA_ID,-1,-1;DSHA_AREA "DSHA_AREA" true true false 80 Text 0 0 ,First,#,SGA_04092019,DSHA_AREA,-1,-1;DSHA_CODE "DSHA_CODE" true true false 80 Text 0 0 ,First,#,SGA_04092019,DSHA_CODE,-1,-1;DSHA_LABEL "DSHA_LABEL" true true false 80 Text 0 0 ,First,#,SGA_04092019,DSHA_LABEL,-1,-1;HA_CLASS "HA_CLASS" true true false 80 Text 0 0 ,First,#,SGA_04092019,HA_CLASS,-1,-1;HA_CLASSID "HA_CLASSID" true true false 80 Text 0 0 ,First,#,SGA_04092019,HA_CLASSID,-1,-1;HA_NAME "HA_NAME" true true false 80 Text 0 0 ,First,#,SGA_04092019,HA_NAME,-1,-1;HA_NAMEID "HA_NAMEID" true true false 80 Text 0 0 ,First,#,SGA_04092019,HA_NAMEID,-1,-1;HA_STATUS "HA_STATUS" true true false 80 Text 0 0 ,First,#,SGA_04092019,HA_STATUS,-1,-1;HA_AREA "HA_AREA" true true false 80 Text 0 0 ,First,#,SGA_04092019,HA_AREA,-1,-1;HA_SUBAREA "HA_SUBAREA" true true false 80 Text 0 0 ,First,#,SGA_04092019,HA_SUBAREA,-1,-1;HA_CODE "HA_CODE" true true false 80 Text 0 0 ,First,#,SGA_04092019,HA_CODE,-1,-1;HA_LABEL "HA_LABEL" true true false 80 Text 0 0 ,First,#,SGA_04092019,HA_LABEL,-1,-1;MAP_NAME "MAP_NAME" true true false 80 Text 0 0 ,First,#,SGA_04092019,MAP_NAME,-1,-1;MAP_NUMBER "MAP_NUMBER" true true false 80 Text 0 0 ,First,#,SGA_04092019,MAP_NUMBER,-1,-1;MAP_ID "MAP_ID" true true false 80 Text 0 0 ,First,#,SGA_04092019,MAP_ID,-1,-1;COUNTY "COUNTY" true true false 80 Text 0 0 ,First,#,SGA_04092019,COUNTY,-1,-1;JURISDCTN "JURISDCTN" true true false 80 Text 0 0 ,First,#,SGA_04092019,JURISDCTN,-1,-1;WATER_DES "WATER_DES" true true false 80 Text 0 0 ,First,#,SGA_04092019,WATER_DES,-1,-1;SURFACE "SURFACE" true true false 80 Text 0 0 ,First,#,SGA_04092019,SURFACE,-1,-1;RELAY "RELAY" true true false 80 Text 0 0 ,First,#,SGA_04092019,RELAY,-1,-1;CREATOR "CREATOR" true true false 80 Text 0 0 ,First,#,SGA_04092019,CREATOR,-1,-1;CREATED "CREATED" true true false 80 Text 0 0 ,First,#,SGA_04092019,CREATED,-1,-1;UPDATED "UPDATED" true true false 80 Text 0 0 ,First,#,SGA_04092019,UPDATED,-1,-1;ACRES "ACRES" true true false 19 Double 0 0 ,First,#,SGA_04092019,ACRES,-1,-1;SQ_MILES "SQ_MILES" true true false 19 Double 0 0 ,First,#,SGA_04092019,SQ_MILES,-1,-1;SHAPE_Leng "SHAPE_Leng" true true false 19 Double 0 0 ,First,#,SGA_04092019,SHAPE_Leng,-1,-1;Shape_Le_1 "Shape_Le_1" true true false 19 Double 0 0 ,First,#,SGA_04092019,Shape_Le_1,-1,-1;GlobalID "GlobalID" true true false 80 Text 0 0 ,First,#,SGA_04092019,GlobalID,-1,-1;SHAPE_Le_2 "SHAPE_Le_2" true true false 19 Double 0 0 ,First,#,SGA_04092019,SHAPE_Le_2,-1,-1;GlobalID_2 "GlobalID_2" true true false 80 Text 0 0 ,First,#,SGA_04092019,GlobalID_2,-1,-1;Shape__Are "Shape__Are" true true false 19 Double 0 0 ,First,#,SGA_04092019,Shape__Are,-1,-1;Shape__Len "Shape__Len" true true false 19 Double 0 0 ,First,#,SGA_04092019,Shape__Len,-1,-1;GlobalID_3 "GlobalID_3" true true false 80 Text 0 0 ,First,#,SGA_04092019,GlobalID_3,-1,-1;Shape__A_1 "Shape__A_1" true true false 19 Double 0 0 ,First,#,SGA_04092019,Shape__A_1,-1,-1;Shape__L_1 "Shape__L_1" true true false 19 Double 0 0 ,First,#,SGA_04092019,Shape__L_1,-1,-1;Shape_Le_3 "Shape_Le_3" true true false 19 Double 0 0 ,First,#,SGA_04092019,Shape_Le_3,-1,-1;Shape_Area "Shape_Area" true true false 19 Double 0 0 ,First,#,SGA_04092019,Shape_Area,-1,-1" #CalculateField "SGA - Proc08232019" REGION 'South' PYTHON_9.3 #CalculateField "SGA - Proc08232019" DSHA_NAME 'Stump Sound Area' PYTHON_9.3 #CalculateField "SGA - Proc08232019" DSHA_ID 'B-9' PYTHON_9.3 #CalculateField "SGA - Proc08232019" DSHA_AREA 'B' PYTHON_9.3 #CalculateField "SGA - Proc08232019" DSHA_CODE 'b9' PYTHON_9.3 #CalculateField "SGA - Proc08232019" DSHA_LABEL 'B-9' PYTHON_9.3 #CalculateField "SGA - Proc08232019" HA_CLASSID 'CA-O' PYTHON_9.3 #CalculateField "SGA - Proc08232019" HA_NAMEID 'B-9 CA-O 1' PYTHON_9.3 #CalculateField "SGA - Proc08232019" HA_STATUS 'Open' PYTHON_9.3 #CalculateField "SGA - Proc08232019" HA_AREA 'B' PYTHON_9.3 #CalculateField "SGA - Proc08232019" HA_SUBAREA 9 PYTHON_9.3 #CalculateField "SGA - Proc08232019" HA_CODE 'b9cao1' PYTHON_9.3 #CalculateField "SGA - Proc08232019" MAP_NAME 'Stump Sound Area' PYTHON_9.3 #CalculateField "SGA - Proc08232019" MAP_NUMBER 'Map 42' PYTHON_9.3 #CalculateField "SGA - Proc08232019" JURISDCTN 'DMF' PYTHON_9.3 #CalculateField "SGA - Proc08232019" WATER_DES 'coastal' PYTHON_9.3 #CalculateField "SGA - Proc08232019" RELAY 'N/A' PYTHON_9.3 #CalculateField "SGA - Proc08232019" CREATOR 'GIS Program, NC DMF ; DEH-SSB' PYTHON_9.3 #CalculateField "SGA - Proc08232019" UPDATED '9-12-19' PYTHON_9.3 #CalculateField DMFSS.DBO.SGA WATER_DES 'land' PYTHON_9.3 #CalculateField "Conditional Management Units" HA_STATUS 'Open' PYTHON_9.3 #CalculateField sga HA_STATUS 'Closed' PYTHON_9.3 #FeatureClassToFeatureClass sga G:\DATABASE_MASTER\SHELLFISH_DATA.mdb\SGA SGA # "OBJECTID_1 "OBJECTID_1" true true false 10 Long 0 10 ,First,#,sga,OBJECTID_1,-1,-1;OBJECTID_2 "OBJECTID_2" true true false 10 Long 0 10 ,First,#,sga,OBJECTID_2,-1,-1;OBJECTID_3 "OBJECTID_3" true true false 10 Long 0 10 ,First,#,sga,OBJECTID_3,-1,-1;OBJECTID_4 "OBJECTID_4" true true false 10 Long 0 10 ,First,#,sga,OBJECTID_4,-1,-1;OBJECTID "OBJECTID" true true false 10 Long 0 10 ,First,#,sga,OBJECTID,-1,-1;OBJECTID_5 "OBJECTID_5" true true false 10 Long 0 10 ,First,#,sga,OBJECTID_5,-1,-1;SGA_INDEX "SGA_INDEX" true true false 10 Long 0 10 ,First,#,sga,SGA_INDEX,-1,-1;REGION "REGION" true true false 80 Text 0 0 ,First,#,sga,REGION,-1,-1;GROW_AREA "GROW_AREA" true true false 80 Text 0 0 ,First,#,sga,GROW_AREA,-1,-1;DSHA_NAME "DSHA_NAME" true true false 80 Text 0 0 ,First,#,sga,DSHA_NAME,-1,-1;DSHA_ID "DSHA_ID" true true false 80 Text 0 0 ,First,#,sga,DSHA_ID,-1,-1;DSHA_AREA "DSHA_AREA" true true false 80 Text 0 0 ,First,#,sga,DSHA_AREA,-1,-1;DSHA_CODE "DSHA_CODE" true true false 80 Text 0 0 ,First,#,sga,DSHA_CODE,-1,-1;DSHA_LABEL "DSHA_LABEL" true true false 80 Text 0 0 ,First,#,sga,DSHA_LABEL,-1,-1;HA_CLASS "HA_CLASS" true true false 80 Text 0 0 ,First,#,sga,HA_CLASS,-1,-1;HA_CLASSID "HA_CLASSID" true true false 80 Text 0 0 ,First,#,sga,HA_CLASSID,-1,-1;HA_NAME "HA_NAME" true true false 80 Text 0 0 ,First,#,sga,HA_NAME,-1,-1;HA_NAMEID "HA_NAMEID" true true false 80 Text 0 0 ,First,#,sga,HA_NAMEID,-1,-1;HA_STATUS "HA_STATUS" true true false 80 Text 0 0 ,First,#,sga,HA_STATUS,-1,-1;HA_AREA "HA_AREA" true true false 80 Text 0 0 ,First,#,sga,HA_AREA,-1,-1;HA_SUBAREA "HA_SUBAREA" true true false 80 Text 0 0 ,First,#,sga,HA_SUBAREA,-1,-1;HA_CODE "HA_CODE" true true false 80 Text 0 0 ,First,#,sga,HA_CODE,-1,-1;HA_LABEL "HA_LABEL" true true false 80 Text 0 0 ,First,#,sga,HA_LABEL,-1,-1;MAP_NAME "MAP_NAME" true true false 80 Text 0 0 ,First,#,sga,MAP_NAME,-1,-1;MAP_NUMBER "MAP_NUMBER" true true false 80 Text 0 0 ,First,#,sga,MAP_NUMBER,-1,-1;MAP_ID "MAP_ID" true true false 80 Text 0 0 ,First,#,sga,MAP_ID,-1,-1;COUNTY "COUNTY" true true false 80 Text 0 0 ,First,#,sga,COUNTY,-1,-1;JURISDCTN "JURISDCTN" true true false 80 Text 0 0 ,First,#,sga,JURISDCTN,-1,-1;WATER_DES "WATER_DES" true true false 80 Text 0 0 ,First,#,sga,WATER_DES,-1,-1;SURFACE "SURFACE" true true false 80 Text 0 0 ,First,#,sga,SURFACE,-1,-1;RELAY "RELAY" true true false 80 Text 0 0 ,First,#,sga,RELAY,-1,-1;CREATOR "CREATOR" true true false 80 Text 0 0 ,First,#,sga,CREATOR,-1,-1;CREATED "CREATED" true true false 80 Text 0 0 ,First,#,sga,CREATED,-1,-1;UPDATED "UPDATED" true true false 80 Text 0 0 ,First,#,sga,UPDATED,-1,-1;ACRES "ACRES" true true false 19 Double 0 0 ,First,#,sga,ACRES,-1,-1;SQ_MILES "SQ_MILES" true true false 19 Double 0 0 ,First,#,sga,SQ_MILES,-1,-1;SHAPE_Leng "SHAPE_Leng" true true false 19 Double 0 0 ,First,#,sga,SHAPE_Leng,-1,-1;Shape_Le_1 "Shape_Le_1" true true false 19 Double 0 0 ,First,#,sga,Shape_Le_1,-1,-1;GlobalID "GlobalID" true true false 80 Text 0 0 ,First,#,sga,GlobalID,-1,-1;SHAPE_Le_2 "SHAPE_Le_2" true true false 19 Double 0 0 ,First,#,sga,SHAPE_Le_2,-1,-1;GlobalID_2 "GlobalID_2" true true false 80 Text 0 0 ,First,#,sga,GlobalID_2,-1,-1;Shape__Are "Shape__Are" true true false 19 Double 0 0 ,First,#,sga,Shape__Are,-1,-1;Shape__Len "Shape__Len" true true false 19 Double 0 0 ,First,#,sga,Shape__Len,-1,-1;GlobalID_3 "GlobalID_3" true true false 80 Text 0 0 ,First,#,sga,GlobalID_3,-1,-1;Shape__A_1 "Shape__A_1" true true false 19 Double 0 0 ,First,#,sga,Shape__A_1,-1,-1;Shape__L_1 "Shape__L_1" true true false 19 Double 0 0 ,First,#,sga,Shape__L_1,-1,-1;Shape_Le_3 "Shape_Le_3" true true false 19 Double 0 0 ,First,#,sga,Shape_Le_3,-1,-1;GlobalID_1 "GlobalID_1" true true false 38 Text 0 0 ,First,#,sga,GlobalID_1,-1,-1;Shape_Le_4 "Shape_Le_4" true true false 19 Double 0 0 ,First,#,sga,Shape_Le_4,-1,-1;Shape_Area "Shape_Area" true true false 19 Double 0 0 ,First,#,sga,Shape_Area,-1,-1" #FeatureClassToFeatureClass sga G:\DATABASE_MASTER\SHELLFISH_DATA.mdb\SGA SGA # "OBJECTID_1 "OBJECTID_1" true true false 4 Long 0 0 ,First,#,sga,OBJECTID_1,-1,-1;OBJECTID_2 "OBJECTID_2" true true false 4 Long 0 0 ,First,#,sga,OBJECTID_2,-1,-1;OBJECTID_3 "OBJECTID_3" true true false 4 Long 0 0 ,First,#,sga,OBJECTID_3,-1,-1;OBJECTID_4 "OBJECTID_4" true true false 4 Long 0 0 ,First,#,sga,OBJECTID_4,-1,-1;OBJECTID_5 "OBJECTID_5" true true false 4 Long 0 0 ,First,#,sga,OBJECTID_5,-1,-1;OBJECTID "OBJECTID" true true false 4 Long 0 0 ,First,#,sga,OBJECTID,-1,-1;OBJECTID_6 "OBJECTID_6" true true false 4 Long 0 0 ,First,#,sga,OBJECTID_6,-1,-1;SGA_INDEX "SGA_INDEX" true true false 4 Long 0 0 ,First,#,sga,SGA_INDEX,-1,-1;REGION "REGION" true true false 80 Text 0 0 ,First,#,sga,REGION,-1,-1;GROW_AREA "GROW_AREA" true true false 80 Text 0 0 ,First,#,sga,GROW_AREA,-1,-1;DSHA_NAME "DSHA_NAME" true true false 80 Text 0 0 ,First,#,sga,DSHA_NAME,-1,-1;DSHA_ID "DSHA_ID" true true false 80 Text 0 0 ,First,#,sga,DSHA_ID,-1,-1;DSHA_AREA "DSHA_AREA" true true false 80 Text 0 0 ,First,#,sga,DSHA_AREA,-1,-1;DSHA_CODE "DSHA_CODE" true true false 80 Text 0 0 ,First,#,sga,DSHA_CODE,-1,-1;DSHA_LABEL "DSHA_LABEL" true true false 80 Text 0 0 ,First,#,sga,DSHA_LABEL,-1,-1;HA_CLASS "HA_CLASS" true true false 80 Text 0 0 ,First,#,sga,HA_CLASS,-1,-1;HA_CLASSID "HA_CLASSID" true true false 80 Text 0 0 ,First,#,sga,HA_CLASSID,-1,-1;HA_NAME "HA_NAME" true true false 80 Text 0 0 ,First,#,sga,HA_NAME,-1,-1;HA_NAMEID "HA_NAMEID" true true false 80 Text 0 0 ,First,#,sga,HA_NAMEID,-1,-1;HA_STATUS "HA_STATUS" true true false 80 Text 0 0 ,First,#,sga,HA_STATUS,-1,-1;HA_AREA "HA_AREA" true true false 80 Text 0 0 ,First,#,sga,HA_AREA,-1,-1;HA_SUBAREA "HA_SUBAREA" true true false 80 Text 0 0 ,First,#,sga,HA_SUBAREA,-1,-1;HA_CODE "HA_CODE" true true false 80 Text 0 0 ,First,#,sga,HA_CODE,-1,-1;HA_LABEL "HA_LABEL" true true false 80 Text 0 0 ,First,#,sga,HA_LABEL,-1,-1;MAP_NAME "MAP_NAME" true true false 80 Text 0 0 ,First,#,sga,MAP_NAME,-1,-1;MAP_NUMBER "MAP_NUMBER" true true false 80 Text 0 0 ,First,#,sga,MAP_NUMBER,-1,-1;MAP_ID "MAP_ID" true true false 80 Text 0 0 ,First,#,sga,MAP_ID,-1,-1;COUNTY "COUNTY" true true false 80 Text 0 0 ,First,#,sga,COUNTY,-1,-1;JURISDCTN "JURISDCTN" true true false 80 Text 0 0 ,First,#,sga,JURISDCTN,-1,-1;WATER_DES "WATER_DES" true true false 80 Text 0 0 ,First,#,sga,WATER_DES,-1,-1;SURFACE "SURFACE" true true false 80 Text 0 0 ,First,#,sga,SURFACE,-1,-1;RELAY "RELAY" true true false 80 Text 0 0 ,First,#,sga,RELAY,-1,-1;CREATOR "CREATOR" true true false 80 Text 0 0 ,First,#,sga,CREATOR,-1,-1;CREATED "CREATED" true true false 80 Text 0 0 ,First,#,sga,CREATED,-1,-1;UPDATED "UPDATED" true true false 80 Text 0 0 ,First,#,sga,UPDATED,-1,-1;ACRES "ACRES" true true false 8 Double 0 0 ,First,#,sga,ACRES,-1,-1;SQ_MILES "SQ_MILES" true true false 8 Double 0 0 ,First,#,sga,SQ_MILES,-1,-1;SHAPE_Leng "SHAPE_Leng" true true false 8 Double 0 0 ,First,#,sga,SHAPE_Leng,-1,-1;Shape_Le_1 "Shape_Le_1" true true false 8 Double 0 0 ,First,#,sga,Shape_Le_1,-1,-1;GlobalID "GlobalID" true true false 80 Text 0 0 ,First,#,sga,GlobalID,-1,-1;SHAPE_Le_2 "SHAPE_Le_2" true true false 8 Double 0 0 ,First,#,sga,SHAPE_Le_2,-1,-1;GlobalID_2 "GlobalID_2" true true false 80 Text 0 0 ,First,#,sga,GlobalID_2,-1,-1;Shape__Are "Shape__Are" true true false 8 Double 0 0 ,First,#,sga,Shape__Are,-1,-1;Shape__Len "Shape__Len" true true false 8 Double 0 0 ,First,#,sga,Shape__Len,-1,-1;GlobalID_3 "GlobalID_3" true true false 80 Text 0 0 ,First,#,sga,GlobalID_3,-1,-1;Shape__A_1 "Shape__A_1" true true false 8 Double 0 0 ,First,#,sga,Shape__A_1,-1,-1;Shape__L_1 "Shape__L_1" true true false 8 Double 0 0 ,First,#,sga,Shape__L_1,-1,-1;Shape_Le_3 "Shape_Le_3" true true false 8 Double 0 0 ,First,#,sga,Shape_Le_3,-1,-1;GlobalID_1 "GlobalID_1" true true false 38 Text 0 0 ,First,#,sga,GlobalID_1,-1,-1;Shape_Le_4 "Shape_Le_4" true true false 8 Double 0 0 ,First,#,sga,Shape_Le_4,-1,-1;Shape_Le_5 "Shape_Le_5" true true false 8 Double 0 0 ,First,#,sga,Shape_Le_5,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#,sga,Shape_Length,-1,-1;Shape_Area "Shape_Area" false true true 8 Double 0 0 ,First,#,sga,Shape_Area,-1,-1" #CalculateField SGA REGION 'South' PYTHON_9.3 #CalculateField SGA GROW_AREA ' ' PYTHON_9.3 #CalculateField SGA HA_STATUS " " VB #CalculateField SGA RELAY 'N/A' PYTHON_9.3 #CopyFeatures SGA G:\DATABASE_MASTER\requests\Andy\2020\ProcEditsRound3\ProcEditsRound3.gdb\SGA # 0 0 0Dissolve Opne_Beta01282020 C:\Users\mpalleti\Documents\2020ProcEdits\ProcEditsRound2\OpenWaters01282020.shp HA_STATUS # MULTI_PART DISSOLVE_LINESCalculateField owTemp HA_CLASS ""B_"& [FID]" VB #FeatureClassToFeatureClass owTemp G:\Mohan_temp\TempClosure\ClosureMU.gdb TempClosureMU # "HA_STATUS "HA_STATUS" true true false 80 Text 0 0 ,First,#,owTemp,HA_STATUS,-1,-1;HA_CLASS "HA_CLASS" true true false 50 Text 0 0 ,First,#,owTemp,HA_CLASS,-1,-1;ClosingDate "ClosingDate" true true false 8 Date 0 0 ,First,#,owTemp,ClosingDate,-1,-1;OpeningDate "OpeningDate" true true false 8 Date 0 0 ,First,#,owTemp,OpeningDate,-1,-1;PollutionLevel "PollutionLevel" true true false 4 Float 0 0 ,First,#,owTemp,PollutionLevel,-1,-1;Grow_Area "Grow_Area" true true false 2 Short 0 0 ,First,#,owTemp,Grow_Area,-1,-1;County "County" true true false 50 Text 0 0 ,First,#,owTemp,County,-1,-1;Comments "Comments" true true false 50 Text 0 0 ,First,#,owTemp,Comments,-1,-1;Shape_Length "Shape_Length" false true true 8 Double 0 0 ,First,#,owTemp,Shape_Length,-1,-1;Shape_Area "Shape_Area" false true true 8 Double 0 0 ,First,#,owTemp,Shape_Area,-1,-1" #CalculateField TempClosureMU LABELS [HA_CLASS] VB #CalculateField TempClosureMU Status [HA_STATUS] VB #CopyFeatures TempClosureMU C:\Users\mpalleti\Documents\2020ProcEdits\BetaApproved02182020\SGA.gdb\TempClosureMU # 0 0 0CalculateField owTemp LABELS [HA_CLASS] VB #CopyFeatures owTemp G:\SSGIS\DATABASE_MASTER\requests\Andy\2020\CMU_Beta2\SGA2020_Beta2.mdb\owTemp # 0 0 0CopyFeatures T2020_March29_CMA C:\Users\mpalleti\Documents\PMR\SGA_Proc2020\SGA_Edits_04_01_2020.gdb\T2020_March29_CMA # 0 0 0CopyFeatures T2020_April_09_CMA_1 C:\Users\mpalleti\Documents\PMR\SGA_Proc2020\SGA_2020_04062020.gdb\T2020_April_09_CMA_1 # 0 0 0CopyFeatures T2020_April_09_CMA_1 G:\DATABASE_MASTER\requests\Andy\2020\CMU_Beta2\SGA2020_Beta2.mdb\T2020_April_09_CMA_1 # 0 0 0CopyFeatures CMU_2020_0415 C:\Users\mpalleti\Documents\PMR\SGA_Proc2020\SGA_2020_04062020.gdb\CMU_2020_0415 # 0 0 0202009021720100020200902172010001500000005000ItemDescription Version 6.2 (Build 9200) ; Esri ArcGIS 10.6.0.8321CMU1-79.073265-75.35569736.59178933.736647Last editted by Mohan Palleti on 10-03-2019DMFShellfish Growing Area as of 10-03-2019File Geodatabase Feature Class0.000datasetEPSG8.2.10(10.3.1)0SimpleFALSE0TRUEFALSECMUFeature Class0OBJECTID_12FIDOID400Internal feature number.EsriSequential unique whole numbers that are automatically generated.OBJECTID_1OBJECTID_1Integer400Internal feature number.EsriSequential unique whole numbers that are automatically generated.OBJECTIDOBJECTIDInteger400Internal feature number.EsriSequential unique whole numbers that are automatically generated.OBJECTID_2OBJECTID_2Integer400OBJECTID_3OBJECTID_3Integer400OBJECTID_4OBJECTID_4Integer400OBJECTID_5OBJECTID_5Integer400ShapeShapeGeometry000Feature geometry.EsriCoordinates defining the features.HA_STATUSHA_STATUSString8000HA_CLASSHA_CLASSString5000ClosingDatClosingDatDate800OpeningDatOpeningDatDate800CountyCountyString5000CommentsCommentsString5000LABELSLABELSString5000StatusStatusString5000Shape_LengShape_LengDouble800Shape_Le_1Shape_Le_1Double800Shape_Le_2Shape_Le_2Double800Shape_Le_3Shape_Le_3Double800Shape_Le_4Shape_Le_4Double800Shape_Le_5Shape_Le_5Double800Shape_LengthShape_LengthDouble800Length of feature in internal units.EsriPositive real numbers that are automatically generated.Shape_AreaShape_AreaDouble800Area of feature in internal units squared.EsriPositive real numbers that are automatically generated.20200902
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.shx b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.shx
deleted file mode 100644
index 57d7550..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_albers.dbf b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_albers.dbf
deleted file mode 100644
index 6875142..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_albers.prj b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_albers.prj
deleted file mode 100644
index 2bf5bea..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD_1983_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_albers.shp b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_albers.shp
deleted file mode 100644
index a63ffb7..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_albers.shx b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_albers.shx
deleted file mode 100644
index 602eeaf..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_albers.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.dbf b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.dbf
deleted file mode 100644
index 10fdb59..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.prj b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.prj
deleted file mode 100644
index 4bab51b..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD83_Conus_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Albers"],PARAMETER["standard_parallel_1",29.5],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",23],PARAMETER["central_meridian",-96],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.qpj b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.qpj
deleted file mode 100644
index b8817a5..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.qpj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD83 / Conus Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",29.5],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_center",23],PARAMETER["longitude_of_center",-96],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],AUTHORITY["EPSG","5070"]]
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.shp b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.shp
deleted file mode 100644
index 88bcca2..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.shx b/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.shx
deleted file mode 100644
index 3847f44..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_10kmbuf_albers.dbf b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_10kmbuf_albers.dbf
deleted file mode 100644
index 4dceea1..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_10kmbuf_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_10kmbuf_albers.prj b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_10kmbuf_albers.prj
deleted file mode 100644
index 2bf5bea..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_10kmbuf_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD_1983_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_10kmbuf_albers.shp b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_10kmbuf_albers.shp
deleted file mode 100644
index ee1feeb..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_10kmbuf_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_10kmbuf_albers.shx b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_10kmbuf_albers.shx
deleted file mode 100644
index c77710e..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_10kmbuf_albers.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_albers.dbf b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_albers.dbf
deleted file mode 100644
index 6ced645..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_albers.prj b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_albers.prj
deleted file mode 100644
index 2bf5bea..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD_1983_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_albers.shp b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_albers.shp
deleted file mode 100644
index d281744..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_albers.shx b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_albers.shx
deleted file mode 100644
index d532332..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_albers.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_class_albers.dbf b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_class_albers.dbf
deleted file mode 100644
index b163639..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_class_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_class_albers.prj b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_class_albers.prj
deleted file mode 100644
index 2bf5bea..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_class_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD_1983_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_class_albers.shp b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_class_albers.shp
deleted file mode 100644
index 8c3449a..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_class_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_class_albers.shx b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_class_albers.shx
deleted file mode 100644
index 10967af..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_class_albers.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_simple_albers.dbf b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_simple_albers.dbf
deleted file mode 100644
index 29e57d5..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_simple_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_simple_albers.prj b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_simple_albers.prj
deleted file mode 100644
index 2bf5bea..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_simple_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD_1983_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_simple_albers.shp b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_simple_albers.shp
deleted file mode 100644
index a306303..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_simple_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_simple_albers.shx b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_simple_albers.shx
deleted file mode 100644
index 7982a29..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds/sga_bounds_simple_albers.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.dbf b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.dbf
deleted file mode 100644
index ed05da8..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.prj b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.prj
deleted file mode 100644
index a30c00a..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.prj
+++ /dev/null
@@ -1 +0,0 @@
-GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.shp b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.shp
deleted file mode 100644
index e6968c8..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.shx b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.shx
deleted file mode 100644
index 9d3ad1e..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.xml b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.xml
deleted file mode 100644
index 79eb0fd..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.xml
+++ /dev/null
@@ -1,573 +0,0 @@
-
-
-1545314935124r6245111072571568
-
-
-utf8
-
-
-dataset
-
-
-dataset
-
-
-
-
-pointOfContact
-
-
-
-
-2018-12-20
-
-
-ISO 19139 Geographic Information - Metadata - Implementation Specification
-
-
-2007
-
-
-
-
-geometryOnly
-
-
-
-
-composite
-
-
-
-
-
-
-
-
-
-
-SGA
-
-
-
-
-2018-12-20
-
-
-publication
-
-
-
-
-
-
-NC Shellfish Sanitation and Recreational Water Quality Section
-
-
-pointOfContact
-
-
-
-
-
-
-The North Carolina (NC) Department of Environmental Quality(DEQ) Division of Marine Fisheries (DMF) - Shellfish Sanitation and Recreational Water Quality Section (SSRWQ) identifies Designated Shellfish Growing Areas (SGA) covering the entire NC coast. The SSRWQ performs water sampling at designated stations throughout the year to determine the extent of contamination of waters in each SGA. Based on these results, shoreline survey information, and hydrographic factors, the DMF disseminates proclamations to create closed harvesting areas with specified closure boundaries, in which the harvest of shellfish is prohibited. Waters within each SGA may be permanently closed (prohibited), restricted, open (approved), or subject to being opened or closed (conditionally approved open or conditionally approved closed) based on an existing management plan for the area.
-
-
-To delineate the designated shellfish growing areas of North Carolina and the classify harvesting areas within each SGA.
-
-
-Shellfish Sanitation and Recreational Water Quality Section of the NC Division of Marine Fisheries
-
-
-completed
-
-
-
-
-Andy Haines
-
-
-NC Shellfish Sanitation and Recreational Water Quality Section
-
-
-Program Lead
-
-
-pointOfContact
-
-
-
-
-
-
-United States
-
-
-Boundaries
-
-
-oceans
-
-
-FDA
-
-
-Estuary
-
-
-health
-
-
-North Carolina
-
-
-Shellfish
-
-
-Fisheries
-
-
-DMF
-
-
-NCDEQ
-
-
-
-
-
-
-United States
-
-
-Boundaries
-
-
-oceans
-
-
-FDA
-
-
-Estuary
-
-
-health
-
-
-North Carolina
-
-
-Shellfish
-
-
-Fisheries
-
-
-DMF
-
-
-NCDEQ
-
-
-
-
-
-
-United States
-
-
-Boundaries
-
-
-oceans
-
-
-FDA
-
-
-Estuary
-
-
-health
-
-
-North Carolina
-
-
-Shellfish
-
-
-Fisheries
-
-
-DMF
-
-
-NCDEQ
-
-
-
-
-
-
-United States
-
-
-Boundaries
-
-
-oceans
-
-
-FDA
-
-
-Estuary
-
-
-health
-
-
-North Carolina
-
-
-Shellfish
-
-
-Fisheries
-
-
-DMF
-
-
-NCDEQ
-
-
-
-
-
-
-United States
-
-
-Boundaries
-
-
-oceans
-
-
-FDA
-
-
-Estuary
-
-
-health
-
-
-North Carolina
-
-
-Shellfish
-
-
-Fisheries
-
-
-DMF
-
-
-NCDEQ
-
-
-
-
-
-
-United States
-
-
-Boundaries
-
-
-oceans
-
-
-FDA
-
-
-Estuary
-
-
-health
-
-
-North Carolina
-
-
-Shellfish
-
-
-Fisheries
-
-
-DMF
-
-
-NCDEQ
-
-
-
-
-
-
-United States
-
-
-Boundaries
-
-
-oceans
-
-
-FDA
-
-
-Estuary
-
-
-health
-
-
-North Carolina
-
-
-Shellfish
-
-
-Fisheries
-
-
-DMF
-
-
-NCDEQ
-
-
-
-
-
-
-United States
-
-
-Boundaries
-
-
-oceans
-
-
-FDA
-
-
-Estuary
-
-
-health
-
-
-North Carolina
-
-
-Shellfish
-
-
-Fisheries
-
-
-DMF
-
-
-NCDEQ
-
-
-
-
-
-
-United States
-
-
-Boundaries
-
-
-oceans
-
-
-FDA
-
-
-Estuary
-
-
-health
-
-
-North Carolina
-
-
-Shellfish
-
-
-Fisheries
-
-
-DMF
-
-
-NCDEQ
-
-
-
-
-
-
-United States
-
-
-Boundaries
-
-
-oceans
-
-
-FDA
-
-
-Estuary
-
-
-health
-
-
-North Carolina
-
-
-Shellfish
-
-
-Fisheries
-
-
-DMF
-
-
-NCDEQ
-
-
-
-
-
-
-United States
-
-
-Boundaries
-
-
-oceans
-
-
-FDA
-
-
-Estuary
-
-
-health
-
-
-North Carolina
-
-
-Shellfish
-
-
-Fisheries
-
-
-DMF
-
-
-NCDEQ
-
-
-
-
-vector
-
-
-eng
-
-
-utf8
-
-
-boundaries
-
-
-environment
-
-
-health
-
-
-inlandWaters
-
-
-oceans
-
-
-ESRI ArcGIS 10.6
-
-
-
-
-data is current to fiscal year 2019
-
-
-
-
--79.59592543043982
-
-
--74.26244214665536
-
-
-33.32318126439514
-
-
-37.044939881235024
-
-
-
-
-
-
-
-2018-12-20T09:12:43.014-05:00
-2019-12-31T00:00:00+00:00
-
-
-
-
-
-
-
-For online maps of growing areas and more information
-
-
-
-
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_albers.dbf b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_albers.dbf
deleted file mode 100644
index a5fc97e..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_albers.prj b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_albers.prj
deleted file mode 100644
index 2bf5bea..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD_1983_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_albers.shp b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_albers.shp
deleted file mode 100644
index a0b1c7a..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_albers.shx b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_albers.shx
deleted file mode 100644
index 3d95e38..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_albers.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.cpg b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.cpg
deleted file mode 100644
index 3ad133c..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.cpg
+++ /dev/null
@@ -1 +0,0 @@
-UTF-8
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.dbf b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.dbf
deleted file mode 100644
index 0c850b6..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.prj b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.prj
deleted file mode 100644
index 4bab51b..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD83_Conus_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Albers"],PARAMETER["standard_parallel_1",29.5],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_origin",23],PARAMETER["central_meridian",-96],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["Meter",1]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.qpj b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.qpj
deleted file mode 100644
index b8817a5..0000000
--- a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.qpj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD83 / Conus Albers",GEOGCS["NAD83",DATUM["North_American_Datum_1983",SPHEROID["GRS 1980",6378137,298.257222101,AUTHORITY["EPSG","7019"]],TOWGS84[0,0,0,0,0,0,0],AUTHORITY["EPSG","6269"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4269"]],PROJECTION["Albers_Conic_Equal_Area"],PARAMETER["standard_parallel_1",29.5],PARAMETER["standard_parallel_2",45.5],PARAMETER["latitude_of_center",23],PARAMETER["longitude_of_center",-96],PARAMETER["false_easting",0],PARAMETER["false_northing",0],UNIT["metre",1,AUTHORITY["EPSG","9001"]],AXIS["X",EAST],AXIS["Y",NORTH],AUTHORITY["EPSG","5070"]]
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.shp b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.shp
deleted file mode 100644
index 02096ac..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.shx b/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.shx
deleted file mode 100644
index f5d00e5..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_albers.dbf b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_albers.dbf
deleted file mode 100644
index 131857d..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_albers.prj b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_albers.prj
deleted file mode 100644
index a30e6f7..0000000
--- a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["North_America_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",20.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_albers.shp b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_albers.shp
deleted file mode 100644
index 8aa6d4e..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_albers.shx b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_albers.shx
deleted file mode 100644
index a1574d5..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_albers.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_wgs84.dbf b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_wgs84.dbf
deleted file mode 100644
index 131857d..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_wgs84.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_wgs84.prj b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_wgs84.prj
deleted file mode 100644
index f45cbad..0000000
--- a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_wgs84.prj
+++ /dev/null
@@ -1 +0,0 @@
-GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_wgs84.shp b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_wgs84.shp
deleted file mode 100644
index ed2a541..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_wgs84.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_wgs84.shx b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_wgs84.shx
deleted file mode 100644
index 58b8970..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/nc_bounds_10kmbuf_wgs84.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_albers.dbf b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_albers.dbf
deleted file mode 100644
index cf49d9a..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_albers.prj b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_albers.prj
deleted file mode 100644
index a30e6f7..0000000
--- a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["North_America_Albers_Equal_Area_Conic",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",20.0],PARAMETER["Standard_Parallel_2",60.0],PARAMETER["Latitude_Of_Origin",40.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_albers.shp b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_albers.shp
deleted file mode 100644
index f1114ce..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_albers.shx b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_albers.shx
deleted file mode 100644
index a07829a..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_albers.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_wgs84.dbf b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_wgs84.dbf
deleted file mode 100644
index cf49d9a..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_wgs84.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_wgs84.prj b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_wgs84.prj
deleted file mode 100644
index f45cbad..0000000
--- a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_wgs84.prj
+++ /dev/null
@@ -1 +0,0 @@
-GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_wgs84.shp b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_wgs84.shp
deleted file mode 100644
index 33f57d3..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_wgs84.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_wgs84.shx b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_wgs84.shx
deleted file mode 100644
index 65a983b..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds/state_bounds_wgs84.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/README.md b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/README.md
deleted file mode 100644
index 4e8898a..0000000
--- a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## README file for state_bounds_raw directory ##
-
-last updated: 20201102
-contact: Sheila Saia (ssaia at ncsu dot edu)
-
-**State_Boundaries.shp** - This file represents the state boundaries for the United States and was originally downloaded from https://hub.arcgis.com/datasets/f8730991034b46d2bed73a16a96765c6_55?geometry=166.851%2C13.656%2C8.823%2C59.927. Metdata can be found at https://www.arcgis.com/home/item.html?id=f8730991034b46d2bed73a16a96765c6. It was downloaded on 20201102. This is a little more detailed in terms of the outline for the coastal plane so I decided to use the TIGER data instead. I'm keeping this here for now.
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.cpg b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.cpg
deleted file mode 100644
index 3ad133c..0000000
--- a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.cpg
+++ /dev/null
@@ -1 +0,0 @@
-UTF-8
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.dbf b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.dbf
deleted file mode 100644
index 442c234..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.prj b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.prj
deleted file mode 100644
index a30c00a..0000000
--- a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.prj
+++ /dev/null
@@ -1 +0,0 @@
-GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.shp b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.shp
deleted file mode 100644
index 33f57d3..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.shx b/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.shx
deleted file mode 100644
index 65a983b..0000000
Binary files a/analysis/assets/nc/data/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds/lease_bounds_albers.dbf b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds/lease_bounds_albers.dbf
deleted file mode 100644
index d03830e..0000000
Binary files a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds/lease_bounds_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds/lease_bounds_albers.prj b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds/lease_bounds_albers.prj
deleted file mode 100644
index 2bf5bea..0000000
--- a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds/lease_bounds_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD_1983_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds/lease_bounds_albers.shp b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds/lease_bounds_albers.shp
deleted file mode 100644
index f4f87fa..0000000
Binary files a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds/lease_bounds_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds/lease_bounds_albers.shx b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds/lease_bounds_albers.shx
deleted file mode 100644
index c89affc..0000000
Binary files a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds/lease_bounds_albers.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.cpg b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.cpg
deleted file mode 100644
index 3ad133c..0000000
--- a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.cpg
+++ /dev/null
@@ -1 +0,0 @@
-UTF-8
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.dbf b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.dbf
deleted file mode 100644
index 7abea34..0000000
Binary files a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.prj b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.prj
deleted file mode 100644
index 92cd9cb..0000000
--- a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD_1983_StatePlane_North_Carolina_FIPS_3200_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.002616666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Foot_US",0.3048006096012192]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.sbn b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.sbn
deleted file mode 100644
index 6015cf8..0000000
Binary files a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.sbn and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.sbx b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.sbx
deleted file mode 100644
index 0c25add..0000000
Binary files a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.sbx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.shp b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.shp
deleted file mode 100644
index e9d059b..0000000
Binary files a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.shx b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.shx
deleted file mode 100644
index 51868e0..0000000
Binary files a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_bounds_raw/NCDMF_Lease_20220310.shx and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_albers.dbf b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_albers.dbf
deleted file mode 100644
index d03830e..0000000
Binary files a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_albers.dbf and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_albers.prj b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_albers.prj
deleted file mode 100644
index 2bf5bea..0000000
--- a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_albers.prj
+++ /dev/null
@@ -1 +0,0 @@
-PROJCS["NAD_1983_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_albers.shp b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_albers.shp
deleted file mode 100644
index 351106c..0000000
Binary files a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_albers.shp and /dev/null differ
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_db_wgs84.csv b/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_db_wgs84.csv
deleted file mode 100644
index 7b90547..0000000
--- a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_db_wgs84.csv
+++ /dev/null
@@ -1,177 +0,0 @@
-lease_id,cmu_name,grow_area_name,grow_area_desc,rainfall_thresh_in,longitude,latitude
-1-C-89,U127,C01,Mill Creek,1.5,-77.37712474648562,34.52824814590186
-194,U129,B09,Stump Sound,1.5,-77.47922439567765,34.48367334191693
-195,U130,B09,Stump Sound,1.5,-77.48642938998773,34.47144913314933
-447,U130,B09,Stump Sound,1.5,-77.50107242967285,34.46625287877696
-26-C-94,U127,C01,Mill Creek,1.5,-77.37364891729567,34.52511410365655
-9510,U072,E09,Core Sound Atlantic Bay Nelson Bay,2,-76.39325062807062,34.872183810828744
-8602,U072,E09,Core Sound Atlantic Bay Nelson Bay,2,-76.40715368421075,34.87183916612292
-9513-A,U072,E09,Core Sound Atlantic Bay Nelson Bay,2,-76.40774331650584,34.869068784687265
-443,U072,E09,Core Sound Atlantic Bay Nelson Bay,2,-76.3918094547213,34.87497858089525
-1259571,U106,E06,North River,3,-76.55094651397941,34.701302725294425
-2401,U041,E08,Core Sound Jarrett Bay,2,-76.49934276933729,34.775445512187666
-2-C-89,U127,C01,Mill Creek,1.5,-77.37337479540818,34.52449067440657
-887,U092,E04,Newport River,1,-76.72677246649418,34.77322257847059
-725A,U096,E04,Newport River,1.5,-76.66503767569404,34.75889661053035
-877,U102,E06,North River,1.5,-76.60686904928745,34.79022059271986
-8403,U131,B09,Stump Sound,1.5,-77.53788392726817,34.44950324118906
-8402A,U131,B09,Stump Sound,1.5,-77.5359349682097,34.449138440429635
-8402B,U131,B09,Stump Sound,1.5,-77.53776581294095,34.44818312792875
-684,U030,F04,Cedar Island,4,-76.30205523190452,35.002349022013156
-879,U128,C01,Mill Creek,1.5,-77.41507864513925,34.49654046409632
-385,U131,B09,Stump Sound,1.5,-77.50750728869053,34.46471483437293
-885,U126,C02,Sneads Ferry,3,-77.39318164842311,34.57372680221292
-25-67,U131,B09,Stump Sound,1.5,-77.51329084154168,34.45419169446511
-186,U130,B09,Stump Sound,1.5,-77.47195273531572,34.474082318377334
-425,U130,B09,Stump Sound,1.5,-77.47649128556176,34.47172470006152
-703,U102,E06,North River,1.5,-76.60522517149425,34.79356224334268
-9610,U063,D03,White Oak River,1.5,-77.11151394870694,34.70231023479771
-62-75,U144,B08,Topsail Sound,3,-77.59465990795842,34.40193629482594
-432,U131,B09,Stump Sound,1.5,-77.54314018471699,34.444743460572255
-440,U146,B08,Topsail Sound,3,-77.55969134654006,34.42240869713916
-8501A,U144,B08,Topsail Sound,3,-77.59398971133646,34.40239534718709
-477,U102,E06,North River,1.5,-76.60545094521379,34.795053220070784
-504,U099,E06,North River,1.5,-76.61837975582279,34.766666122541686
-570B,U042,E08,Core Sound Jarrett Bay,2,-76.51525650403677,34.75637267092414
-9411,U118,G06,Silver Lake Ocracoke,4,-75.96422780036046,35.121146097129134
-334,U130,B09,Stump Sound,1.5,-77.4689147508127,34.47325504728082
-222,U131,B09,Stump Sound,1.5,-77.54360181144833,34.44224337586119
-518,U091,E04,Newport River,1,-76.7366961634959,34.76358553029402
-539,U145,B08,Topsail Sound,2.5,-77.55867513348045,34.43176591060017
-64-75A,U073,E09,Core Sound Atlantic Bay Nelson Bay,4,-76.39265424600923,34.856376729096326
-64-75B,U073,E09,Core Sound Atlantic Bay Nelson Bay,4,-76.3941338943607,34.85677685573024
-1062926,U036,G03,Swanquarter Bay,4,-76.40952529349923,35.43961367247361
-6-C-90,U126,C02,Sneads Ferry,3,-77.33939369395401,34.57072954526581
-749,U131,B09,Stump Sound,1.5,-77.5346068969119,34.44926760057829
-8804,U131,B09,Stump Sound,1.5,-77.5469798245501,34.444075199801034
-493,U131,B09,Stump Sound,1.5,-77.50818436173401,34.46149519143736
-9811,U142,B08,Topsail Sound,3,-77.69804552562165,34.32339698025835
-9810,U142,B08,Topsail Sound,3,-77.7028557134996,34.32634969391423
-797,U030,F04,Cedar Island,4,-76.30650979225166,34.992717848103
-753186-A,U145,B08,Topsail Sound,2.5,-77.55721898741083,34.430042962185276
-753186-B,U145,B08,Topsail Sound,2.5,-77.55648080261027,34.43135532454007
-4-C-89,U127,C01,Mill Creek,1.5,-77.3788217847173,34.537743603684206
-19-C-92,U128,C01,Mill Creek,1.5,-77.38100212104268,34.51233814910159
-363,U129,B09,Stump Sound,1.5,-77.46061881294195,34.49258636316492
-791,U096,E04,Newport River,1.5,-76.66388387660638,34.7575322256118
-91-80,U091,E04,Newport River,1,-76.74492897593127,34.770766425551585
-614,U131,B09,Stump Sound,1.5,-77.53918564196158,34.43558876613224
-9705,U098,E06,North River,1.5,-76.57670185430416,34.73864779539238
-1062918,U036,G03,Swanquarter Bay,4,-76.41780015021207,35.435851741748046
-1084359,U037,G03,Swanquarter Bay,4,-76.45949520033592,35.406601095873185
-32-C-95,U127,C01,Mill Creek,1.5,-77.37740396156552,34.53800273995801
-33-C-95,U127,C01,Mill Creek,1.5,-77.37681197351436,34.538114367852074
-34-C-95,U127,C01,Mill Creek,1.5,-77.37622301830947,34.53818017979771
-35-C-95,U127,C01,Mill Creek,1.5,-77.37554882032853,34.538340755195954
-36-C-95,U127,C01,Mill Creek,1.5,-77.3749305783186,34.53861482487301
-37-C-95,U127,C01,Mill Creek,1.5,-77.37415765216292,34.538722325630545
-38-C-95,U127,C01,Mill Creek,1.5,-77.3740464607947,34.53907436301673
-39-C-95,U127,C01,Mill Creek,1.5,-77.37405758462143,34.53925519688691
-40-C-95,U127,C01,Mill Creek,1.5,-77.37409889749789,34.53945721165376
-900779,U045,G04,Wysocking Bay,4,-76.07578769398089,35.4056429928072
-8-C-91,U127,C01,Mill Creek,1.5,-77.37335005740641,34.53214344019145
-538,U145,B08,Topsail Sound,2.5,-77.57313748628003,34.42756105045353
-18-C-92,U035,G03,Swanquarter Bay,4,-76.32410081862469,35.38614249166296
-3-C-89,U140,G03,Swanquarter Bay,4,-76.40460522168104,35.34780936174371
-16-C-91,U138,F06,Bay River,4,-76.61429893975144,35.20079835392176
-24-C-93,U138,F06,Bay River,4,-76.60199207549347,35.202025109010805
-989749,U137,F06,Bay River,4,-76.61296605411273,35.15306393810236
-7-C-90,U137,F06,Bay River,4,-76.60457028660757,35.18965302753739
-20-C-92,U137,F06,Bay River,4,-76.61262510233891,35.18146639663806
-9712,U096,E04,Newport River,1.5,-76.6657872879846,34.758117386781464
-744,U125,C03,New River,3,-77.41724265521555,34.57571775765959
-746,U125,C03,New River,3,-77.41868437804668,34.57629177441847
-881003,U037,G03,Swanquarter Bay,4,-76.47739709940589,35.398650893325794
-8916,U035,G03,Swanquarter Bay,4,-76.35313808110101,35.36778678964925
-1459247,U080,F03,West Bay,4,-76.39814446302049,34.940837995621145
-1226208,U120,H01,Roanoke Sound,4,-75.5498800475782,35.78351755393951
-751,U125,C03,New River,3,-77.41934434883318,34.57655810914829
-8917,U035,G03,Swanquarter Bay,4,-76.35344801077153,35.36856305933689
-9209,U036,G03,Swanquarter Bay,4,-76.41428018615873,35.43202702272091
-850,U098,E06,North River,1.5,-76.62164355257896,34.73969058887888
-647,U100,E06,North River,1.5,-76.60696538963643,34.78908258608469
-864,U126,C02,Sneads Ferry,3,-77.39748491090006,34.58053848546794
-1194059,U142,B08,Topsail Sound,3,-77.67459727172289,34.33598104079201
-9301,U072,E09,Core Sound Atlantic Bay Nelson Bay,2,-76.39775095293274,34.86703715953419
-9509,U072,E09,Core Sound Atlantic Bay Nelson Bay,2,-76.39596951868795,34.870462341982545
-9611,U096,E04,Newport River,1.5,-76.66236073357909,34.74652804690853
-1379452,U149,H03,Stumpy Point,4,-75.76697626251276,35.68255433683159
-9202,U061,D03,White Oak River,3,-77.12320772285715,34.67807441208838
-8702,U131,B09,Stump Sound,1.5,-77.53936387890721,34.4472784038228
-8709,U130,B09,Stump Sound,1.5,-77.49423675150436,34.46732837340718
-8803,U126,C02,Sneads Ferry,3,-77.38165851552482,34.56817228407015
-883B,U096,E04,Newport River,1.5,-76.66508431508927,34.75391437130032
-9702,U142,B08,Topsail Sound,3,-77.69797817163813,34.318337301503426
-9703,U142,B08,Topsail Sound,3,-77.69601248295514,34.32094064417077
-9707,U142,B08,Topsail Sound,3,-77.69011348238732,34.321905768182944
-9802,U118,G06,Silver Lake Ocracoke,4,-75.93024256389263,35.137741426235465
-500-A,U092,E04,Newport River,1,-76.7255276299149,34.76413093050636
-83-80,U073,E09,Core Sound Atlantic Bay Nelson Bay,4,-76.34506422630942,34.876048159688054
-1535442,U113,H01,Roanoke Sound,4,-75.58277497871966,35.80920469350883
-96,U128,C01,Mill Creek,1.5,-77.41417229605179,34.51176157941234
-9405,U118,G06,Silver Lake Ocracoke,4,-75.95294995503218,35.12348075581709
-1610179,U111,H01,Roanoke Sound,4,-75.59736017668368,35.84145250506057
-9002,U072,E09,Core Sound Atlantic Bay Nelson Bay,2,-76.39453573048097,34.871114035574855
-8816,U091,E04,Newport River,1,-76.74654909136761,34.77031294366706
-522-A,U091,E04,Newport River,1,-76.74010466074431,34.77328148607439
-15-66A,U092,E04,Newport River,1,-76.73049973497434,34.77414242221384
-492,U092,E04,Newport River,1,-76.72737641807828,34.76415059829961
-883A,U096,E04,Newport River,1.5,-76.66323012091748,34.75451073882152
-793-A,U096,E04,Newport River,1.5,-76.66261463171851,34.753039695673245
-793-B,U096,E04,Newport River,1.5,-76.66247764914432,34.75281168931054
-WC-12-06,U030,F04,Cedar Island,4,-76.3028983545785,35.002786007003074
-448,U091,E04,Newport River,1,-76.7396000763347,34.769769844510996
-739,U092,E04,Newport River,1,-76.73553897303327,34.77919136974035
-9404,U126,C02,Sneads Ferry,3,-77.38108732468424,34.56362691049794
-9709,U096,E04,Newport River,1.5,-76.66675794095286,34.75956286152985
-1554609,U106,E06,North River,3,-76.52772683160097,34.700286939232434
-336,U130,B09,Stump Sound,1.5,-77.4912085108439,34.46672672666618
-906461,U130,B09,Stump Sound,1.5,-77.48299734962924,34.470743312864
-846,U146,B08,Topsail Sound,3,-77.56246405768204,34.42178787732104
-8921,U144,B08,Topsail Sound,3,-77.60559414884882,34.40039062275695
-1590926,U106,E06,North River,3,-76.52772683160097,34.700286939232434
-1600550,U126,C02,Sneads Ferry,3,-77.37871880429913,34.5627228216017
-282,U131,B09,Stump Sound,1.5,-77.53560891942048,34.4538485591991
-631,U131,B09,Stump Sound,1.5,-77.51181803995004,34.459918335295306
-5-C-89,U127,C01,Mill Creek,1.5,-77.3677465520715,34.532823427854495
-45-C-97,U126,C02,Sneads Ferry,3,-77.37343617790334,34.56602356609629
-8817,U126,C02,Sneads Ferry,3,-77.38223760627511,34.5794741925717
-9108,U072,E09,Core Sound Atlantic Bay Nelson Bay,2,-76.3967499041709,34.86169235380879
-9102,U042,E08,Core Sound Jarrett Bay,2,-76.51393207819461,34.758947472301166
-1601764,U072,E09,Core Sound Atlantic Bay Nelson Bay,2,-76.39453573048097,34.871114035574855
-624,U126,C02,Sneads Ferry,3,-77.33969342294594,34.55315373439248
-9203,U091,E04,Newport River,1,-76.74710155778837,34.77132266836609
-1427111,U077,F02,Core Creek Merrimon River South River,4,-76.57608964302644,34.96877715527017
-1408350,U080,F03,West Bay,4,-76.39647818100302,34.94251462958468
-2101,U055,D01,Bear Creek,1.5,-77.20658917461091,34.64438425959628
-1546217,U127,C01,Mill Creek,1.5,-77.37042062152236,34.5204492161004
-8910,U144,B08,Topsail Sound,3,-77.64954949015922,34.358034432532286
-747,U125,C03,New River,3,-77.40506879389409,34.577531780616745
-630,U131,B09,Stump Sound,1.5,-77.5139123599753,34.45818664834463
-42-70,U125,C03,New River,3,-77.40303616832642,34.57702436412431
-20-66,U125,C03,New River,3,-77.40916677806256,34.57572574963735
-603,U091,E04,Newport River,1,-76.74070781858028,34.770846362244036
-734,U094,E04,Newport River,1.5,-76.72035659784189,34.760573834997025
-149,U129,B09,Stump Sound,1.5,-77.48077521134132,34.48309329962382
-2001,U128,C01,Mill Creek,1.5,-77.4068594035627,34.50423910527409
-641,U131,B09,Stump Sound,1.5,-77.51547238362895,34.46606477151851
-642,U131,B09,Stump Sound,1.5,-77.51734328722395,34.46551746287036
-9304,U126,C02,Sneads Ferry,3,-77.39719599309225,34.59172440274475
-995969,U128,C01,Mill Creek,1.5,-77.40700209267852,34.50492346558143
-841,U094,E04,Newport River,1.5,-76.70872855845255,34.753429748743415
-328,U128,C01,Mill Creek,1.5,-77.40008469372658,34.51457984463704
-9207,U096,E04,Newport River,1.5,-76.66197378095472,34.7475663409751
-1652130,U030,F04,Cedar Island,4,-76.30893333089361,35.000144897660384
-145,U092,E04,Newport River,1,-76.72912968309407,34.770992543146896
-344-A,U065,D03,White Oak River,2,-77.11578741464677,34.68426911073534
-347,U040,E08,Core Sound Jarrett Bay,2,-76.49588184065436,34.78645604997951
-857,U041,E08,Core Sound Jarrett Bay,2,-76.50036661145676,34.7772456516788
-866,U131,B09,Stump Sound,1.5,-77.53607984429733,34.43804560737226
-9201,U074,E09,Core Sound Atlantic Bay Nelson Bay,4,-76.35552822500392,34.82716718980345
-1636075,U096,E04,Newport River,1.5,-76.6639074629795,34.752271559998064
-1636083,U096,E04,Newport River,1.5,-76.6639074629795,34.752271559998064
-164,U131,B09,Stump Sound,1.5,-77.5418226674991,34.44918875986201
-1683820,U061,D03,White Oak River,3,-77.12321917257265,34.678060842841624
-1618255,U096,E04,Newport River,1.5,-76.66261463171851,34.75303969567326
-1627843,U096,E04,Newport River,1.5,-76.66197765614088,34.74756209254035
-1632173,U111
\ No newline at end of file
diff --git a/analysis/assets/nc/data/tabular/inputs/dmf_rainfall_thresholds/cmu_sga_key.csv b/analysis/assets/nc/data/tabular/inputs/dmf_rainfall_thresholds/cmu_sga_key.csv
deleted file mode 100644
index c7cb023..0000000
--- a/analysis/assets/nc/data/tabular/inputs/dmf_rainfall_thresholds/cmu_sga_key.csv
+++ /dev/null
@@ -1,218 +0,0 @@
-HA_CLASS,sga_name,googlemaps_description
-Bruns_1,A01,Tubbs Inlet
-Bruns_2,A01,Shallot Inlet Intracoastal Waterway
-Bruns_3,A02,Shallot River
-Bruns_3A,A02,Shallot River
-Bruns_4,A02,Shallot Inlet Intracoastal Waterway
-Bruns_4A,A02,Shallot Inlet Intracoastal Waterway
-Bruns_5,A02,Lockwoods Folloy River Intracoastal Waterway
-Bruns_6,A02,Lockwoods Folloy River Intracoastal Waterway
-Bruns_6,A03,Lockwoods Folloy River Intracoastal Waterway
-Bruns_7,A03,Lockwoods Folly River
-Bruns_8,B02,Bald Head Island
-Bruns_8,B03,Bald Head Island
-Bruns_8,B04,Bald Head Island
-BS_1,D04,Bogue Sound and Deer Creek
-BS_10A,E02,Bogue Sound and Morehead City
-BS_10B,E02,Bogue Sound and Morehead City
-BS_10B,E03,Bogue Sound and Morehead City
-BS_11,E02,Bogue Sound and Morehead City
-BS_11,E03,Bogue Sound and Morehead City
-BS_12,E03,Bogue Sound and Morehead City
-BS_13,E03,Bogue Sound and Morehead City
-BS_13B,E03,Bogue Sound and Morehead City
-BS_14,E03,Bogue Sound and Morehead City
-BS_15,E03,Bogue Sound and Morehead City
-BS_2,D04,Bogue Sound and Deer Creek
-BS_3,D04,Bogue Sound
-BS_4,D04,Bogue Sound
-BS_5,D04,Bogue Sound
-BS_6,D04,Bogue Sound
-BS_7,D04,Broad Creek and Bogue Sound
-BS_7,E01,Broad Creek and Bogue Sound
-BS_8,E01,Broad Creek and Bogue Sound
-BS_8,E02,Broad Creek and Bogue Sound
-BS_9,D04,Bogue Sound
-BS_9,E01,Bogue Sound
-BS_9,E02,Bogue Sound
-CL_1,E09,Thorofare Bay and Ceder Island
-CL_1,F04,Thorofare Bay and Ceder Island
-CL_2,F04,Cedar Island
-CL_3,F04,Cedar Island and Cedar Island Bay
-CL_4A,F04,Cedar Island Bay and Core Bay
-CL_4B,F04,Cedar Island Bay and Core Bay
-Hyde_1,G04,Middle Creek and Pamilco Sound
-Hyde_2,G03,Juniper Bay West and Bluff Bay and Pamilco Sound
-Hyde_2,G04,Juniper Bay West and Bluff Bay and Pamilco Sound
-Hyde_3,G03,Swanquarter Bay and Pamilco Sound
-Hyde_4,G03,Rose Bay and Pamilco Sound
-Hyde_5,G03,Spencer Bay and Germantown Bay and Pamilco Sound
-Hyde_6,G03,Deep Bay and Pamilco Sound
-JB_1A,E08,Wade Creek and Jarrett Bay
-JB_1B,E08,Jarrett Bay
-JB_1C,E08,Jarrett Bay
-JB_2,E08,Core Sound and Jarrett Bay
-JB_3,E08,Core Sound and Jarrett Bay
-JB_3,E09,Core Sound and Jarrett Bay
-JB_4,E07,Core Sound and Jarrett Bay
-JB_4,E08,Core Sound and Jarrett Bay
-JB_4,E09,Core Sound and Jarrett Bay
-LS_1,G04,Englehard and Pamilco Sound and Long Shoal River
-LS_1,G05,Englehard and Pamilco Sound and Long Shoal River
-MU_1,C04,Salliers Bay and Browns Creek
-MU_10,D02,Queens Creek and Bear Island
-MU_11,D02,Queens Creek
-MU_12,D02,Queens Creek
-MU_13,D02,Queens Creek and White Oak River and Bear Island
-MU_13,D03,Queens Creek and White Oak River and Bear Island
-MU_14,D03,Swansboro and Hawkins Bay
-MU_15,D03,White Oak River
-MU_15A,D03,White Oak River
-MU_16A,D03,White Oak River
-MU_16B,D03,Deer Creek and Bear Island and Bogue Sound
-MU_16B,D04,Deer Creek and Bear Island and Bogue Sound
-MU_17A,D03,Deer Creek and Bear Island and Bogue Sound
-MU_17A,D04,Deer Creek and Bear Island and Bogue Sound
-MU_17B,D03,Deer Creek and Bear Island and Bogue Sound
-MU_17B,D04,Deer Creek and Bear Island and Bogue Sound
-MU_2,C04,Salliers Bay and Browns Creek
-MU_3,C04,Salliers Bay and Browns Creek
-MU_4,C04,Freemans Creek and Salliers Bay
-MU_5A,C04,Salliers Bay and Browns Creek
-MU_5B,C04,Salliers Bay and Browns Creek
-MU_5B,D01,Salliers Bay and Browns Creek
-MU_6A,C04,Salliers Bay and Browns Creek and Browns Island
-MU_6B,C04,Salliers Bay and Browns Creek
-MU_6C,C04,Salliers Bay and Browns Creek
-MU_7,D01,Bear Creek
-MU_8,C04,Bear Creek
-MU_8,D01,Bear Creek
-MU_9,D01,Bear Creek and Saunders Island
-NB_1,E09,Oyster Creek and Core Sound
-NB_2,E09,Oyster Creek and Core Sound
-NB_3,E09,Core Sound
-NB_4,E09,Nelson Bay
-NB_5,E09,Nelson Bay and Core Sound
-NB_5,F04,Nelson Bay and Core Sound
-NB_6,E09,Core Sound
-NB_6,F04,Core Sound
-Neuse_1,F05,Neuse River
-Neuse_1,F07,Neuse River
-Neuse_2,F02,Neuse River and Adams Creek
-Neuse_3,F02,South River and Neuse River
-Neuse_4,F02,Turnagain Bay and Neuse River
-Neuse_4,F03,Turnagain Bay and Neuse River
-Neuse_4,F07,Turnagain Bay and Neuse River
-Neuse_6,F03,Long Bay and Neuse River
-Neuse_7,F03,West Thorofare Bay and Neuse River
-Neuse_8,F02,West Bay and Neuse River
-Neuse_8,F03,West Bay and Neuse River
-NH_1,B05,Masonboro Sound and Freemans Park
-NH_2,B05,Masonboro Sound
-NH_3,B05,Masonboro Sound and Masonboro Island
-NH_4,B05,Masonboro Sound and Masonboro Island
-NH_4,B06,Masonboro Sound and Masonboro Island
-NH_4,B07,Masonboro Sound and Masonboro Island
-NH_5,B05,Masonboro Sound and Masonboro Island
-NH_5,B06,Masonboro Sound and Masonboro Island
-NH_5,B07,Masonboro Sound and Masonboro Island
-NH_6,B06,Bradley Creek and Shinn Creek and Wrightsville Beach
-NH_6,B07,Bradley Creek and Shinn Creek and Wrightsville Beach
-NH_7,B07,Wrightsville Beach and Middle Sound and Topsail Sound
-NHP_1,B07,Topsail Sound
-NHP_1,B08,Topsail Sound
-NHP_2,B07,Topsail Sound
-NHP_2,B08,Topsail Sound
-NPT_1,E04,Newport River
-NPT_2A,E04,Newport River
-NPT_2B,E04,Newport River
-NPT_3,E04,Newport River
-NPT_4,E04,Newport River
-NPT_5,E04,Newport River
-NPT_6,E04,Newport River
-NR_1,E05,North River
-NR_1,E06,North River
-NR_10,E07,North River and Back Sound
-NR_2,E06,North River
-NR_3,E06,North River
-NR_4,E06,Wards Creek and North River
-NR_5,E06,North River
-NR_6,E06,Whitehurst Creek and North River
-NR_7,E06,Sleepy Creek and North River
-NR_8A,E05,North River
-NR_8A,E06,North River
-NR_8A,E07,North River
-NR_8B,E06,The Straits and North River
-NR_8B,E08,The Straits and North River
-NR_9,E05,Beaufort Area
-OBX_1,H02,Croatan Sound
-OBX_10A,F04,Pamilco Sound and Southern Pamilco Sound
-OBX_10A,F07,Pamilco Sound and Southern Pamilco Sound
-OBX_10A,G03,Pamilco Sound and Southern Pamilco Sound
-OBX_10A,G04,Pamilco Sound and Southern Pamilco Sound
-OBX_10A,G06,Pamilco Sound and Southern Pamilco Sound
-OBX_10A,G07,Pamilco Sound and Southern Pamilco Sound
-OBX_10B,F04,Cedar Island and Porstmouth Island and Southern Pamilco Sound
-OBX_10B,G06,Cedar Island and Porstmouth Island and Southern Pamilco Sound
-OBX_2,H01,Roanoke Sound
-OBX_3,H01,Roanoke Sound
-OBX_4A,H06,Croatan Sound
-OBX_4B,H01,Croatan Sound and Roanoke Sound
-OBX_4B,H02,Croatan Sound and Roanoke Sound
-OBX_4B,H06,Croatan Sound and Roanoke Sound
-OBX_5,H01,Outer Banks and Pea Island
-OBX_5,H05,Outer Banks and Pea Island
-OBX_5,H06,Outer Banks and Pea Island
-OBX_5A,H05,Outer Banks and Salvo
-OBX_6,H05,Avon Buxton and Outer Banks
-OBX_7,G06,Hatteras and Outer Banks
-OBX_7,H04,Hatteras and Outer Banks
-OBX_8,G06,Silver Lake and Ocracoke
-OBX_9A,G04,Pamilco Sound
-OBX_9A,G05,Pamilco Sound
-OBX_9A,G06,Pamilco Sound
-OBX_9A,G07,Pamilco Sound
-OBX_9A,H06,Pamilco Sound
-OBX_9B,G06,Pamilco Sound
-OBX_9B,G07,Pamilco Sound
-OBX_9B,H01,Pamilco Sound
-OBX_9B,H04,Pamilco Sound
-OBX_9B,H05,Pamilco Sound
-OBX_9B,H06,Pamilco Sound
-Onsl_1A,C03,New River
-Onsl_1B,C03,New River
-Onsl_2,C03,New River and Stones Bay
-Onsl_3,C02,New River
-Onsl_4,C01,New River and Chadwick Bay
-Onsl_4,C02,New River and Chadwick Bay
-Onsl_5,C01,Alligator Bay
-Onsl_6A,B09,Stump Sound
-Onsl_6B,B09,Stump Sound
-Onsl_7,B08,Waters Bay and Stump Sound
-Onsl_7,B09,Waters Bay and Stump Sound
-PAM_1,G01,Goose Creek and Pamlico River
-PAM_1,G02,Goose Creek and Pamlico River
-PAM_2,G02,Clark Creeks and Pamilco Sound
-PAM_3,G02,Pamilco Sound
-PAM_4,F07,Southern Pamilco Sound
-PAM_4,G02,Southern Pamilco Sound
-PAM_5,F06,Jones Bay and Pamilco Sound
-PAM_6,F06,Bay River and Pamilco Sound
-PAM_6A,F06,Bay River and Pamilco Sound
-PAM_6B,F06,Bay River and Pamilco Sound
-PAM_7,F06,Southern Pamilco Sound
-PAM_7,F07,Southern Pamilco Sound
-PAM_7,G02,Southern Pamilco Sound
-PAM_7,G03,Southern Pamilco Sound
-PAM_7,G07,Southern Pamilco Sound
-PND_1,B08,Topsail Sound
-PND_2,B08,Topsail Sound
-PND_3,B08,Topsail Sound and Old Topsail Creek
-PND_4,B08,Topsail Sound
-PND_5,B08,Topsail Sound
-PND_5,B09,Topsail Sound
-PND_6,B08,Topsail Sound
-Pungo_1,G02,Pungo River and Wright Creek and Slade Creek
-Pungo_1,G08,Pungo River and Wright Creek and Slade Creek
-Sandy_1,G05,Parched Corn Bay and Pamilco Sound
-Stump_1,H03,Stumpy Point and Pamilco Sound
\ No newline at end of file
diff --git a/analysis/assets/nc/data/tabular/inputs/dmf_rainfall_thresholds/rainfall_thresholds_raw_tidy.csv b/analysis/assets/nc/data/tabular/inputs/dmf_rainfall_thresholds/rainfall_thresholds_raw_tidy.csv
deleted file mode 100644
index 5107aeb..0000000
--- a/analysis/assets/nc/data/tabular/inputs/dmf_rainfall_thresholds/rainfall_thresholds_raw_tidy.csv
+++ /dev/null
@@ -1,150 +0,0 @@
-HA_CLASS,cmu_name,rainfall_threshold_in,rainfall_threshold_class
-Bruns_1,U001,1,depth_defined
-Bruns_2,U002,1,depth_defined
-Bruns_3,U003,1.5,depth_defined
-Bruns_3A,U004,1.5,depth_defined
-Bruns_4,U005,2.5,depth_defined
-Bruns_4A,U006,2,depth_defined
-Bruns_5,U007,2,depth_defined
-Bruns_6,U008,2,depth_defined
-Bruns_7,U009,1,depth_defined
-Bruns_8,U010,4,emergency
-BS_1,U011,2.5,depth_defined
-BS_2,U012,3,depth_defined
-BS_3,U013,2.5,depth_defined
-BS_4,U014,3,depth_defined
-BS_5,U015,2.5,depth_defined
-BS_6,U016,3,depth_defined
-BS_7,U017,2.5,depth_defined
-BS_8,U018,2.5,depth_defined
-BS_9,U019,3,depth_defined
-BS_10A,U020,2.5,depth_defined
-BS_10B,U021,2,depth_defined
-BS_11,U022,3,depth_defined
-BS_12,U023,2,depth_defined
-BS_13,U024,3,depth_defined
-BS_13B,U025,3,depth_defined
-BS_14,U026,2,depth_defined
-BS_15,U027,3,depth_defined
-CL_1,U028,4,emergency
-CL_2,U029,4,emergency
-CL_3,U030,4,emergency
-CL_4A,U031,4,emergency
-CL_4B,U032,4,emergency
-Hyde_1,U033,4,emergency
-Hyde_2,U034,4,emergency
-Hyde_3,U035,4,emergency
-Hyde_4,U036,4,emergency
-Hyde_5,U037,4,emergency
-Hyde_6,U038,4,emergency
-JB_1A,U039,2,depth_defined
-JB_1B,U040,2,depth_defined
-JB_1C,U041,2,depth_defined
-JB_2,U042,2,depth_defined
-JB_3,U043,4,emergency
-JB_4,U044,4,emergency
-LS_1,U045,4,emergency
-MU_1,U046,1.5,depth_defined
-MU_2,U047,1.5,depth_defined
-MU_3,U048,3,depth_defined
-MU_4,U049,1.5,depth_defined
-MU_5A,U050,1.5,depth_defined
-MU_5B,U051,1.5,depth_defined
-MU_6A,U052,3,depth_defined
-MU_6B,U053,3,depth_defined
-MU_6C,U054,3,depth_defined
-MU_7,U055,1.5,depth_defined
-MU_8,U056,1.5,depth_defined
-MU_9,U057,3,depth_defined
-MU_10,U058,3,depth_defined
-MU_11,U059,1,depth_defined
-MU_12,U060,1.5,depth_defined
-MU_13,U061,3,depth_defined
-MU_14,U062,3,depth_defined
-MU_15,U063,1.5,depth_defined
-MU_15A,U064,1.5,depth_defined
-MU_16A,U065,2,depth_defined
-MU_16B,U066,2,depth_defined
-MU_17A,U067,3,depth_defined
-MU_17B,U068,3,depth_defined
-NB_1,U069,1.5,depth_defined
-NB_2,U070,2,depth_defined
-NB_3,U071,2,depth_defined
-NB_4,U072,2,depth_defined
-NB_5,U073,4,emergency
-NB_6,U074,4,emergency
-Neuse_1,U075,4,emergency
-Neuse_2,U076,4,emergency
-Neuse_3,U077,4,emergency
-Neuse_4,U078,4,emergency
-Neuse_6,U079,4,emergency
-Neuse_7,U080,4,emergency
-Neuse_8,U081,4,emergency
-NH_1,U082,2,depth_defined
-NH_2,U083,2,depth_defined
-NH_3,U084,3,emergency
-NH_4,U085,2.5,depth_defined
-NH_5,U086,3,emergency
-NH_6,U087,2,depth_defined
-NH_7,U088,2,depth_defined
-NHP_1,U089,2.5,depth_defined
-NHP_2,U090,3,emergency
-NPT_1,U091,1,depth_defined
-NPT_2A,U092,1,depth_defined
-NPT_2B,U093,1,depth_defined
-NPT_3,U094,1.5,depth_defined
-NPT_4,U095,1.5,depth_defined
-NPT_5,U096,1.5,depth_defined
-NPT_6,U097,1,depth_defined
-NR_1,U098,1.5,depth_defined
-NR_2,U099,1.5,depth_defined
-NR_3,U100,1.5,depth_defined
-NR_4,U101,1.5,depth_defined
-NR_5,U102,1.5,depth_defined
-NR_6,U103,1.5,depth_defined
-NR_7,U104,1.5,depth_defined
-NR_8A,U105,3,depth_defined
-NR_8B,U106,3,depth_defined
-NR_9,U107,4,emergency
-NR_10,U108,4,emergency
-OBX_1,U109,4,emergency
-OBX_2,U110,4,emergency
-OBX_3,U111,4,emergency
-OBX_4A,U112,4,emergency
-OBX_4B,U113,4,emergency
-OBX_5,U114,4,emergency
-OBX_5A,U115,4,emergency
-OBX_6,U116,4,emergency
-OBX_7,U117,4,emergency
-OBX_8,U118,4,emergency
-OBX_9A,U119,4,emergency
-OBX_9B,U120,4,emergency
-OBX_10A,U121,4,emergency
-OBX_10B,U122,4,emergency
-Onsl_1A,U123,3,depth_defined
-Onsl_1B,U124,3,depth_defined
-Onsl_2,U125,3,depth_defined
-Onsl_3,U126,3,depth_defined
-Onsl_4,U127,1.5,depth_defined
-Onsl_5,U128,1.5,depth_defined
-Onsl_6A,U129,1.5,depth_defined
-Onsl_6B,U130,1.5,depth_defined
-Onsl_7,U131,1.5,depth_defined
-PAM_1,U132,4,emergency
-PAM_2,U133,4,emergency
-PAM_3,U134,4,emergency
-PAM_4,U135,4,emergency
-PAM_5,U136,4,emergency
-PAM_6,U137,4,emergency
-PAM_6A,U138,4,emergency
-PAM_6B,U139,4,emergency
-PAM_7,U140,4,emergency
-PND_1,U141,2.5,depth_defined
-PND_2,U142,3,emergency
-PND_3,U143,2.5,depth_defined
-PND_4,U144,3,emergency
-PND_5,U145,2.5,depth_defined
-PND_6,U146,3,emergency
-Pungo_1,U147,4,emergency
-Sandy_1,U148,4,emergency
-Stump_1,U149,4,emergency
\ No newline at end of file
diff --git a/analysis/assets/nc/data/tabular/inputs/dmf_rainfall_thresholds/sga_key.csv b/analysis/assets/nc/data/tabular/inputs/dmf_rainfall_thresholds/sga_key.csv
deleted file mode 100644
index 1d03e4e..0000000
--- a/analysis/assets/nc/data/tabular/inputs/dmf_rainfall_thresholds/sga_key.csv
+++ /dev/null
@@ -1,119 +0,0 @@
-sga_name,sga_county,sga_description,sga_desc_short,sga_desc_short_camel
-I09,Chowan,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I09,Tyrell,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I09,Washington,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I10,Chowan,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I10,Tyrell,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I10,Washington,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I14,Chowan,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I14,Perquimans,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I14,Tyrell,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I14,Washington,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I15,Camden,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I15,Currituck,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I15,Dare,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I15,Pasquotank,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I15,Perquimans,Albemarle Sound Area,Albemarle Sound,AlbemarleSound
-I03,Tyrell,Albemarle Sound Area and Bull Bay Area,Albemarle Sound Bull Bay,AlbemSoundBullBay
-I03,Washington,Albemarle Sound Area and Bull Bay Area,Albemarle Sound Bull Bay,AlbemSoundBullBay
-I11,Bertie,Albemarle Sound Area and Chowan River Area,Albemarle Sound Chowan,AlbemSoundChowan
-I11,Chowan,Albemarle Sound Area and Chowan River Area,Albemarle Sound Chowan,AlbemSoundChowan
-I12,Bertie,Albemarle Sound Area and Chowan River Area,Albemarle Sound Chowan,AlbemSoundChowan
-I12,Chowan,Albemarle Sound Area and Chowan River Area,Albemarle Sound Chowan,AlbemSoundChowan
-I12,Tyrell,Albemarle Sound Area and Chowan River Area,Albemarle Sound Chowan,AlbemSoundChowan
-I12,Washington,Albemarle Sound Area and Chowan River Area,Albemarle Sound Chowan,AlbemSoundChowan
-I13,Bertie,Albemarle Sound Area and Chowan River Area,Albemarle Sound Chowan,AlbemSoundChowan
-I13,Chowan,Albemarle Sound Area and Chowan River Area,Albemarle Sound Chowan,AlbemSoundChowan
-I02,Currituck,Albemarle Sound Area and Collington Area,Albemarle Sound Collington,AlbemSoundCollington
-I02,Dare,Albemarle Sound Area and Collington Area,Albemarle Sound Collington,AlbemSoundCollington
-I06,Pasquotank,Albemarle Sound Area and Little River and Flatty Creek Area,Albemarle Sound Little River Flatty Creek,AlbemSoundLittleFlatty
-I06,Perquimans,Albemarle Sound Area and Little River and Flatty Creek Area,Albemarle Sound Little River Flatty Creek,AlbemSoundLittleFlatty
-I01,Camden,Albemarle Sound Area and North River Area,Albemarle Sound North River,AlbemSoundNorthRiver
-I01,Currituck,Albemarle Sound Area and North River Area,Albemarle Sound North River,AlbemSoundNorthRiver
-I01,Dare,Albemarle Sound Area and North River Area,Albemarle Sound North River,AlbemSoundNorthRiver
-I05,Camden,Albemarle Sound and Pasquotank River Area,Albemarle Sound Pasquotank River,AlbemSoundPasquotank
-I05,Pasquotank,Albemarle Sound and Pasquotank River Area,Albemarle Sound Pasquotank River,AlbemSoundPasquotank
-I07,Perquimans,Albemarle Sound Area and Perquimans River Area,Albemarle Sound Perquimans River,AlbemSoundPerquimans
-I08,Chowan,Albemarle Sound Area and Yeopim River Area,Albemarle Sound Yeopim River,AlbemSoundYeopim
-I08,Perquimans,Albemarle Sound Area and Yeopim River Area,Albemarle Sound Yeopim River,AlbemSoundYeopim
-I04,Hyde,Alligator River Area,Alligator River,AlligatorRiver
-F06,Pamlico,Bay River Area,Bay River,BayRiver
-D01,Onslow,Bear Creek Area,Bear Creek,BearCreek
-E05,Carteret,Beaufort Area,Beaufort,Beaufort
-E02,Carteret,Bogue Sound Area,Bogue Sound,BogueSound
-E01,Carteret,Bogue Sound Area and Broad Creek Area,Bogue Sound Broad Creek,BogueSoundBroad
-E03,Carteret,Bogue Sound Area and Morehead City Area,Bogue Sound Morehead City,BogueSoundMorehead
-A01,Brunswick,Calabash Area,Calbash,Calbash
-B04,Brunswick,Cape Fear River Area,Cape Fear River,CapeFear
-B04,New Hanover,Cape Fear River Area,Cape Fear River,CapeFear
-B02,Brunswick,Cape Fear River and Buzzards Bay Area,Cape Fear River Buzzards Bay,CapeFearBuzzards
-B01,Brunswick,Cape Fear River and Southport Area,Cape Fear River Southport,CapeFearSouthport
-B03,Brunswick,Cape Fear River Area and The Basin Area,Cape Fear River The Basin,CapeFearTheBasin
-B03,New Hanover,Cape Fear River Area and The Basin Area,Cape Fear River The Basin,CapeFearTheBasin
-B10,Brunswick,Cape Fear River and Brunswick Area,Cape Fear River Brunswick,CapeFearBruns
-F04,Carteret,Cedar Island Area,Cedar Island,CedarIsland
-F02,Carteret,Core Creek and Merrimon and South River Area,Core Creek Merrimon River South River,CoreCreekSouthRiver
-F02,Craven,Core Creek and Merrimon and South River Area,Core Creek Merrimon River South River,CoreCreekSouthRiver
-E08,Carteret,Core Sound Area and Jarrett Bay Area,Core Sound Jarrett Bay,CoreSoundJarrett
-E09,Carteret,Core Sound Area and Atlantic and Nelson Bay Area,Core Sound Atlantic Bay Nelson Bay,CoreSoundNelson
-H02,Dare,Croatan Sound Area,Croatan Sound,CroatanSound
-I16,Currituck,Currituck Sound Area,Currituck Sound,CurrituckSound
-I16,Dare,Currituck Sound Area,Currituck Sound,CurrituckSound
-D04,Carteret,Deer Creek Area,Deer Creek,DeerCreek
-G05,Dare,Englehard Area and Long Shoal River Area,Englehard Long Shoal River,EnglehardLongShoal
-G05,Hyde,Englehard Area and Long Shoal River Area,Englehard Long Shoal River,EnglehardLongShoal
-G01,Beaufort,Goose Greek Area and Pamlico River Area,Goose Creek Pamlico River,GooseCreekPamlico
-G01,Pamlico,Goose Greek Area and Pamlico River Area,Goose Creek Pamlico River,GooseCreekPamlico
-E07,Carteret,Harkers Island Area,Harkers Island,HarkersIsland
-H04,Dare,Hatteras and Outer Banks Area,Hattaras Outer Banks,HattarasOuterBanks
-H04,Hyde,Hatteras and Outer Banks Area,Hattaras Outer Banks,HattarasOuterBanks
-C04,Onslow,Hurst and Onslow Beach Area,Hurst Beach Onslow Beach,HurstOnslow
-A03,Brunswick,Lockwoods Folly River Area,Lockwoods Folly River,LockwoodsFolly
-B06,New Hanover,Masonboro Sound Area,Masonboro Sound,MasonboroSound
-C01,Onslow,Mill Creek Area,Mill Creek,MillCreek
-B05,New Hanover,Myrtle Grove Sound Area,Myrtle Grove Sound,MyrtleGroveSound
-F08,Craven,Neuse River Area and New Bern Area,Neuse River New Bern,NeuseNewBern
-F08,Pamlico,Neuse River Area and New Bern Area,Neuse River New Bern,NeuseNewBern
-F09,Craven,Neuse River Area,Neuse River,NeuseRiver
-F09,Pamlico,Neuse River Area,Neuse River,NeuseRiver
-F01,Craven,Neuse River Area and Clubfoot Creek Area,Neuse River Clubfoot Creek,NeuseRiverClubfoot
-F01,Pamlico,Neuse River Area and Clubfoot Creek Area,Neuse River Clubfoot Creek,NeuseRiverClubfoot
-F05,Pamlico,Neuse River Area and Oriental Area,Neuse River Oriental,NeuseRiverOriental
-E04,Carteret,Newport River Area,Newport River,NewportRiver
-C03,Onslow,New River Area,New River,NewRiver
-E06,Carteret,North River Area,North River,NorthRiver
-H05,Dare,Outer Banks Area,Outer Banks,OuterBanks
-G10,Beaufort,Pamlico River Area,Pamlico River,PamlicoRiver
-G11,Beaufort,Pamlico River Area,Pamlico River,PamlicoRiver
-F07,Carteret,Pamlico Sound Area,Pamlico Sound,PamlicoSound
-F07,Pamlico,Pamlico Sound Area,Pamlico Sound,PamlicoSound
-G07,Carteret,Pamlico Sound Area,Pamlico Sound,PamlicoSound
-G07,Dare,Pamlico Sound Area,Pamlico Sound,PamlicoSound
-G07,Hyde,Pamlico Sound Area,Pamlico Sound,PamlicoSound
-G07,Pamlico,Pamlico Sound Area,Pamlico Sound,PamlicoSound
-H06,Dare,Pamlico Sound Area,Pamlico Sound,PamlicoSound
-G08,Beaufort,Pungo River Area,Pungo River,PungoRiver
-G08,Hyde,Pungo River Area,Pungo River,PungoRiver
-G09,Beaufort,Pungo River Area,Pungo River,PungoRiver
-G09,Hyde,Pungo River Area,Pungo River,PungoRiver
-D02,Onslow,Queens Creek Area,Queens Creek,QueensCreek
-H01,Dare,Roanoke Sound Area,Roanoke Sound,RoanokeSound
-A02,Brunswick,Shallotte River Area,Shallotte River,Shallotte
-G06,Hyde,Silver Lake Area and Ocracoke Area,Silver Lake Ocracoke,SilverLakeOcracoke
-C02,Onslow,Sneads Ferry Area,Sneads Ferry,SneadsFerry
-G12,Beaufort,South Creek Area,South Creek,SouthCreek
-B09,Onslow,Stump Sound Area,Stump Sound,StumpSound
-B09,Pender,Stump Sound Area,Stump Sound,StumpSound
-H03,Dare,Stumpy Point Area,Stumpy Point,StumpyPoint
-G03,Hyde,Swanquarter Bay Area,Swanquarter Bay,SwanquarterBay
-G03,Pamlico,Swanquarter Bay Area,Swanquarter Bay,SwanquarterBay
-B08,New Hanover,Topsail Sound Area,Topsail Sound,TopsailSound
-B08,Pender,Topsail Sound Area,Topsail Sound,TopsailSound
-F03,Carteret,West Bay Area,West Bay,WestBay
-D03,Carteret,White Oak River Area,White Oak River,WhiteOak
-D03,Onslow,White Oak River Area,White Oak River,WhiteOak
-G02,Beaufort,Wright and Oyster Creeks Area,Wright Creek Oyster Creek,WrightOyster
-G02,Hyde,Wright and Oyster Creeks Area,Wright Creek Oyster Creek,WrightOyster
-G02,Pamlico,Wright and Oyster Creeks Area,Wright Creek Oyster Creek,WrightOyster
-B07,New Hanover,Wrightsville Beach Area,Wrightsville Beach,WrightsvilleBeach
-G04,Hyde,Wysocking Bay Area,Wysocking Bay,WysockingBay
\ No newline at end of file
diff --git a/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/README.md b/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/README.md
deleted file mode 100644
index 4e8898a..0000000
--- a/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## README file for state_bounds_raw directory ##
-
-last updated: 20201102
-contact: Sheila Saia (ssaia at ncsu dot edu)
-
-**State_Boundaries.shp** - This file represents the state boundaries for the United States and was originally downloaded from https://hub.arcgis.com/datasets/f8730991034b46d2bed73a16a96765c6_55?geometry=166.851%2C13.656%2C8.823%2C59.927. Metdata can be found at https://www.arcgis.com/home/item.html?id=f8730991034b46d2bed73a16a96765c6. It was downloaded on 20201102. This is a little more detailed in terms of the outline for the coastal plane so I decided to use the TIGER data instead. I'm keeping this here for now.
diff --git a/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.cpg b/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.cpg
deleted file mode 100644
index 3ad133c..0000000
--- a/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.cpg
+++ /dev/null
@@ -1 +0,0 @@
-UTF-8
\ No newline at end of file
diff --git a/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.dbf b/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.dbf
deleted file mode 100644
index 442c234..0000000
Binary files a/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.dbf and /dev/null differ
diff --git a/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.prj b/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.prj
deleted file mode 100644
index a30c00a..0000000
--- a/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.prj
+++ /dev/null
@@ -1 +0,0 @@
-GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]
\ No newline at end of file
diff --git a/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.shp b/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.shp
deleted file mode 100644
index 33f57d3..0000000
Binary files a/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.shp and /dev/null differ
diff --git a/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.shx b/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.shx
deleted file mode 100644
index 65a983b..0000000
Binary files a/analysis/assets/sc/spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.shx and /dev/null differ
diff --git a/analysis/logging.yaml b/analysis/logging.yaml
deleted file mode 100644
index 7c2a44e..0000000
--- a/analysis/logging.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-version: 1
-formatters:
- withtime:
- format: '%(asctime)s %(name)-25s %(levelname)-8s %(message)s'
- datefmt: '%m/%d/%Y %I:%M:%S %p'
- withouttime:
- format: '%(name)-25s %(levelname)-8s %(message)s'
-handlers:
- console:
- class: logging.StreamHandler
- level: INFO
- formatter: withouttime
- stream: ext://sys.stdout
- file_handler:
- class: logging.FileHandler
- level: ERROR
- formatter: withtime
- filename: 'logs/shellcast.log'
-
-root:
- level: DEBUG
- handlers: [console, file_handler]
\ No newline at end of file
diff --git a/analysis/main.py b/analysis/main.py
deleted file mode 100644
index 361880c..0000000
--- a/analysis/main.py
+++ /dev/null
@@ -1,59 +0,0 @@
-import configparser
-import os
-import yaml
-import logging.config
-import sqlalchemy
-import sys
-from settings import CONFIG_INI, LOGS_DIR, LOG_CONFIG_YAML
-
-if not os.path.exists(LOGS_DIR):
- os.makedirs(LOGS_DIR)
-
-with open(LOG_CONFIG_YAML, 'r') as stream:
- log_config = yaml.load(stream, Loader=yaml.FullLoader)
-logging.config.dictConfig(log_config)
-logging.captureWarnings(True)
-
-# IMPORTANT!! Below needs to be imported after log set up
-from src.utils.utils import Logs
-from src.procs.shellcast import ShellCast
-from src.procs.gcp_update_mysqldb import add_cmu_probabilities
-
-logger = logging.getLogger(__file__)
-
-logs = Logs()
-
-
-def connect_to_db(config_db, db_name):
- try:
- connect_string = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(
- config_db['DB_USER'],
- config_db['DB_PASS'],
- config_db['HOST'],
- config_db['PORT'],
- db_name)
- engine = sqlalchemy.create_engine(connect_string)
- conn = engine.connect()
- return conn
- except Exception as e:
- logger.error('Database connection failed.')
- logs.error_log(logger, e)
- sys.exit()
-
-def analysis_to_db(state, config, db_section):
- state_upper = state.upper()
- shellcast = ShellCast(state_upper, config[state_upper])
- shellcast.main()
- connect_to_db(config[db_section], config[state_upper]['DB_NAME'])
- add_cmu_probabilities(state)
-
-
-if __name__ == '__main__':
- # Read config.ini
- config = configparser.ConfigParser()
- config.read(CONFIG_INI)
-
-
- # RUN ANALYSIS AND SAVE TO DB
- # NC
- analysis_to_db('NC', config, 'localhost')
diff --git a/analysis/settings.py b/analysis/settings.py
deleted file mode 100644
index 9ff4b4e..0000000
--- a/analysis/settings.py
+++ /dev/null
@@ -1,8 +0,0 @@
-import os
-
-ROOT_DIR = os.path.dirname(__file__)
-ASSETS_DIR = os.path.join(ROOT_DIR, 'assets')
-SRC_DIR = os.path.join(ROOT_DIR, 'src')
-LOGS_DIR = os.path.join(ROOT_DIR, 'logs')
-LOG_CONFIG_YAML = os.path.join(ROOT_DIR, 'logging.yaml')
-CONFIG_INI = os.path.join(ROOT_DIR, 'config.ini')
diff --git a/analysis/src/preps/db-scripts/insert_mock_cmu_probabilities.mysql b/analysis/src/preps/db-scripts/insert_mock_cmu_probabilities.mysql
deleted file mode 100644
index 1c0d021..0000000
--- a/analysis/src/preps/db-scripts/insert_mock_cmu_probabilities.mysql
+++ /dev/null
@@ -1,152 +0,0 @@
-INSERT INTO `cmu_probabilities` (`cmu_name`, `prob_1d_perc`, `prob_2d_perc`, `prob_3d_perc`)
-VALUES
- ('U133', 27, 30, 90),
- ('U038', 51, 91, 78),
- ('U111', 86, 56, 79),
- ('U010', 28, 77, 24),
- ('U108', 31, 20, 15),
- ('U039', 89, 13, 6),
- ('U082', 14, 49, 52),
- ('U086', 54, 57, 74),
- ('U142', 42, 75, 50),
- ('U144', 77, 94, 23),
- ('U143', 40, 10, 43),
- ('U129', 43, 19, 39),
- ('U047', 56, 11, 56),
- ('U048', 45, 10, 74),
- ('U046', 10, 70, 59),
- ('U049', 35, 42, 39),
- ('U053', 30, 34, 84),
- ('U054', 13, 96, 46),
- ('U056', 61, 73, 87),
- ('U051', 29, 98, 14),
- ('U057', 28, 95, 5),
- ('U052', 57, 57, 7),
- ('U064', 16, 19, 72),
- ('U065', 43, 98, 9),
- ('U025', 92, 23, 20),
- ('U016', 15, 85, 45),
- ('U017', 62, 70, 97),
- ('U109', 28, 24, 28),
- ('U110', 2, 65, 100),
- ('U073', 31, 28, 48),
- ('U069', 82, 61, 65),
- ('U102', 0, 99, 41),
- ('U099', 63, 86, 4),
- ('U091', 21, 41, 23),
- ('U092', 32, 100, 100),
- ('U093', 77, 46, 33),
- ('U095', 8, 82, 95),
- ('U008', 19, 85, 72),
- ('U083', 66, 88, 35),
- ('U146', 26, 33, 93),
- ('U131', 52, 55, 0),
- ('U130', 12, 10, 10),
- ('U128', 72, 82, 42),
- ('U050', 10, 46, 23),
- ('U055', 25, 1, 24),
- ('U058', 51, 30, 39),
- ('U059', 9, 70, 94),
- ('U063', 91, 42, 0),
- ('U066', 70, 41, 70),
- ('U012', 99, 68, 26),
- ('U014', 65, 69, 84),
- ('U013', 87, 80, 12),
- ('U015', 36, 65, 34),
- ('U018', 87, 17, 94),
- ('U019', 70, 12, 6),
- ('U020', 96, 44, 27),
- ('U024', 68, 60, 5),
- ('U023', 77, 17, 65),
- ('U080', 0, 22, 99),
- ('U084', 89, 73, 57),
- ('U112', 33, 0, 23),
- ('U149', 12, 53, 80),
- ('U045', 52, 73, 60),
- ('U113', 14, 26, 10),
- ('U117', 79, 76, 77),
- ('U148', 52, 23, 98),
- ('U119', 76, 4, 49),
- ('U116', 92, 45, 67),
- ('U120', 88, 45, 12),
- ('U115', 20, 58, 93),
- ('U034', 68, 14, 27),
- ('U139', 57, 3, 38),
- ('U136', 99, 69, 84),
- ('U135', 81, 14, 18),
- ('U147', 99, 79, 77),
- ('U037', 1, 44, 84),
- ('U036', 57, 93, 99),
- ('U140', 34, 4, 17),
- ('U137', 35, 5, 83),
- ('U076', 61, 8, 78),
- ('U079', 47, 34, 59),
- ('U081', 59, 100, 55),
- ('U072', 10, 65, 89),
- ('U075', 34, 3, 57),
- ('U031', 48, 1, 3),
- ('U042', 73, 94, 47),
- ('U104', 98, 21, 82),
- ('U103', 86, 100, 27),
- ('U101', 67, 94, 99),
- ('U100', 74, 97, 81),
- ('U107', 0, 99, 92),
- ('U044', 37, 44, 28),
- ('U074', 32, 14, 72),
- ('U138', 87, 99, 9),
- ('U035', 55, 15, 74),
- ('U033', 59, 2, 24),
- ('U132', 31, 37, 88),
- ('U028', 6, 71, 10),
- ('U011', 70, 65, 96),
- ('U070', 30, 91, 79),
- ('U071', 40, 80, 90),
- ('U118', 99, 54, 89),
- ('U114', 44, 29, 99),
- ('U134', 43, 16, 41),
- ('U009', 0, 77, 10),
- ('U060', 35, 12, 16),
- ('U061', 74, 90, 15),
- ('U026', 63, 8, 32),
- ('U027', 29, 59, 94),
- ('U043', 0, 45, 13),
- ('U062', 63, 15, 5),
- ('U106', 37, 83, 63),
- ('U122', 24, 84, 9),
- ('U030', 97, 32, 89),
- ('U121', 84, 50, 32),
- ('U029', 61, 27, 5),
- ('U032', 63, 37, 9),
- ('U145', 68, 79, 95),
- ('U105', 46, 38, 35),
- ('U098', 54, 31, 55),
- ('U078', 88, 47, 34),
- ('U021', 92, 50, 20),
- ('U068', 49, 85, 48),
- ('U123', 27, 24, 5),
- ('U124', 32, 32, 14),
- ('U087', 93, 28, 27),
- ('U005', 24, 34, 97),
- ('U077', 28, 65, 91),
- ('U088', 8, 57, 77),
- ('U089', 68, 71, 67),
- ('U090', 100, 76, 19),
- ('U002', 10, 53, 72),
- ('U001', 3, 62, 30),
- ('U006', 3, 4, 47),
- ('U007', 20, 85, 46),
- ('U003', 99, 37, 3),
- ('U004', 30, 81, 73),
- ('U041', 58, 88, 61),
- ('U022', 76, 82, 55),
- ('U141', 37, 93, 54),
- ('U067', 98, 44, 75),
- ('U085', 61, 37, 61),
- ('U094', 38, 14, 29),
- ('U096', 40, 42, 75),
- ('U097', 27, 92, 16),
- ('U126', 40, 23, 76),
- ('U040', 42, 11, 94),
- ('U125', 75, 94, 51),
- ('U127', 62, 51, 76)
-;
diff --git a/analysis/src/preps/db-scripts/insert_mock_ncdmf_leases.mysql b/analysis/src/preps/db-scripts/insert_mock_ncdmf_leases.mysql
deleted file mode 100644
index 6f1ce12..0000000
--- a/analysis/src/preps/db-scripts/insert_mock_ncdmf_leases.mysql
+++ /dev/null
@@ -1,485 +0,0 @@
-INSERT INTO `ncdmf_leases` (`ncdmf_lease_id`, `grow_area_name`, `grow_area_desc`, `cmu_name`, `rainfall_thresh_in`, `geometry`)
-VALUES
- ('1-C-89', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.377125 34.528248)')),
- ('194', 'B09', 'Stump Sound', 'U129', 1.50, ST_PointFromText('POINT(-77.479114 34.48366)')),
- ('195', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.486429 34.471449)')),
- ('447', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.501072 34.466253)')),
- ('26-C-94', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.373649 34.525114)')),
- ('9510', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.393262 34.872213)')),
- ('8602', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.407145 34.871844)')),
- ('9513-A', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.407743 34.869069)')),
- ('443', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.391809 34.874979)')),
- ('1259571', 'E06', 'North River', 'U106', 3.00, ST_PointFromText('POINT(-76.550947 34.701303)')),
- ('2401', 'E08', 'Core Sound Jarrett Bay', 'U041', 2.00, ST_PointFromText('POINT(-76.499343 34.775446)')),
- ('2-C-89', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.373375 34.524491)')),
- ('887', 'E04', 'Newport River', 'U092', 1.00, ST_PointFromText('POINT(-76.726772 34.773223)')),
- ('725A', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.665036 34.758896)')),
- ('877', 'E06', 'North River', 'U102', 1.50, ST_PointFromText('POINT(-76.606869 34.790221)')),
- ('8403', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.537916 34.449476)')),
- ('8402A', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.53598 34.449103)')),
- ('8402B', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.5378 34.447996)')),
- ('684', 'F04', 'Cedar Island', 'U030', 4.00, ST_PointFromText('POINT(-76.302055 35.002349)')),
- ('879', 'C01', 'Mill Creek', 'U128', 1.50, ST_PointFromText('POINT(-77.415079 34.49654)')),
- ('385', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.50739 34.463943)')),
- ('885', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.393182 34.573727)')),
- ('25-67', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.513291 34.454192)')),
- ('186', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.471953 34.474082)')),
- ('425', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.476491 34.471725)')),
- ('703', 'E06', 'North River', 'U102', 1.50, ST_PointFromText('POINT(-76.60525 34.793411)')),
- ('9610', 'D03', 'White Oak River', 'U063', 1.50, ST_PointFromText('POINT(-77.111514 34.70231)')),
- ('62-75', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.59466 34.401936)')),
- ('432', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.54314 34.444743)')),
- ('440', 'B08', 'Topsail Sound', 'U146', 3.00, ST_PointFromText('POINT(-77.559691 34.422409)')),
- ('8501A', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.594006 34.402412)')),
- ('477', 'E06', 'North River', 'U102', 1.50, ST_PointFromText('POINT(-76.605468 34.795044)')),
- ('504', 'E06', 'North River', 'U099', 1.50, ST_PointFromText('POINT(-76.61838 34.766666)')),
- ('570B', 'E08', 'Core Sound Jarrett Bay', 'U042', 2.00, ST_PointFromText('POINT(-76.515694 34.756527)')),
- ('9411', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.964228 35.121146)')),
- ('334', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.468915 34.473255)')),
- ('222', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.543602 34.442243)')),
- ('518', 'E04', 'Newport River', 'U091', 1.00, ST_PointFromText('POINT(-76.736696 34.763586)')),
- ('539', 'B08', 'Topsail Sound', 'U145', 2.50, ST_PointFromText('POINT(-77.558764 34.431578)')),
- ('64-75A', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U073', 4.00, ST_PointFromText('POINT(-76.392654 34.856377)')),
- ('64-75B', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U073', 4.00, ST_PointFromText('POINT(-76.394134 34.856777)')),
- ('1062926', 'G03', 'Swanquarter Bay', 'U036', 4.00, ST_PointFromText('POINT(-76.409553 35.439644)')),
- ('6-C-90', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.339394 34.57073)')),
- ('749', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.534402 34.448804)')),
- ('8804', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.54698 34.444075)')),
- ('493', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.508776 34.461138)')),
- ('9811', 'B08', 'Topsail Sound', 'U142', 3.00, ST_PointFromText('POINT(-77.698046 34.323397)')),
- ('9810', 'B08', 'Topsail Sound', 'U142', 3.00, ST_PointFromText('POINT(-77.702856 34.32635)')),
- ('797', 'F04', 'Cedar Island', 'U030', 4.00, ST_PointFromText('POINT(-76.306585 34.992832)')),
- ('753186-B', 'B08', 'Topsail Sound', 'U145', 2.50, ST_PointFromText('POINT(-77.557025 34.430405)')),
- ('753186-A', 'B08', 'Topsail Sound', 'U145', 2.50, ST_PointFromText('POINT(-77.556187 34.431668)')),
- ('4-C-89', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.378822 34.537744)')),
- ('19-C-92', 'C01', 'Mill Creek', 'U128', 1.50, ST_PointFromText('POINT(-77.381002 34.512338)')),
- ('363', 'B09', 'Stump Sound', 'U129', 1.50, ST_PointFromText('POINT(-77.460619 34.492586)')),
- ('791', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.663884 34.757532)')),
- ('91-80', 'E04', 'Newport River', 'U091', 1.00, ST_PointFromText('POINT(-76.744929 34.770766)')),
- ('614', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.539186 34.435589)')),
- ('9705', 'E06', 'North River', 'U098', 1.50, ST_PointFromText('POINT(-76.576702 34.738648)')),
- ('1062918', 'G03', 'Swanquarter Bay', 'U036', 4.00, ST_PointFromText('POINT(-76.417839 35.435834)')),
- ('1084359', 'G03', 'Swanquarter Bay', 'U037', 4.00, ST_PointFromText('POINT(-76.459715 35.406882)')),
- ('32-C-95', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.377404 34.538003)')),
- ('33-C-95', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.376812 34.538114)')),
- ('34-C-95', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.376223 34.53818)')),
- ('35-C-95', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.375549 34.538341)')),
- ('36-C-95', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.374931 34.538615)')),
- ('37-C-95', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.374158 34.538722)')),
- ('38-C-95', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.374046 34.539074)')),
- ('39-C-95', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.374058 34.539255)')),
- ('40-C-95', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.374099 34.539457)')),
- ('900779', 'G04', 'Wysocking Bay', 'U045', 4.00, ST_PointFromText('POINT(-76.075788 35.405643)')),
- ('8-C-91', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.37335 34.532143)')),
- ('538', 'B08', 'Topsail Sound', 'U145', 2.50, ST_PointFromText('POINT(-77.573029 34.428018)')),
- ('18-C-92', 'G03', 'Swanquarter Bay', 'U035', 4.00, ST_PointFromText('POINT(-76.324101 35.386142)')),
- ('3-C-89', 'G03', 'Swanquarter Bay', 'U140', 4.00, ST_PointFromText('POINT(-76.404605 35.347809)')),
- ('16-C-91', 'F06', 'Bay River', 'U138', 4.00, ST_PointFromText('POINT(-76.614299 35.200798)')),
- ('24-C-93', 'F06', 'Bay River', 'U138', 4.00, ST_PointFromText('POINT(-76.601992 35.202025)')),
- ('989749', 'F06', 'Bay River', 'U137', 4.00, ST_PointFromText('POINT(-76.612966 35.153064)')),
- ('7-C-90', 'F06', 'Bay River', 'U137', 4.00, ST_PointFromText('POINT(-76.60457 35.189653)')),
- ('20-C-92', 'F06', 'Bay River', 'U137', 4.00, ST_PointFromText('POINT(-76.612625 35.181466)')),
- ('9712', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.665787 34.758117)')),
- ('744', 'C03', 'New River', 'U125', 3.00, ST_PointFromText('POINT(-77.417243 34.575718)')),
- ('746', 'C03', 'New River', 'U125', 3.00, ST_PointFromText('POINT(-77.418684 34.576292)')),
- ('881003', 'G03', 'Swanquarter Bay', 'U037', 4.00, ST_PointFromText('POINT(-76.477397 35.398651)')),
- ('8916', 'G03', 'Swanquarter Bay', 'U035', 4.00, ST_PointFromText('POINT(-76.353138 35.367787)')),
- ('1459247', 'F03', 'West Bay', 'U080', 4.00, ST_PointFromText('POINT(-76.398144 34.940838)')),
- ('1226208', 'H01', 'Roanoke Sound', 'U120', 4.00, ST_PointFromText('POINT(-75.54988 35.783518)')),
- ('751', 'C03', 'New River', 'U125', 3.00, ST_PointFromText('POINT(-77.419344 34.576558)')),
- ('8917', 'G03', 'Swanquarter Bay', 'U035', 4.00, ST_PointFromText('POINT(-76.353448 35.368563)')),
- ('9209', 'G03', 'Swanquarter Bay', 'U036', 4.00, ST_PointFromText('POINT(-76.414335 35.432074)')),
- ('850', 'E06', 'North River', 'U098', 1.50, ST_PointFromText('POINT(-76.621644 34.739691)')),
- ('647', 'E06', 'North River', 'U100', 1.50, ST_PointFromText('POINT(-76.606964 34.78907)')),
- ('864', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.397485 34.580538)')),
- ('1194059', 'B08', 'Topsail Sound', 'U142', 3.00, ST_PointFromText('POINT(-77.674597 34.335981)')),
- ('9301', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.397751 34.867037)')),
- ('9509', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.395985 34.870434)')),
- ('9611', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.662361 34.746528)')),
- ('1379452', 'H03', 'Stumpy Point', 'U149', 4.00, ST_PointFromText('POINT(-75.766976 35.682554)')),
- ('9202', 'D03', 'White Oak River', 'U061', 3.00, ST_PointFromText('POINT(-77.123208 34.678074)')),
- ('8702', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.539276 34.447278)')),
- ('8709', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.494237 34.467328)')),
- ('8803', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.381984 34.567763)')),
- ('883B', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.665084 34.753914)')),
- ('9702', 'B08', 'Topsail Sound', 'U142', 3.00, ST_PointFromText('POINT(-77.697978 34.318337)')),
- ('9703', 'B08', 'Topsail Sound', 'U142', 3.00, ST_PointFromText('POINT(-77.696012 34.320941)')),
- ('9707', 'B08', 'Topsail Sound', 'U142', 3.00, ST_PointFromText('POINT(-77.690113 34.321906)')),
- ('9802', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.930239 35.137753)')),
- ('500-A', 'E04', 'Newport River', 'U092', 1.00, ST_PointFromText('POINT(-76.725528 34.764131)')),
- ('83-80', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U073', 4.00, ST_PointFromText('POINT(-76.339566 34.88003)')),
- ('1535442', 'H01', 'Roanoke Sound', 'U113', 4.00, ST_PointFromText('POINT(-75.582775 35.809205)')),
- ('96', 'C01', 'Mill Creek', 'U128', 1.50, ST_PointFromText('POINT(-77.414329 34.511687)')),
- ('9405', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.95295 35.123481)')),
- ('1610179', 'H01', 'Roanoke Sound', 'U111', 4.00, ST_PointFromText('POINT(-75.59736 35.841453)')),
- ('9002', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.394553 34.871129)')),
- ('8816', 'E04', 'Newport River', 'U091', 1.00, ST_PointFromText('POINT(-76.746549 34.770313)')),
- ('522-A', 'E04', 'Newport River', 'U091', 1.00, ST_PointFromText('POINT(-76.740105 34.773281)')),
- ('15-66A', 'E04', 'Newport River', 'U092', 1.00, ST_PointFromText('POINT(-76.7305 34.774142)')),
- ('492', 'E04', 'Newport River', 'U092', 1.00, ST_PointFromText('POINT(-76.727376 34.764151)')),
- ('883A', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.66323 34.754511)')),
- ('793-A', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.662615 34.75304)')),
- ('793-B', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.662478 34.752811)')),
- ('WC-12-06', 'F04', 'Cedar Island', 'U030', 4.00, ST_PointFromText('POINT(-76.302898 35.002786)')),
- ('448', 'E04', 'Newport River', 'U091', 1.00, ST_PointFromText('POINT(-76.7396 34.76977)')),
- ('739', 'E04', 'Newport River', 'U092', 1.00, ST_PointFromText('POINT(-76.735539 34.779191)')),
- ('9404', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.381066 34.563652)')),
- ('9709', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.666758 34.759563)')),
- ('1554609', 'E06', 'North River', 'U106', 3.00, ST_PointFromText('POINT(-76.527452 34.699427)')),
- ('336', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.491209 34.466727)')),
- ('906461', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.482997 34.470743)')),
- ('846', 'B08', 'Topsail Sound', 'U146', 3.00, ST_PointFromText('POINT(-77.562464 34.421788)')),
- ('8921', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.605584 34.400386)')),
- ('1590926', 'E06', 'North River', 'U106', 3.00, ST_PointFromText('POINT(-76.527452 34.699427)')),
- ('1600550', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.378719 34.562723)')),
- ('282', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.535609 34.453849)')),
- ('631', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.511818 34.459918)')),
- ('5-C-89', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.367747 34.532823)')),
- ('45-C-97', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.373436 34.566024)')),
- ('8817', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.382238 34.579474)')),
- ('9108', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.39675 34.861692)')),
- ('9102', 'E08', 'Core Sound Jarrett Bay', 'U042', 2.00, ST_PointFromText('POINT(-76.513932 34.758947)')),
- ('1601764', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.394561 34.871117)')),
- ('624', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.339693 34.553154)')),
- ('9203', 'E04', 'Newport River', 'U091', 1.00, ST_PointFromText('POINT(-76.747102 34.771323)')),
- ('1427111', 'F02', 'Core Creek Merrimon River South River', 'U077', 4.00, ST_PointFromText('POINT(-76.576184 34.968697)')),
- ('1408350', 'F03', 'West Bay', 'U080', 4.00, ST_PointFromText('POINT(-76.396478 34.942515)')),
- ('2101', 'D01', 'Bear Creek', 'U055', 1.50, ST_PointFromText('POINT(-77.206589 34.644384)')),
- ('1546217', 'C01', 'Mill Creek', 'U127', 1.50, ST_PointFromText('POINT(-77.370421 34.520449)')),
- ('8910', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.649549 34.358034)')),
- ('747', 'C03', 'New River', 'U125', 3.00, ST_PointFromText('POINT(-77.405069 34.577532)')),
- ('630', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.513912 34.458187)')),
- ('42-70', 'C03', 'New River', 'U125', 3.00, ST_PointFromText('POINT(-77.403036 34.577024)')),
- ('20-66', 'C03', 'New River', 'U125', 3.00, ST_PointFromText('POINT(-77.40916 34.575731)')),
- ('603', 'E04', 'Newport River', 'U091', 1.00, ST_PointFromText('POINT(-76.740708 34.770846)')),
- ('734', 'E04', 'Newport River', 'U094', 1.50, ST_PointFromText('POINT(-76.720357 34.760574)')),
- ('149', 'B09', 'Stump Sound', 'U129', 1.50, ST_PointFromText('POINT(-77.480652 34.483087)')),
- ('2001', 'C01', 'Mill Creek', 'U128', 1.50, ST_PointFromText('POINT(-77.406795 34.504173)')),
- ('641', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.515592 34.466074)')),
- ('642', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.517225 34.465253)')),
- ('9304', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.397196 34.591724)')),
- ('995969', 'C01', 'Mill Creek', 'U128', 1.50, ST_PointFromText('POINT(-77.407002 34.504923)')),
- ('841', 'E04', 'Newport River', 'U094', 1.50, ST_PointFromText('POINT(-76.708729 34.75343)')),
- ('328', 'C01', 'Mill Creek', 'U128', 1.50, ST_PointFromText('POINT(-77.400085 34.51458)')),
- ('9207', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.661974 34.747566)')),
- ('1652130', 'F04', 'Cedar Island', 'U030', 4.00, ST_PointFromText('POINT(-76.308933 35.000145)')),
- ('145', 'E04', 'Newport River', 'U092', 1.00, ST_PointFromText('POINT(-76.72913 34.770993)')),
- ('344-A', 'D03', 'White Oak River', 'U065', 2.00, ST_PointFromText('POINT(-77.115787 34.684269)')),
- ('347', 'E08', 'Core Sound Jarrett Bay', 'U040', 2.00, ST_PointFromText('POINT(-76.495882 34.786456)')),
- ('857', 'E08', 'Core Sound Jarrett Bay', 'U041', 2.00, ST_PointFromText('POINT(-76.500367 34.777246)')),
- ('866', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.53608 34.438046)')),
- ('9201', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U074', 4.00, ST_PointFromText('POINT(-76.355528 34.827167)')),
- ('1636075', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.663897 34.752279)')),
- ('1636083', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.663897 34.752279)')),
- ('164', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.541823 34.449189)')),
- ('1683820', 'D03', 'White Oak River', 'U061', 3.00, ST_PointFromText('POINT(-77.123219 34.678061)')),
- ('1618255', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.662614 34.75304)')),
- ('1627843', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.661978 34.747562)')),
- ('1632173', 'H01', 'Roanoke Sound', 'U111', 4.00, ST_PointFromText('POINT(-75.59736 35.841453)')),
- ('1624519', 'B03', 'Cape Fear River The Basin', 'U010', 4.00, ST_PointFromText('POINT(-77.93459 33.953256)')),
- ('1572734', 'B03', 'Cape Fear River The Basin', 'U010', 4.00, ST_PointFromText('POINT(-77.93459 33.953256)')),
- ('WC-7-96', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.474298 34.471454)')),
- ('1623511', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.474615 34.472128)')),
- ('1547728', 'B08', 'Topsail Sound', 'U142', 3.00, ST_PointFromText('POINT(-77.674799 34.335769)')),
- ('1642487', 'G02', 'Wright Creek Oyster Creek', 'U133', 4.00, ST_PointFromText('POINT(-76.526278 35.307612)')),
- ('1642578', 'G02', 'Wright Creek Oyster Creek', 'U133', 4.00, ST_PointFromText('POINT(-76.526278 35.307612)')),
- ('1704170', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.662512 34.751812)')),
- ('1704188', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.662512 34.751812)')),
- ('1703669', 'G01', 'Goose Creek Pamlico River', 'U132', 4.00, ST_PointFromText('POINT(-76.648204 35.357746)')),
- ('1703677', 'G01', 'Goose Creek Pamlico River', 'U132', 4.00, ST_PointFromText('POINT(-76.648204 35.357746)')),
- ('9803', 'G03', 'Swanquarter Bay', 'U036', 4.00, ST_PointFromText('POINT(-76.414485 35.434225)')),
- ('1701838', 'H02', 'Croatan Sound', 'U112', 4.00, ST_PointFromText('POINT(-75.640897 35.815497)')),
- ('1670165', 'G01', 'Goose Creek Pamlico River', 'U132', 4.00, ST_PointFromText('POINT(-76.6548 35.411992)')),
- ('1652866', 'G02', 'Wright Creek Oyster Creek', 'U147', 4.00, ST_PointFromText('POINT(-76.535195 35.420338)')),
- ('1686427', 'G02', 'Wright Creek Oyster Creek', 'U147', 4.00, ST_PointFromText('POINT(-76.535195 35.420338)')),
- ('1770692', 'G02', 'Wright Creek Oyster Creek', 'U133', 4.00, ST_PointFromText('POINT(-76.526578 35.314701)')),
- ('1770700', 'G02', 'Wright Creek Oyster Creek', 'U133', 4.00, ST_PointFromText('POINT(-76.526578 35.314701)')),
- ('1746197', 'F05', 'Neuse River Oriental', 'U075', 4.00, ST_PointFromText('POINT(-76.596096 35.097957)')),
- ('1701846', 'H02', 'Croatan Sound', 'U112', 4.00, ST_PointFromText('POINT(-75.640897 35.815497)')),
- ('1624147', 'H05', 'Outer Banks', 'U116', 4.00, ST_PointFromText('POINT(-75.527328 35.2771)')),
- ('1722024', 'H05', 'Outer Banks', 'U116', 4.00, ST_PointFromText('POINT(-75.527328 35.2771)')),
- ('1652148', 'F04', 'Cedar Island', 'U030', 4.00, ST_PointFromText('POINT(-76.308995 34.999714)')),
- ('1702596', 'E01', 'Bogue Sound Broad Creek', 'U019', 3.00, ST_PointFromText('POINT(-76.937438 34.710079)')),
- ('1702604', 'E01', 'Bogue Sound Broad Creek', 'U019', 3.00, ST_PointFromText('POINT(-76.937438 34.710079)')),
- ('1763929', 'E08', 'Core Sound Jarrett Bay', 'U041', 2.00, ST_PointFromText('POINT(-76.499345 34.775451)')),
- ('1792357', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.665787 34.758117)')),
- ('WC-13-09', 'E06', 'North River', 'U106', 3.00, ST_PointFromText('POINT(-76.550947 34.701303)')),
- ('1718394', 'G03', 'Swanquarter Bay', 'U037', 4.00, ST_PointFromText('POINT(-76.455567 35.404546)')),
- ('1670173', 'G01', 'Goose Creek Pamlico River', 'U132', 4.00, ST_PointFromText('POINT(-76.6548 35.411992)')),
- ('1705169', 'H01', 'Roanoke Sound', 'U111', 4.00, ST_PointFromText('POINT(-75.596626 35.838965)')),
- ('9613', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.597225 34.402709)')),
- ('1843986', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.59565 34.402712)')),
- ('689', 'E06', 'North River', 'U102', 1.50, ST_PointFromText('POINT(-76.606414 34.796458)')),
- ('1886639', 'B07', 'Wrightsville Beach', 'U088', 2.00, ST_PointFromText('POINT(-77.76401 34.271559)')),
- ('1859933', 'H05', 'Outer Banks', 'U116', 4.00, ST_PointFromText('POINT(-75.526803 35.281175)')),
- ('1891340', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.667116 34.742818)')),
- ('1872753', 'E04', 'Newport River', 'U094', 1.50, ST_PointFromText('POINT(-76.710104 34.754153)')),
- ('1872779', 'B06', 'Masonboro Sound', 'U085', 2.50, ST_PointFromText('POINT(-77.844218 34.173128)')),
- ('1861319', 'G03', 'Swanquarter Bay', 'U037', 4.00, ST_PointFromText('POINT(-76.469907 35.402658)')),
- ('1861301', 'G03', 'Swanquarter Bay', 'U037', 4.00, ST_PointFromText('POINT(-76.462787 35.40327)')),
- ('1892199', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.59815 34.403768)')),
- ('1889450', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U073', 4.00, ST_PointFromText('POINT(-76.34354 34.877844)')),
- ('1863943', 'F05', 'Neuse River Oriental', 'U075', 4.00, ST_PointFromText('POINT(-76.596081 35.097972)')),
- ('1867472', 'E04', 'Newport River', 'U092', 1.00, ST_PointFromText('POINT(-76.728359 34.764092)')),
- ('1885508', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.671833 34.741469)')),
- ('1867944', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.664554 34.752953)')),
- ('1897156', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.462838 34.482082)')),
- ('1897966', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.938429 35.136208)')),
- ('1849561', 'B08', 'Topsail Sound', 'U142', 3.00, ST_PointFromText('POINT(-77.674554 34.338753)')),
- ('1709310', 'F06', 'Bay River', 'U139', 4.00, ST_PointFromText('POINT(-76.654371 35.182599)')),
- ('1841451', 'H04', 'Hattaras Outer Banks', 'U117', 4.00, ST_PointFromText('POINT(-75.666938 35.230073)')),
- ('1809318', 'B06', 'Masonboro Sound', 'U086', 3.00, ST_PointFromText('POINT(-77.841279 34.160072)')),
- ('1900919', 'B06', 'Masonboro Sound', 'U085', 2.50, ST_PointFromText('POINT(-77.86233 34.140749)')),
- ('1803675', 'B06', 'Masonboro Sound', 'U086', 3.00, ST_PointFromText('POINT(-77.838217 34.163888)')),
- ('1804186', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.662669 34.748573)')),
- ('1800853', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.671897 34.74265)')),
- ('1854256', 'H04', 'Hattaras Outer Banks', 'U117', 4.00, ST_PointFromText('POINT(-75.666938 35.230073)')),
- ('1809391', 'H01', 'Roanoke Sound', 'U111', 4.00, ST_PointFromText('POINT(-75.596626 35.838965)')),
- ('1859941', 'H05', 'Outer Banks', 'U116', 4.00, ST_PointFromText('POINT(-75.526803 35.281175)')),
- ('1535467', 'H01', 'Roanoke Sound', 'U113', 4.00, ST_PointFromText('POINT(-75.582773 35.809203)')),
- ('1865278', 'E08', 'Core Sound Jarrett Bay', 'U040', 2.00, ST_PointFromText('POINT(-76.495883 34.786456)')),
- ('1871458', 'E03', 'Bogue Sound Morehead City', 'U027', 3.00, ST_PointFromText('POINT(-76.715359 34.705748)')),
- ('1889468', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U073', 4.00, ST_PointFromText('POINT(-76.34354 34.877844)')),
- ('1797083', 'E06', 'North River', 'U101', 1.50, ST_PointFromText('POINT(-76.589559 34.769333)')),
- ('1801158', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.407145 34.871844)')),
- ('1871441', 'E04', 'Newport River', 'U094', 1.50, ST_PointFromText('POINT(-76.710103 34.754153)')),
- ('1800861', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.671897 34.74265)')),
- ('1885565', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.671833 34.741469)')),
- ('1867951', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.664554 34.752953)')),
- ('1860139', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.66267 34.748572)')),
- ('1900182', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.938429 35.136208)')),
- ('1858844', 'G03', 'Swanquarter Bay', 'U037', 4.00, ST_PointFromText('POINT(-76.455567 35.404546)')),
- ('1872787', 'B06', 'Masonboro Sound', 'U085', 2.50, ST_PointFromText('POINT(-77.844218 34.173128)')),
- ('1863950', 'F05', 'Neuse River Oriental', 'U075', 4.00, ST_PointFromText('POINT(-76.596081 35.097972)')),
- ('1709328', 'F06', 'Bay River', 'U139', 4.00, ST_PointFromText('POINT(-76.654371 35.182599)')),
- ('1849579', 'B08', 'Topsail Sound', 'U142', 3.00, ST_PointFromText('POINT(-77.674554 34.338753)')),
- ('1882265', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.407743 34.869069)')),
- ('1895028', 'F06', 'Bay River', 'U136', 4.00, ST_PointFromText('POINT(-76.582844 35.237456)')),
- ('1888890', 'E06', 'North River', 'U098', 1.50, ST_PointFromText('POINT(-76.618282 34.735228)')),
- ('1888908', 'E06', 'North River', 'U098', 1.50, ST_PointFromText('POINT(-76.618282 34.735228)')),
- ('1766302', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.930409 35.137288)')),
- ('1894906', 'E03', 'Bogue Sound Morehead City', 'U024', 3.00, ST_PointFromText('POINT(-76.764011 34.715193)')),
- ('1789601', 'F06', 'Bay River', 'U139', 4.00, ST_PointFromText('POINT(-76.676355 35.164716)')),
- ('1795004', 'F06', 'Bay River', 'U139', 4.00, ST_PointFromText('POINT(-76.676355 35.164716)')),
- ('1796036', 'F06', 'Bay River', 'U138', 4.00, ST_PointFromText('POINT(-76.594263 35.20019)')),
- ('1834902', 'B06', 'Masonboro Sound', 'U086', 3.00, ST_PointFromText('POINT(-77.838129 34.163799)')),
- ('1766245', 'C03', 'New River', 'U125', 3.00, ST_PointFromText('POINT(-77.43417 34.592311)')),
- ('1750454', 'B07', 'Wrightsville Beach', 'U088', 2.00, ST_PointFromText('POINT(-77.763085 34.273024)')),
- ('1919877', 'E08', 'Core Sound Jarrett Bay', 'U041', 2.00, ST_PointFromText('POINT(-76.500367 34.777245)')),
- ('1909985', 'B08', 'Topsail Sound', 'U089', 2.50, ST_PointFromText('POINT(-77.719826 34.324334)')),
- ('1914373', 'F04', 'Cedar Island', 'U030', 4.00, ST_PointFromText('POINT(-76.308224 35.00664)')),
- ('1914381', 'F04', 'Cedar Island', 'U030', 4.00, ST_PointFromText('POINT(-76.308224 35.00664)')),
- ('1909993', 'B08', 'Topsail Sound', 'U089', 2.50, ST_PointFromText('POINT(-77.719826 34.324334)')),
- ('1909647', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.653397 34.359282)')),
- ('1909787', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.930315 35.139878)')),
- ('1909795', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.930315 35.139878)')),
- ('1930619', 'E06', 'North River', 'U100', 1.50, ST_PointFromText('POINT(-76.595015 34.771672)')),
- ('1930627', 'E06', 'North River', 'U100', 1.50, ST_PointFromText('POINT(-76.595015 34.771672)')),
- ('1860071', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.48311 34.474963)')),
- ('1860089', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.48311 34.474963)')),
- ('1885466', 'B06', 'Masonboro Sound', 'U085', 2.50, ST_PointFromText('POINT(-77.843389 34.174127)')),
- ('1885474', 'B06', 'Masonboro Sound', 'U085', 2.50, ST_PointFromText('POINT(-77.843389 34.174127)')),
- ('1871466', 'E03', 'Bogue Sound Morehead City', 'U027', 3.00, ST_PointFromText('POINT(-76.715359 34.705748)')),
- ('1907682', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.493261 34.469671)')),
- ('1907708', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.493261 34.469671)')),
- ('1908060', 'B08', 'Topsail Sound', 'U143', 2.50, ST_PointFromText('POINT(-77.67287 34.36215)')),
- ('1909969', 'E06', 'North River', 'U098', 1.50, ST_PointFromText('POINT(-76.602437 34.72048)')),
- ('1909977', 'E06', 'North River', 'U098', 1.50, ST_PointFromText('POINT(-76.605113 34.725814)')),
- ('1911221', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.49683 34.468767)')),
- ('1911239', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.49683 34.468767)')),
- ('1927474', 'E03', 'Bogue Sound Morehead City', 'U024', 3.00, ST_PointFromText('POINT(-76.767022 34.712456)')),
- ('1917780', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.942958 35.135114)')),
- ('1917798', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.942958 35.135114)')),
- ('1944149', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.470217 34.474564)')),
- ('1933001', 'D01', 'Bear Creek', 'U056', 1.50, ST_PointFromText('POINT(-77.196327 34.63671)')),
- ('1933019', 'D01', 'Bear Creek', 'U056', 1.50, ST_PointFromText('POINT(-77.196327 34.63671)')),
- ('1923788', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.59565 34.402712)')),
- ('1909860', 'H01', 'Roanoke Sound', 'U113', 4.00, ST_PointFromText('POINT(-75.565676 35.787925)')),
- ('1909878', 'H01', 'Roanoke Sound', 'U113', 4.00, ST_PointFromText('POINT(-75.565676 35.787925)')),
- ('1911445', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.395985 34.870434)')),
- ('1911437', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.393265 34.872218)')),
- ('1911452', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.39675 34.861692)')),
- ('561', 'E08', 'Core Sound Jarrett Bay', 'U041', 2.00, ST_PointFromText('POINT(-76.490926 34.781985)')),
- ('1918069', 'E08', 'Core Sound Jarrett Bay', 'U041', 2.00, ST_PointFromText('POINT(-76.490926 34.781985)')),
- ('1930916', 'F03', 'West Bay', 'U081', 4.00, ST_PointFromText('POINT(-76.327269 35.008583)')),
- ('1930924', 'F03', 'West Bay', 'U081', 4.00, ST_PointFromText('POINT(-76.327269 35.008583)')),
- ('87-80', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U073', 4.00, ST_PointFromText('POINT(-76.337179 34.881111)')),
- ('1931344', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U073', 4.00, ST_PointFromText('POINT(-76.337179 34.881111)')),
- ('1934553', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.353991 34.567152)')),
- ('8818', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U069', 1.50, ST_PointFromText('POINT(-76.452984 34.818757)')),
- ('1934744', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U069', 1.50, ST_PointFromText('POINT(-76.452984 34.818757)')),
- ('9003', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U069', 1.50, ST_PointFromText('POINT(-76.454452 34.819112)')),
- ('1934801', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U069', 1.50, ST_PointFromText('POINT(-76.454452 34.819112)')),
- ('1934876', 'E03', 'Bogue Sound Morehead City', 'U027', 3.00, ST_PointFromText('POINT(-76.703645 34.700631)')),
- ('1934884', 'E03', 'Bogue Sound Morehead City', 'U027', 3.00, ST_PointFromText('POINT(-76.703645 34.700631)')),
- ('1934900', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.361712 34.560602)')),
- ('1934918', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.361712 34.560602)')),
- ('1935162', 'G03', 'Swanquarter Bay', 'U035', 4.00, ST_PointFromText('POINT(-76.280894 35.343914)')),
- ('1935170', 'G03', 'Swanquarter Bay', 'U035', 4.00, ST_PointFromText('POINT(-76.280894 35.343914)')),
- ('1937275', 'H01', 'Roanoke Sound', 'U111', 4.00, ST_PointFromText('POINT(-75.621366 35.848313)')),
- ('1911528', 'E03', 'Bogue Sound Morehead City', 'U027', 3.00, ST_PointFromText('POINT(-76.706471 34.707303)')),
- ('1911536', 'E03', 'Bogue Sound Morehead City', 'U027', 3.00, ST_PointFromText('POINT(-76.706471 34.707303)')),
- ('1911494', 'E03', 'Bogue Sound Morehead City', 'U027', 3.00, ST_PointFromText('POINT(-76.705511 34.707127)')),
- ('1911502', 'E03', 'Bogue Sound Morehead City', 'U027', 3.00, ST_PointFromText('POINT(-76.705513 34.707125)')),
- ('1930858', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.722524 34.312179)')),
- ('1935113', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.716554 34.312477)')),
- ('1960558', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.730072 34.301114)')),
- ('1960566', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.730072 34.301114)')),
- ('1946284', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.617469 34.385505)')),
- ('1946292', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.617469 34.385505)')),
- ('1948082', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.633455 34.373805)')),
- ('1948108', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.633455 34.373805)')),
- ('1947084', 'B08', 'Topsail Sound', 'U142', 3.00, ST_PointFromText('POINT(-77.692551 34.333672)')),
- ('1961911', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.730617 34.299287)')),
- ('1961929', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.730617 34.299287)')),
- ('1946474', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.713773 34.319312)')),
- ('1951300', 'E03', 'Bogue Sound Morehead City', 'U023', 2.00, ST_PointFromText('POINT(-76.760876 34.722308)')),
- ('1886621', 'B07', 'Wrightsville Beach', 'U088', 2.00, ST_PointFromText('POINT(-77.767558 34.270798)')),
- ('1946003', 'E06', 'North River', 'U101', 1.50, ST_PointFromText('POINT(-76.578302 34.761582)')),
- ('1946011', 'E06', 'North River', 'U101', 1.50, ST_PointFromText('POINT(-76.578302 34.761582)')),
- ('1948637', 'G08', 'Pungo River', 'U147', 4.00, ST_PointFromText('POINT(-76.542935 35.46439)')),
- ('1948645', 'G08', 'Pungo River', 'U147', 4.00, ST_PointFromText('POINT(-76.542935 35.46439)')),
- ('1951334', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.49051 34.472489)')),
- ('1951342', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.49051 34.472489)')),
- ('1946383', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.622613 34.386168)')),
- ('1946391', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.622613 34.386168)')),
- ('1946656', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.486122 34.471658)')),
- ('9112', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U071', 2.00, ST_PointFromText('POINT(-76.427047 34.834464)')),
- ('1961903', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U071', 2.00, ST_PointFromText('POINT(-76.427047 34.834464)')),
- ('1977362', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.50222 34.468672)')),
- ('1977388', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.50222 34.468672)')),
- ('1947688', 'E04', 'Newport River', 'U094', 1.50, ST_PointFromText('POINT(-76.71825 34.758836)')),
- ('1947696', 'E04', 'Newport River', 'U094', 1.50, ST_PointFromText('POINT(-76.71825 34.758836)')),
- ('1951391', 'F06', 'Bay River', 'U139', 4.00, ST_PointFromText('POINT(-76.673183 35.166269)')),
- ('1951409', 'F06', 'Bay River', 'U139', 4.00, ST_PointFromText('POINT(-76.673183 35.166269)')),
- ('1946706', 'F06', 'Bay River', 'U139', 4.00, ST_PointFromText('POINT(-76.654229 35.181573)')),
- ('1946722', 'F06', 'Bay River', 'U139', 4.00, ST_PointFromText('POINT(-76.654229 35.181573)')),
- ('1966936', 'E06', 'North River', 'U098', 1.50, ST_PointFromText('POINT(-76.604092 34.726335)')),
- ('1935139', 'G05', 'Englehard Long Shoal River', 'U045', 4.00, ST_PointFromText('POINT(-76.010662 35.447637)')),
- ('1935147', 'G05', 'Englehard Long Shoal River', 'U045', 4.00, ST_PointFromText('POINT(-76.010662 35.447637)')),
- ('1948553', 'G05', 'Englehard Long Shoal River', 'U045', 4.00, ST_PointFromText('POINT(-75.9502 35.530328)')),
- ('1948561', 'G05', 'Englehard Long Shoal River', 'U045', 4.00, ST_PointFromText('POINT(-75.948433 35.531254)')),
- ('1948538', 'G05', 'Englehard Long Shoal River', 'U045', 4.00, ST_PointFromText('POINT(-75.949353 35.530824)')),
- ('1948504', 'G05', 'Englehard Long Shoal River', 'U045', 4.00, ST_PointFromText('POINT(-75.947574 35.531723)')),
- ('1962653', 'E06', 'North River', 'U098', 1.50, ST_PointFromText('POINT(-76.583728 34.726285)')),
- ('9706A', 'B08', 'Topsail Sound', 'U142', 3.00, ST_PointFromText('POINT(-77.686401 34.324639)')),
- ('9706B', 'B08', 'Topsail Sound', 'U142', 3.00, ST_PointFromText('POINT(-77.686393 34.326385)')),
- ('1986868', 'E03', 'Bogue Sound Morehead City', 'U024', 3.00, ST_PointFromText('POINT(-76.764889 34.714628)')),
- ('1947738', 'G08', 'Pungo River', 'U147', 4.00, ST_PointFromText('POINT(-76.561631 35.455467)')),
- ('1947753', 'G08', 'Pungo River', 'U147', 4.00, ST_PointFromText('POINT(-76.561631 35.455467)')),
- ('1962620', 'E06', 'North River', 'U098', 1.50, ST_PointFromText('POINT(-76.585559 34.721256)')),
- ('9109', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.398213 34.581467)')),
- ('1948058', 'H04', 'Hattaras Outer Banks', 'U117', 4.00, ST_PointFromText('POINT(-75.685358 35.233322)')),
- ('1948066', 'H04', 'Hattaras Outer Banks', 'U117', 4.00, ST_PointFromText('POINT(-75.685358 35.233322)')),
- ('1932979', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.71466 34.311474)')),
- ('1994409', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.716926 34.303008)')),
- ('1974328', 'G08', 'Pungo River', 'U147', 4.00, ST_PointFromText('POINT(-76.627087 35.505036)')),
- ('1974070', 'E06', 'North River', 'U106', 3.00, ST_PointFromText('POINT(-76.577437 34.713842)')),
- ('1979590', 'E04', 'Newport River', 'U092', 1.00, ST_PointFromText('POINT(-76.727793 34.773412)')),
- ('1987775', 'D03', 'White Oak River', 'U063', 1.50, ST_PointFromText('POINT(-77.093559 34.703408)')),
- ('1987825', 'E06', 'North River', 'U099', 1.50, ST_PointFromText('POINT(-76.621038 34.763469)')),
- ('1988831', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.667406 34.741504)')),
- ('1988849', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.667649 34.740947)')),
- ('1988856', 'E04', 'Newport River', 'U094', 1.50, ST_PointFromText('POINT(-76.719796 34.762131)')),
- ('1974773', 'F03', 'West Bay', 'U081', 4.00, ST_PointFromText('POINT(-76.337934 35.015854)')),
- ('1974716', 'F03', 'West Bay', 'U081', 4.00, ST_PointFromText('POINT(-76.345776 35.027094)')),
- ('1975986', 'E06', 'North River', 'U106', 3.00, ST_PointFromText('POINT(-76.554048 34.701326)')),
- ('1987858', 'H04', 'Hattaras Outer Banks', 'U117', 4.00, ST_PointFromText('POINT(-75.660067 35.236404)')),
- ('1977867', 'G03', 'Swanquarter Bay', 'U035', 4.00, ST_PointFromText('POINT(-76.299153 35.358603)')),
- ('1966720', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.994719 35.116678)')),
- ('1978006', 'G03', 'Swanquarter Bay', 'U037', 4.00, ST_PointFromText('POINT(-76.454555 35.398522)')),
- ('1976059', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.512985 34.466028)')),
- ('1988716', 'C03', 'New River', 'U125', 3.00, ST_PointFromText('POINT(-77.43417 34.592311)')),
- ('1983634', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.348629 34.566094)')),
- ('1989615', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.488648 34.473497)')),
- ('1992130', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.341559 34.561304)')),
- ('1993526', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.479598 34.475241)')),
- ('1993609', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.359949 34.566527)')),
- ('1974831', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.716481 34.305496)')),
- ('1982925', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.729253 34.301995)')),
- ('1989342', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.729822 34.294635)')),
- ('1979970', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.59815 34.403768)')),
- ('1980028', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.59466 34.401936)')),
- ('1947688 ext', 'E04', 'Newport River', 'U094', 1.50, ST_PointFromText('POINT(-76.718851 34.759233)')),
- ('1974393', 'D03', 'White Oak River', 'U064', 1.50, ST_PointFromText('POINT(-77.096317 34.698375)')),
- ('1976018', 'F06', 'Bay River', 'U136', 4.00, ST_PointFromText('POINT(-76.563536 35.235454)')),
- ('1994508', 'D03', 'White Oak River', 'U064', 1.50, ST_PointFromText('POINT(-77.097046 34.689707)')),
- ('1994433', 'E04', 'Newport River', 'U095', 1.50, ST_PointFromText('POINT(-76.699884 34.740045)')),
- ('1994813', 'F02', 'Core Creek Merrimon River South River', 'U077', 4.00, ST_PointFromText('POINT(-76.576915 34.972272)')),
- ('1994961', 'E06', 'North River', 'U100', 1.50, ST_PointFromText('POINT(-76.616878 34.772043)')),
- ('1995026', 'E05', 'Beaufort', 'U107', 4.00, ST_PointFromText('POINT(-76.633734 34.69743)')),
- ('1994920', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.672398 34.743377)')),
- ('1966753', 'E04', 'Newport River', 'U095', 1.50, ST_PointFromText('POINT(-76.697586 34.746148)')),
- ('1996396', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.501165 34.468822)')),
- ('1995059', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.602145 34.395341)')),
- ('1983113', 'E04', 'Newport River', 'U091', 1.00, ST_PointFromText('POINT(-76.746549 34.770313)')),
- ('1976000', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.391809 34.874979)')),
- ('1974336', 'G08', 'Pungo River', 'U147', 4.00, ST_PointFromText('POINT(-76.627087 35.505036)')),
- ('1966738', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.994719 35.116678)')),
- ('1966761', 'E04', 'Newport River', 'U095', 1.50, ST_PointFromText('POINT(-76.697586 34.746148)')),
- ('1974096', 'E06', 'North River', 'U106', 3.00, ST_PointFromText('POINT(-76.577437 34.713842)')),
- ('1974724', 'F03', 'West Bay', 'U081', 4.00, ST_PointFromText('POINT(-76.345776 35.027094)')),
- ('1974781', 'F03', 'West Bay', 'U081', 4.00, ST_PointFromText('POINT(-76.337934 35.015854)')),
- ('1974856', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.716481 34.305496)')),
- ('1976034', 'F06', 'Bay River', 'U136', 4.00, ST_PointFromText('POINT(-76.563536 35.235454)')),
- ('1976125', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.512985 34.466028)')),
- ('1978014', 'G03', 'Swanquarter Bay', 'U037', 4.00, ST_PointFromText('POINT(-76.454555 35.398522)')),
- ('1982941', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.729253 34.301995)')),
- ('1987783', 'D03', 'White Oak River', 'U063', 1.50, ST_PointFromText('POINT(-77.093559 34.703408)')),
- ('1987841', 'E06', 'North River', 'U099', 1.50, ST_PointFromText('POINT(-76.621038 34.763469)')),
- ('1987882', 'H04', 'Hattaras Outer Banks', 'U117', 4.00, ST_PointFromText('POINT(-75.660067 35.236404)')),
- ('1989359', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.729822 34.294635)')),
- ('1989623', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.488648 34.473497)')),
- ('1992148', 'C02', 'Sneads Ferry', 'U126', 3.00, ST_PointFromText('POINT(-77.341559 34.561304)')),
- ('1993534', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.479598 34.475241)')),
- ('1994417', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.716926 34.303008)')),
- ('1994516', 'D03', 'White Oak River', 'U064', 1.50, ST_PointFromText('POINT(-77.097046 34.689707)')),
- ('1994821', 'F02', 'Core Creek Merrimon River South River', 'U077', 4.00, ST_PointFromText('POINT(-76.576915 34.972272)')),
- ('1994938', 'E04', 'Newport River', 'U096', 1.50, ST_PointFromText('POINT(-76.672398 34.743377)')),
- ('1995067', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.602145 34.395341)')),
- ('1996404', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.501165 34.468822)')),
- ('1997238', 'B08', 'Topsail Sound', 'U142', 3.00, ST_PointFromText('POINT(-77.69725 34.33197)')),
- ('1948017', 'F06', 'Bay River', 'U136', 4.00, ST_PointFromText('POINT(-76.582844 35.237456)')),
- ('1966852', 'G03', 'Swanquarter Bay', 'U037', 4.00, ST_PointFromText('POINT(-76.469907 35.402658)')),
- ('1951375', 'F06', 'Bay River', 'U139', 4.00, ST_PointFromText('POINT(-76.640479 35.164384)')),
- ('1951383', 'F06', 'Bay River', 'U139', 4.00, ST_PointFromText('POINT(-76.640479 35.164384)')),
- ('1966811', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.594006 34.402412)')),
- ('1951326', 'E04', 'Newport River', 'U092', 1.00, ST_PointFromText('POINT(-76.727376 34.764151)')),
- ('1934363', 'B06', 'Masonboro Sound', 'U085', 2.50, ST_PointFromText('POINT(-77.843839 34.171207)')),
- ('1934371', 'B06', 'Masonboro Sound', 'U085', 2.50, ST_PointFromText('POINT(-77.843839 34.171207)')),
- ('1966787', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.995921 35.098323)')),
- ('1966795', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.995921 35.098323)')),
- ('1982891', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.729868 34.298994)')),
- ('1982909', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.729868 34.298994)')),
- ('1947779', 'B08', 'Topsail Sound', 'U089', 2.50, ST_PointFromText('POINT(-77.72521 34.31975)')),
- ('1947787', 'B08', 'Topsail Sound', 'U089', 2.50, ST_PointFromText('POINT(-77.72521 34.31975)')),
- ('1946458', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.729464 34.296223)')),
- ('1946466', 'B08', 'Topsail Sound', 'U090', 3.00, ST_PointFromText('POINT(-77.729464 34.296223)')),
- ('1974450', 'D03', 'White Oak River', 'U064', 1.50, ST_PointFromText('POINT(-77.096317 34.698375)')),
- ('1974641', 'E03', 'Bogue Sound Morehead City', 'U027', 3.00, ST_PointFromText('POINT(-76.707656 34.705099)')),
- ('1974658', 'E03', 'Bogue Sound Morehead City', 'U027', 3.00, ST_PointFromText('POINT(-76.707656 34.705099)')),
- ('1989581', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.498561 34.470655)')),
- ('1989599', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.498561 34.470655)')),
- ('20-001BL', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.461753 34.484156)')),
- ('20-002WC', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.461753 34.484156)')),
- ('20-003BL', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.593578 34.405224)')),
- ('20-004WC', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.593578 34.405224)')),
- ('20-005BL', 'C01', 'Mill Creek', 'U128', 1.50, ST_PointFromText('POINT(-77.420147 34.506043)')),
- ('20-006WC', 'C01', 'Mill Creek', 'U128', 1.50, ST_PointFromText('POINT(-77.420147 34.506043)')),
- ('20-007BL', 'E06', 'North River', 'U101', 1.50, ST_PointFromText('POINT(-76.578615 34.771892)')),
- ('20-008WC', 'E06', 'North River', 'U101', 1.50, ST_PointFromText('POINT(-76.578615 34.771892)')),
- ('20-009BL', 'C03', 'New River', 'U125', 3.00, ST_PointFromText('POINT(-77.414606 34.574894)')),
- ('20-010BL', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.935418 35.136709)')),
- ('20-011WC', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.935418 35.136709)')),
- ('20-012BL', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.938409 35.132938)')),
- ('20-013WC', 'G06', 'Silver Lake Ocracoke', 'U118', 4.00, ST_PointFromText('POINT(-75.938409 35.132938)')),
- ('20-014BL', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.5263 34.457323)')),
- ('20-015WC', 'B09', 'Stump Sound', 'U131', 1.50, ST_PointFromText('POINT(-77.5263 34.457323)')),
- ('9513', 'E09', 'Core Sound Atlantic Bay Nelson Bay', 'U072', 2.00, ST_PointFromText('POINT(-76.408305 34.867947)')),
- ('1994458', 'C03', 'New River', 'U125', 3.00, ST_PointFromText('POINT(-77.409327 34.574473)')),
- ('1994466', 'C03', 'New River', 'U125', 3.00, ST_PointFromText('POINT(-77.407881 34.574344)')),
- ('20-016WC', 'B08', 'Topsail Sound', 'U144', 3.00, ST_PointFromText('POINT(-77.597225 34.402709)')),
- ('20-017BL', 'G03', 'Swanquarter Bay', 'U037', 4.00, ST_PointFromText('POINT(-76.457836 35.409271)')),
- ('20-018WC', 'G03', 'Swanquarter Bay', 'U037', 4.00, ST_PointFromText('POINT(-76.457836 35.409271)')),
- ('776', 'B09', 'Stump Sound', 'U130', 1.50, ST_PointFromText('POINT(-77.479735 34.471814)'))
-;
diff --git a/analysis/src/preps/db_connect.py b/analysis/src/preps/db_connect.py
deleted file mode 100644
index 3a7404b..0000000
--- a/analysis/src/preps/db_connect.py
+++ /dev/null
@@ -1,24 +0,0 @@
-import sqlalchemy
-import logging
-from analysis.src.utils.utils import Logs
-
-logs = Logs()
-
-logger = logging.getLogger(__name__)
-
-def connect_to_db(config_db, db_name):
- try:
- connect_string = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(
- config_db['DB_USER'],
- config_db['DB_PASS'],
- config_db['HOST'],
- config_db['PORT'],
- db_name)
- print(connect_string)
-
- engine = sqlalchemy.create_engine(connect_string, echo=False)
- conn = engine.connect()
- return conn
- except Exception as e:
- logger.error('Database connection failed.')
- logs.error_log(logger, e)
diff --git a/analysis/src/preps/models.py b/analysis/src/preps/models.py
deleted file mode 100644
index 16ef5aa..0000000
--- a/analysis/src/preps/models.py
+++ /dev/null
@@ -1,44 +0,0 @@
-from sqlalchemy.orm import declarative_base
-from sqlalchemy import Column, Integer, String, DateTime, DECIMAL
-from datetime import datetime
-Base = declarative_base()
-
-
-class Cmu(Base):
- __tablename__ = 'cmus'
-
- id = Column(String(10), primary_key=True, nullable=False, unique=True)
- cmu_name = Column(String(10), nullable=False)
- created = Column(DateTime, default=datetime.now)
-
- def __repr__(self):
- return 'CMU'.format(self.id, self.cmu_name, self.created)
-
-
-class Lease(Base):
- __tablename__ = 'leases'
-
- lease_id = Column(String(20), primary_key=True, nullable=False, unique=True)
- grow_area_name = Column(String(3))
- grow_area_desc = Column(String(50))
- cmu_name = Column(String(10), nullable=False)
- rainfall_thresh_in = Column(DECIMAL(3, 2))
- latitude = Column(DECIMAL)
- longitude = Column(DECIMAL)
- created = Column(DateTime, default=datetime.now)
- updated = Column(DateTime, default=datetime.now, onupdate=datetime.now)
-
- def __repr__(self):
- return f'Lease'.format(self.lease_id, self.grow_area_name, self.grow_area_desc,
- self.cmu_name, self.rainfall_thresh_in, self.latitude,
- self.longitude, self.created, self.updated)
-
-
diff --git a/analysis/src/preps/r_scripts/dmf_tidy_cmu_bounds.R b/analysis/src/preps/r_scripts/dmf_tidy_cmu_bounds.R
deleted file mode 100644
index 2ef063f..0000000
--- a/analysis/src/preps/r_scripts/dmf_tidy_cmu_bounds.R
+++ /dev/null
@@ -1,188 +0,0 @@
-# ---- script header ----
-# script name: ncdmf_tidy_cmu_bounds_script.R
-# purpose of script: reformats the Conditional Management Units shapefile for downstream use
-# author: sheila saia
-# date created: 20201029
-# email: ssaia@ncsu.edu
-
-
-# !IMPORTANT: Manual process required for
-# * cmu_bounds_raw_valid_albers.shp
-# * /tabular/inputs/dmf_rainfall_thresholds/rainfall_thresholds_raw_tidy.csv
-# * /tabular/inputs/dmf_rainfall_thresholds/sga_key.csv
-# * /tabular/inputs/dmf_rainfall_thresholds/cmu_sga_key.csv
-# See developer's notes in R script.
-
-# ----- Creates directory and save outputs
-# [Add directory]
-# /spatial/inputs/dmf_data/cmu_bounds
-# [Outputs]
-# * cmu_bounds_10kmbuf_albers.shp
-# * cmu_bounds_albers.shp
-# * cmu_bounds_wgs84.geojson
-
-
-dmf_tidy_cmu_bounds <- function(cmu_spatial_data_input_path, rainfall_thresh_tabular_data_input_path, cmu_spatial_data_output_path, rainfall_thresh_tabular_data_output_path) {
-
- # ---- 1. load libraries -----
- # packages
- packages <- c("tidyverse", "sf", "geojsonsf")
-
- # install and load
- for (package in packages) {
- if (! package %in% installed.packages()) {
- install.packages(package, dependencies = TRUE)
- }
- library(package, character.only = TRUE)
- }
-
- # ---- 2. define base paths ----
- # base path to data
- # data_base_path = "...analysis/data/" # set this and uncomment!
- # data_base_path = "/Users/sheila/Documents/github_ncsu/shellcast/analysis/data/"
-# data_base_path = here::here("data")
-
- # ---- 3. use base paths and define projections ----
- # inputs
- # path to cmu spatial inputs
-# cmu_spatial_data_input_path <- paste0(data_base_path, "/spatial/inputs/ncdmf_data/cmu_bounds_raw/")
-
- # path to rainfall threshold tabular inputs
-# rainfall_thresh_tabular_data_input_path <- paste0(data_base_path, "/tabular/inputs/ncdmf_rainfall_thresholds/")
-
- # outputs
- # path to cmu spatial outputs
-# cmu_spatial_data_output_path <- paste0(data_base_path, "/spatial/inputs/ncdmf_data/cmu_bounds/")
-
- # path to rainfall threshold tabular outputs
-# rainfall_thresh_tabular_data_output_path <- paste0(data_base_path, "/tabular/inputs/ncdmf_rainfall_thresholds/")
-
- # projections
- # define epsg of original dataset
- nc_sp_epsg <- 6542
- # https://epsg.io/6542
-
- # define epsg and proj for CONUS Albers projection (projecting to this)
- conus_albers_epsg <- 5070
- # conus_albers_proj <- "+init=EPSG:5070"
-
- # define egsp for wgs84
- wgs84_epsg <- 4326
-
-
- # ---- 4. initial processing of cmu bounds (with qgis notes too) ----
- # cmu spatial data
- cmu_bounds_raw <- st_read(paste0(cmu_spatial_data_input_path, "Conditional_Management_Units.shp")) %>%
- st_set_crs(nc_sp_epsg)
-
- # st_crs(cmu_bounds_raw)
-
- # clean up raw data and export for qgis processing
- cmu_bounds_raw_albers <- cmu_bounds_raw %>%
- select(HA_CLASS, ClosingDat, OpeningDat, County, Comments, LABELS, Status, HA_STATUS) %>%
- group_by(HA_CLASS) %>%
- st_transform(conus_albers_epsg)
-
- # export for qgis processing
- st_write(cmu_bounds_raw_albers, paste0(cmu_spatial_data_input_path, "cmu_bounds_raw_albers.shp"), delete_layer = TRUE)
-
- # used "cmu_bounds_raw_albers.shp" to create "cmu_bounds_raw_valid_albers.shp"
- # i used 'fix geometries' and 'check validity' tools in QGIS to fix invalid geometries
- # i went in an manually checked cmu boundaries for cmu polygons that had multiple lines in the output
- # and in some cases deleted or merged these using the editing tool in qgis
- # i used the 'split multi-part feature into single part (interactive mode)"
- # while editing to select the two polygons that i wanted to merge
- # saved valid output to "cmu_bounds_valid_albers.shp"
-
- # QGIS 'fix geometries' and 'check validity' tools version requirements
- # QGIS version: 3.10.11-A Coruña
- # QGIS code revision: d2171173e4
- # Qt version: 5.12.3
- # GDAL version: 2.4.1
- # GEOS version: 3.7.2-CAPI-1.11.2 b55d2125
- # PROJ version: Rel. 5.2.0, September 15th, 2018
- # SQLITE version: 3.28.0
-
-
- # ---- 5. load data ----
-
- # cmu spatial data
- cmu_bounds_raw_valid_albers <- st_read(paste0(cmu_spatial_data_input_path, "cmu_bounds_raw_valid_albers.shp"))
- # st_crs(cmu_bounds_raw_valid_albers) # looks ok, should be 5070
-
- # check that removed duplicates
- # length(cmu_bounds_raw_valid_albers$HA_CLASS)
- # length(unique(cmu_bounds_raw_valid_albers$HA_CLASS))
- # same lengths therefore checks!
-
- # rainfall thresholds for cmu's
- rainfall_thresholds_raw_tidy <- read_csv(paste0(rainfall_thresh_tabular_data_input_path, "rainfall_thresholds_raw_tidy.csv"), col_names = TRUE)
-
- # sga key
- sga_key <- read_csv(paste0(rainfall_thresh_tabular_data_input_path, "sga_key.csv"), col_names = TRUE)
-
- # cmu to sga key
- cmu_sga_key <- read_csv(paste0(rainfall_thresh_tabular_data_input_path, "cmu_sga_key.csv"), col_names = TRUE)
-
-
- # ---- 6. join and clean up cmu bounds data ----
- # select only columns we need
- rain_thresh_data <- rainfall_thresholds_raw_tidy %>%
- dplyr::left_join(cmu_sga_key, by = "HA_CLASS") %>%
- dplyr::select(HA_CLASS, cmu_name, rain_in = rainfall_threshold_in, rain_lab = rainfall_threshold_class) %>%
- dplyr::distinct_all()
-
- # length(unique(rain_thresh_data$HA_CLASS))
- # 149 unique HA_CLASS values
-
- # check unique HA_CLASS values in cmu_bounds_raw_valid_albers
- # length(unique(cmu_bounds_raw_valid_albers$HA_CLASS))
- # 149 unique HA_CLASS values! it's fine!
-
- # join to cmu_bounds_raw_valid_albers
- cmu_bounds_albers <- cmu_bounds_raw_valid_albers %>%
- dplyr::left_join(rain_thresh_data, by = "HA_CLASS") %>%
- dplyr::select(cmu_name:rain_lab)
-
- # check that it joined
- # names(cmu_bounds_albers)
- # it checks!
-
-
- # ---- 7. create geojson ----
- # project to wgs84
- cmu_bounds_wgs84 <- cmu_bounds_albers %>%
- st_buffer(dist = 1) %>% # distance units are meters, this will help with simplifying
- st_simplify(preserveTopology = TRUE, dTolerance = 100) %>%
- st_transform(crs = wgs84_epsg)
- # st_crs(cmu_bounds_wgs84)
- # it checks!
-
- # create geojson
- cmu_bounds_wgs84_geojson <- sf_geojson(cmu_bounds_wgs84, atomise = FALSE, simplify = TRUE, digits = 5)
-
-
- # ---- 8. calculate simple buffer around cmu bounds ----
- # cmu buffer
- cmu_bounds_buffer_albers <- cmu_bounds_albers %>%
- st_convex_hull() %>% # for each cmu
- summarize() %>% # dissolve cmu bounds
- st_buffer(dist = 10000) %>% # buffer distance is in m so 10 * 1000m = 10km
- st_convex_hull() # simple buffer
-
-
- # ---- 9. export data ----
- # create directory if it doesn't exists
- if (!dir.exists(cmu_spatial_data_output_path)) {
- dir.create(cmu_spatial_data_output_path)
- }
- # export cmu bounds
- st_write(cmu_bounds_albers, paste0(cmu_spatial_data_output_path, "cmu_bounds_albers.shp"), delete_layer = TRUE)
-
- # export cmu buffer
- st_write(cmu_bounds_buffer_albers, paste0(cmu_spatial_data_output_path, "cmu_bounds_10kmbuf_albers.shp"), delete_layer = TRUE)
-
- # export geojson
- write_file(cmu_bounds_wgs84_geojson, paste0(cmu_spatial_data_output_path, "cmu_bounds_wgs84.geojson"))
-
-}
\ No newline at end of file
diff --git a/analysis/src/preps/r_scripts/dmf_tidy_lease_data.R b/analysis/src/preps/r_scripts/dmf_tidy_lease_data.R
deleted file mode 100644
index 84e2d3c..0000000
--- a/analysis/src/preps/r_scripts/dmf_tidy_lease_data.R
+++ /dev/null
@@ -1,271 +0,0 @@
-# ---- script header ----
-# script name: ncdmf_tidy_lease_data_script.R
-# purpose of script: tidy up lease data from nc dmf rest api (assumes data is in .shp format)
-# author: sheila saia
-# date created: 20200617
-# email: ssaia@ncsu.edu
-
-
-# ---- notes ----
-# notes:
-
-# raw data column metadata
-# ProductNbr - lease id
-# Assoc_ID - another id associated with the lease id (we don't need to worry about this)
-# Owner - owner/business name
-# Bus_Agent - business agent
-# County - NC county that the business is in
-# WB_Name - waterbody name (this is not the same as growing area)
-# Type_ - lease type (bottom - rent rights to bottom, water column, franchise - own rights to bottom, research sanctuary, proposed, terminated)
-# Status - status of the lease (there are lots of different unique values here)
-# A_Granted - acres granted in the lease
-# EffectiveD - date approved/renewed
-# Expiration - expiration date of lease, 9996 and 9994 indicate a franchise - these have no expiration dates and if part or all is not in a cmu then can't harvest from it
-# Term_Date - termination date (i.e., date when the leased area was terminated)
-
-
-# ----- Seed data -----
-# /spatial/outputs/dmf_data/lease_bounds_raw/lease_bounds_raw.shp
-
-
-
-dmf_tidy_lease_data <- function(lease_data_spatial_input_path, cmu_spatial_data_input_path, sga_spatial_data_input_path, rainfall_thresh_tabular_data_input_path, lease_data_spatial_output_path, lease_bounds_raw_shp) {
-
- # ---- 1. install and load packages as necessary ----
- # packages
- packages <- c("tidyverse", "sf", "geojsonsf")
-
- # install and load
- for (package in packages) {
- if (! package %in% installed.packages()) {
- install.packages(package, dependencies = TRUE)
- }
- library(package, character.only = TRUE)
- }
-
- library("tidyverse")
- library("sf")
- library("geojsonsf")
-
- # ---- 2. define base paths ----
- # base path to data
- # data_base_path = "opt/analysis/data/" # set this and uncomment!
- # data_base_path = "/Users/sheila/Documents/bae_shellcast_project/shellcast_analysis/web_app_data/"
- # data_base_path = "/Users/sheila/Documents/github_ncsu/shellcast/analysis/data/"
- # data_base_path = here::here("data")
-# data_base_path = '/analysis/data'
- # ---- 3. defining paths and projections ----
- # inputs
- # path to raw lease spatial inputs
-# lease_data_spatial_input_path <- paste0(data_base_path, "/spatial/outputs/ncdmf_data/lease_bounds_raw/")
-
- # path to cmu bounds spatial inputs
-# cmu_spatial_data_input_path <- paste0(data_base_path, "/spatial/inputs/ncdmf_data/cmu_bounds/")
-
- # path to sga bounds spatial inputs
-# sga_spatial_data_input_path <- paste0(data_base_path, "/spatial/inputs/ncdmf_data/sga_bounds/")
-
- # path to rainfall threshold tabular inputs
-# rainfall_thresh_tabular_data_input_path <- paste0(data_base_path, "/tabular/inputs/ncdmf_rainfall_thresholds/")
-
- # outputs
- # path to lease spatial outputs
-# lease_data_spatial_output_path <- paste0(data_base_path, "/spatial/outputs/dmf_data/")
-
- # projections
- # define epsg and proj4 for N. America Albers projection (projecting to this)
- # na_albers_proj4 <- "+proj=aea +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs"
- # na_albers_epsg <- 102008
-
- # define epsg and proj for CONUS Albers projection (projecting to this)
- conus_albers_epsg <- 5070
- conus_albers_proj <- "+init=EPSG:5070"
-
- # define wgs 84 projection
- wgs84_epsg <- 4326
- wgs84_proj4 <- "+proj=longlat +datum=WGS84 +no_defs"
-
-
- # ---- 4. load in lease and rainfall threshold data (without dates) ----
- # spatial data
- # use latest date to read in most recent data
- lease_bounds_raw <- st_read(paste0(lease_data_spatial_input_path, lease_bounds_raw_shp))
-
- # check projection
- # st_crs(lease_bounds_raw) # epsg = 2264
-
- # cmu data
- cmu_bounds_albers <- st_read(paste0(cmu_spatial_data_input_path, "cmu_bounds_albers.shp"))
-
- # sga data
- sga_bounds_simple_albers <- st_read(paste0(sga_spatial_data_input_path, "sga_bounds_simple_albers.shp"))
-
- # check projection
- # st_crs(cmu_bounds_albers) # epsg = 5070
- # st_crs(sga_bounds_albers) # epsg = 5070
-
- # tabular data
- # rainfall thresholds
- rainfall_thresholds_raw_tidy <- read_csv(paste0(rainfall_thresh_tabular_data_input_path, "rainfall_thresholds_raw_tidy.csv"))
-
- # sga key
- sga_key <- read_csv(paste0(rainfall_thresh_tabular_data_input_path, "sga_key.csv"))
-
-
- # ---- 5. project and tidy up lease data ----
- lease_data_albers <- lease_bounds_raw %>%
- st_transform(crs = conus_albers_epsg) %>% # project
- dplyr::select(lease_id = ProductNbr, # tidy
- owner = Owner,
- type = Type_,
- area_ac = A_Granted,
- status = Status,
- water_body = WB_Name,
- county = County)
-
- # check projection
- # st_crs(lease_data_albers)
- # crs = 5070
-
-
- # ---- 6. find centroids of leases ----
- # calculate centroids of leases for map pins
- lease_data_centroid_albers <- lease_data_albers %>%
- st_centroid()
-
-
- # ---- 7. add a little buffer to the sga bounds and select sga key data ----
- # sga key selected
- sga_key_sel <- sga_key %>%
- dplyr::select(grow_area = sga_name, sga_desc = sga_desc_short) %>%
- dplyr::mutate(word_count = str_count(sga_desc)) # has to be < 50 for the database
-
- # buffer sga bounds and bind sga key select
- sga_bounds_simple_50mbuf_albers <- sga_bounds_simple_albers %>%
- st_buffer(dist = 50) %>% # in m
- dplyr::left_join(sga_key_sel, by = "grow_area")
-
-
- # ---- 8. add sga and rainfall depths to lease data ----
- # bind sga's to cmu's
- # cmu_sga_bounds_join <- cmu_bounds_albers %>%
- # st_intersection(sga_bounds_albers)
- # dplyr::select(cmu_name, rain_in, rain_lab)
-
- # trim rainfall threshold data
- # rainfall_thresh_data_sel <- rainfall_thresholds_raw_tidy %>%
- # dplyr::select(HA_CLASS, cmu_name)
-
- # join lease, cmu, and sga data by geometry
- # joining by cmu and not sga because each sga has mutiple cmu's within and therefore multiple rainfall thresholds
- lease_data_centroid_albers_join <- lease_data_centroid_albers %>%
- st_intersection(cmu_bounds_albers) %>%
- st_intersection(sga_bounds_simple_50mbuf_albers) %>%
- # dplyr::left_join(rainfall_thresh_data_sel, by = "HA_CLASS") %>%
- dplyr::group_by(lease_id) %>%
- dplyr::slice(which.min(rain_in)) %>%
- # dplyr::group_by(lease_id, rain_in) %>%
- # dplyr::count() %>%
- dplyr::select(lease_id:county, cmu_name, sga_name = grow_area, sga_desc, rain_in, rain_lab)
-
- # NOTE!
- # if the centroid of the lease is at the edge of two growing areas then this code takes
- # the minimum rainfall threshold, as of 20200716 it does not look like this is an issue
- # but it cold be in the future
- # there are ~ 20 (513-483 = 30) leases that have centroids not in cmu's, these are dropped
- # also, there were some leases that were just on the edge of the sga boundaries
- # with the max one about 37m away, so used a 50m buffer around sga bounds to help with this
- # might need an automated check for this once the REST API is up and running
-
- # keep sga and rainfall threshold data to join to lease polygons
- lease_data_centroids_join_no_geom <- lease_data_centroid_albers_join %>%
- st_drop_geometry() %>%
- dplyr::select(lease_id, cmu_name:rain_lab)
-
- # join sga and rainfall threshold data to lease polygons
- lease_data_albers_join <- lease_data_albers %>%
- dplyr::left_join(lease_data_centroids_join_no_geom, by = "lease_id") %>%
- dplyr::filter(rain_in > 0) # drop leases without rainfall thresholds (i.e., NA values) so don't have to fix for db import
- # when grow_area, rain_in, and rain_lab are NA this means they don't have a rainfall threshold (aren't in a current cmu)
-
- # check if lease polygons are valid
- valid_check_list <- st_is_valid(lease_data_albers_join)
-
- # remove non-valid leases
- lease_data_albers_final <- lease_data_albers_join %>%
- dplyr::mutate(valid_polygon = valid_check_list) %>%
- dplyr::filter(valid_polygon == TRUE) %>%
- dplyr::select(-valid_polygon)
-
- # invalid lease polygons
- # lease_data_albers_inval <- lease_data_albers_join %>%
- # dplyr::mutate(valid_polygon = valid_check_list) %>%
- # dplyr::filter(valid_polygon == FALSE) %>%
- # dplyr::select(-valid_polygon)
- # only one is invalid (#414)
-
- # resave centroids b/c lease_data_albers_final has full lease dataset
- lease_data_centroids_albers_final <- lease_data_albers_final %>%
- st_centroid()
- # NA values means that leases don't have a rainfall threshold (aren't in a current cmu)
-
-
- # ---- 9. project data ----
- # project data to wgs84 projection
- lease_data_wgs94 <- lease_data_albers_final %>%
- st_transform(crs = wgs84_epsg)
-
- # project centroids to wgs84 projection
- lease_data_centroid_wgs94 <- lease_data_centroids_albers_final %>%
- st_transform(crs = wgs84_epsg)
-
- # project data to geojson file type (need this for the web app)
- # lease_data_wgs94_geojson <- sf_geojson(lease_data_wgs94, atomise = FALSE, simplify = TRUE, digits = 5)
- # lease_data_centroid_wgs94_geojson <- sf_geojson(lease_data_centroid_wgs94, atomise = FALSE, simplify = TRUE, digits = 5)
- # lease_data_centroid_wgs94_simple_geojson <- sf_geojson(lease_data_centroid_wgs94_simple, atomise = FALSE, simplify = TRUE, digits = 5)
- # gcp doesn't take in spatial data by default so not doing this for now
-
-
- # ---- 10. simplify data for mysql db ----
- # select fields for mysql db
- lease_data_centroid_wgs94_db <- lease_data_centroid_wgs94 %>%
- dplyr::select(lease_id = lease_id,
- cmu_name,
- grow_area_name = sga_name,
- grow_area_desc = sga_desc,
- rainfall_thresh_in = rain_in)
-
- # save coordinates
- lease_data_centroid_coords <- as.data.frame(st_coordinates(lease_data_centroid_wgs94_db)) %>%
- dplyr::select(longitude = X, latitude = Y)
-
- # save lease centroid data as tabular dataset
- lease_data_centroid_wgs94_db_tabular <- lease_data_centroid_wgs94_db %>%
- st_drop_geometry() %>%
- dplyr::bind_cols(lease_data_centroid_coords)
-
-
- # ---- 11. export data ----
- lease_bounds_dir <- paste0(lease_data_spatial_output_path, "lease_bounds/")
- lease_centroid_dir <- paste0(lease_data_spatial_output_path, "lease_centroids/")
- dir_list <- list(lease_bounds_dir, lease_centroid_dir)
- for (d in dir_list) {
- # create directory if it doesn't exists
- if (!dir.exists(d)) {
- dir.create(d)
- }
- }
-
- # export data as shape file for record keeping
- st_write(lease_data_albers_final, paste0(lease_bounds_dir, "lease_bounds_albers.shp"), delete_layer = TRUE)
- st_write(lease_data_centroids_albers_final, paste0(lease_centroid_dir, "lease_centroids_albers.shp"), delete_layer = TRUE)
-
- # export tabular lease centroids for mysql db
- write_csv(lease_data_centroid_wgs94_db_tabular, paste0(lease_centroid_dir, "lease_centroids_db_wgs84.csv"))
-
- # export data as geojson for web app
- # write_file(lease_data_wgs94_geojson, paste0(lease_data_spatial_output_path, "lease_bounds/lease_bounds_wgs84.geojson"))
- # write_file(lease_data_centroid_wgs94_geojson, paste0(lease_data_spatial_output_path, "lease_centroids/lease_centroids_wgs84.geojson"))
- # write_file(lease_data_centroid_wgs94_simple_geojson, paste0(lease_data_spatial_output_path, "lease_centroids/lease_centroids_simple_wgs84.geojson"))
-
-}
\ No newline at end of file
diff --git a/analysis/src/preps/r_scripts/dmf_tidy_sga_bounds.R b/analysis/src/preps/r_scripts/dmf_tidy_sga_bounds.R
deleted file mode 100644
index 01e3ba6..0000000
--- a/analysis/src/preps/r_scripts/dmf_tidy_sga_bounds.R
+++ /dev/null
@@ -1,289 +0,0 @@
-# ---- script header ----
-# script name: ncdmf_tidy_sga_bounds_script.R
-# purpose of script: wrangling nc dmf shellfish growing area (sga) data
-# author: sheila saia
-# date created: 20201101
-# email: ssaia@ncsu.edu
-
-# ----- Seed data -----
-# /spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.shp
-
-# ----- Creates directory and save outputs
-# [Add directory]
-# /spatial/inputs/dmf_data/sga_bounds
-# [Outputs]
-# 1. sga_bounds_albers.shp
-# 2. sga_bounds_simple_albers.shp
-# 3. sga_bounds_10kmbuf_albers.shp
-# 4. sga_bounds_class_albers.shp
-
-dmf_tidy_sga_bounds <- function(sga_spatial_data_input_path, sga_spatial_data_output_path) {
-
- # ---- 1. load libraries ----
- # packages
- packages <- c("tidyverse", "sf", "geojsonsf")
-
- # install and load
- for (package in packages) {
- if (! package %in% installed.packages()) {
- install.packages(package, dependencies = TRUE)
- }
- library(package, character.only = TRUE)
- }
-
- # ---- 2. define base paths ----
- # base path to data
- # data_base_path = "...analysis/data/" # set this and uncomment!
- # data_base_path = "/Users/sheila/Documents/github_ncsu/shellcast/analysis/data/"
-# data_base_path = here::here("data")
-
- # ---- 3. use base paths and define projections ----
- # inputs
- # path to sga spatial inputs (raw data)
-# sga_spatial_data_input_path <- paste0(data_base_path, "/spatial/inputs/ncdmf_data/sga_bounds_raw/")
-
- # outputs
- # path to sga spatial outputs
-# sga_spatial_data_output_path <- paste0(data_base_path, "/spatial/inputs/ncdmf_data/sga_bounds/")
-
- # projections
- # define epsg and proj for CONUS Albers projection (projecting to this)
- conus_albers_epsg <- 5070
- # conus_albers_proj <- "+init=EPSG:5070"
-
- # define egsp for wgs84
- wgs84_epsg <- 4326
-
-
- # ---- 2. load data ----
- # shellfish growing area data
- sga_bounds_raw <- st_read(paste0(sga_spatial_data_input_path, "SGA_Current_Classifications.shp"))
-
- # columns
- # OBJECTID_1, OBJECTID_2, OBJECTID, OBJECTID_3, SGA_INDEX - not really sure what these are but think these are all artifacts from ArcGIS
- # REGION = region of coast (central, north, south)
- # GROW_AREA = growing area (GA) code is a two digits code (e.g., letter + number like A1), first digit (letter) is HA_AREA, second digist (number) is HA_SUBAREA
- # DSHA_NAME = full written out name for location (e.g., Calabash Area)
- # DSHA_ID = like GA code but has dash between digits (e.g., A-1)
- # DSHA_AREA = first digit of GA (e.g., letter like A)
- # DSHA_CODE = like GA code but lower case letter (e.g., a1)
- # DSHA_LABEL = same as DSHA_ID
- # HA_CLASS = describes status of GA (restricted, conditionally approved - open, conditionally approved - closed, approved)
- # HA_CLASSID = shorter version of HA_CLASS (R, CA-O, CA-C, APP)
- # HA_NAME = full written out name for location given by HA_CODE (e.g., Calabash/Sunset Beach/Boneparte Creek Area)
- # HA_NAMEID = like HA_CODE but with dashes and spaces (e.g., A-1 CA-C 1)
- # HA_STATUS = GA status (open or closed)
- # HA_AREA = first digit letter of GA (e.g., A), A through I
- # HA_SUBAREA = second digit number of GA (e.g., 1)
- # HA_CODE = like GA code but has additional information including status and subsub area (e.g., a1cac1)
- # HA_LABEL = same as HA_NAMEID
- # MAP_NAME = contributing watershed/river (61 unique values)
- # MAP_NUMBER = map number corresponding to MAP_NAME (51 unique values)
- # MAP_ID = number from MAP_NUMBER and letter (?)
- # COUNTY = county
- # JURISDCTN = jursdiction (WRC, DMF)
- # WATER_DES = inland, coastal, joint, land
- # SURFACE = canal, land, water, mhw (?)
- # RELAY = ? (NA, N/A, YES, LAND, NO)
- # CREATOR = who created the area/data
- # CREATED = date of creation of the area/data?
- # UPDATED = date the area/data was updated?
- # ACRES = area of grow area in acres
- # SQ_MILES = area of grow area in sqare miles
- # SHAPE_Leng = ?
- # Shape_Le_1 = ?
- # GlobalID = ?
- # SHAPE_Le_2 =?
- # GlobalID_2 = ?
- # Shape__Are = ?
- # Shape__Len = ?
- # GlobalID_3 = ?
- # Shape__A_1 = ?
- # Shape__L_1 = ?
-
- # other observations
- # 1. as far as I can tell DSHA_CODE, HA_NAMEID, HA_AREA, HA_SUBAREA all have similar info to GROW_AREA
- # 2. HA_LABEL,DSHA_LABEL, and MAP_ID have a lot of NA values (not filled in values) so might not be very helpful
- # 3. HA_CODE has a third digit (i.e., letters) that GROW_AREA does not have - will need this
- # 4. DSHA_NAME and HA_NAME are similar but looks like HA_NAME has more detail (going along with HA_NAMEID and HA_CODE)
- # 5. some of the MAP_NAME and MAP_NUMBER columns are NA values
- # 6. what's the details with the UPDATED column?
- # 7. sometimes HA_AREA and HA_SUBAREA are not given even though GROW_AREA is
- # 8. HA_AREA and HA_SUBAREA are never given if GROW_AREA is not given - basically they're not too helpful
-
-
- # ---- 3. initial tidy sga bounds ----
- # check crs
- st_crs(sga_bounds_raw)
- # it's not projected (wgs 84)
-
- # initial tidy and project
- sga_bounds_raw_albers <- sga_bounds_raw %>%
- select(OBJECTID_1, REGION:DSHA_NAME, HA_NAME, HA_CLASS, HA_CLASSID, HA_STATUS, MAP_NAME:SQ_MILES) %>%
- filter(is.na(GROW_AREA) != TRUE) %>% # ignore rows where GROW_AREA = NULL
- st_transform(conus_albers_epsg) # project
-
- # check crs
- st_crs(sga_bounds_raw_albers)
-
- # export to fix geometries in QGIS using 'fix geometries' and 'check validity' tools
- st_write(sga_bounds_raw_albers, paste0(sga_spatial_data_input_path, "sga_bounds_raw_albers.shp"), delete_layer = TRUE)
-
- # used "sga_bounds_raw_albers.shp" to create "sga_bounds_raw_valid_albers.shp"
- # i used 'fix geometries' and 'check validity' tools in QGIS to fix invalid geometries
-
- # QGIS 'fix geometries' and 'check validity' tools version requirements
- # QGIS version: 3.10.11-A Coruña
- # QGIS code revision: d2171173e4
- # Qt version: 5.12.3
- # GDAL version: 2.4.1
- # GEOS version: 3.7.2-CAPI-1.11.2 b55d2125
- # PROJ version: Rel. 5.2.0, September 15th, 2018
- # SQLITE version: 3.28.0
-
- # run these two tools and fixed all invalid polygons
- # saved fixed (and checked) file in QGIS as "sga_bounds_raw_valid_albers.shp" in the sga_bounds_raw directory
-
-
- # ---- 4. load data ----
- # shellfish growing area data that's been initially cleaned (see ncdmf_init_tidy_sga_bounds_script.R)
- sga_bounds_raw_valid_albers <- st_read(paste0(sga_spatial_data_input_path, "sga_bounds_raw_valid_albers.shp"))
-
- # names(sga_bounds_raw_valid_albers)
-
- # columns
- # OBJECTID_1 - not really sure what these are but think these are all artifacts from ArcGIS
- # REGION = region of coast (central, north, south)
- # GROW_AREA = growing area (GA) code is a two digits code (e.g., letter + number like A1), first digit (letter) is HA_AREA, second digist (number) is HA_SUBAREA
- # DSHA_NAME = full written out name for location (e.g., Calabash Area)
- # HA_NAME = full written out name for location given by HA_CODE (e.g., Calabash/Sunset Beach/Boneparte Creek Area)
- # HA_CLASS = describes status of GA (restricted, conditionally approved - open, conditionally approved - closed, approved)
- # HA_CLASSID = shorter version of HA_CLASS (R, CA-O, CA-C, APP)
- # HA_STATUS = GA status (open or closed)
- # MAP_NAME = contributing watershed/river (61 unique values)
- # MAP_NUMBER = map number corresponding to MAP_NAME (51 unique values)
- # MAP_ID = number from MAP_NUMBER and letter (?)
- # COUNTY = county
- # JURISDCTN = jursdiction (WRC, DMF)
- # WATER_DES = inland, coastal, joint, land
- # SURFACE = canal, land, water, mhw (?)
- # RELAY = ? (NA, N/A, YES, LAND, NO)
- # CREATOR = who created the area/data
- # CREATED = date of creation of the area/data?
- # UPDATED = date the area/data was updated?
- # ACRES = area of grow area in acres
- # SQ_MILES = area of grow area in sqare miles
-
-
- # ---- 5. tidy sga bounds attribute data ----
- # tidy data
- sga_bounds_albers <- sga_bounds_raw_valid_albers %>%
- dplyr::mutate(ga_class = if_else(HA_CLASSID == "APP", "approved",
- if_else(HA_CLASSID == "CA-O" | HA_CLASSID == "CA-C", "cond_approved",
- if_else(HA_CLASSID == "CSHA-P", "prohibited", "restricted"))), # don't care if they're open or closed, just if they are approved, conditionally approve, prohibited, or restricted
- grow_area_trim = str_trim(GROW_AREA, side = "both"),
- ha_area_fix = str_to_upper(str_sub(grow_area_trim, start = 1, end = 1)), # original HA_AREA has some NAs so generate from scratch
- ha_subarea_fix = str_pad(str_sub(grow_area_trim, start = 2, end = -1), 2, side = "left", "0"), # original HA_SUBAREA has some NAs so generate from scratch
- grow_area = paste0(ha_area_fix, ha_subarea_fix),
- ga_name = if_else(is.na(HA_NAME) == TRUE, as.character(DSHA_NAME), as.character(HA_NAME))) %>% # if there's no name use general name (i.e., DSHA_NAME)
- dplyr::select(grow_area,
- ga_class,
- region = REGION,
- dsha_name = DSHA_NAME,
- ha_name = HA_NAME,
- ga_name,
- map_name = MAP_NAME,
- county = COUNTY,
- jursidctn = JURISDCTN,
- water_desc = WATER_DES,
- surface = SURFACE,
- creator = CREATOR) %>% # reorder columns
- dplyr::arrange(grow_area, ga_class, ha_name) %>%
- dplyr::mutate(row_id = seq(1:7033))
-
- # rows where ga_name is NA
- sga_bounds_albers$row_id[is.na(sga_bounds_albers$ga_name) == TRUE]
- # row 5399 is only one
-
- # filter out row 5399 and fix (only row with NULL ga_name)
- sga_bounds_albers_row_5399_fix <- sga_bounds_albers %>%
- dplyr::filter(row_id == 5399)
- sga_bounds_albers_row_5399_fix$dsha_name <- "North River"
- sga_bounds_albers_row_5399_fix$ga_name <- "North River"
-
- # take out and add fixed version of row 5399 back and project
- sga_bounds_albers <- sga_bounds_albers %>%
- dplyr::filter(row_id != 5399) %>%
- rbind(sga_bounds_albers_row_5399_fix) %>%
- dplyr::select(-row_id)
- # names(sga_bounds_albers)
-
- # check validity of polygons (shouldn't be a problem but just in case)
- sga_bounds_albers_check <- sga_bounds_albers %>%
- dplyr::mutate(polygon_valid_check = st_is_valid(sga_bounds_albers))
- # names(sga_bounds_albers_check)
-
- # look at invalid sga's
- sga_bounds_albers_invalid_tabular <- sga_bounds_albers_check %>%
- st_drop_geometry() %>%
- dplyr::filter(polygon_valid_check == FALSE)
- # there should be no invalid polygons which is true, so, check!
-
-
- # ---- 6. tidy sga boundaries by sga (simple boundary line) ----
- # summarize boundaries (equivalent to spatial dissolve)
- sga_bounds_simple_albers <- sga_bounds_albers %>%
- group_by(grow_area) %>% # group by sga name
- summarize() %>%
- st_buffer(dist = 1) %>% # distance units are meters
- st_simplify(preserveTopology = TRUE, dTolerance = 100) # in units of meters
- # NOTE: this takes a while to run! (~4 min)
-
-
- # ---- 7. calculate simple buffer around sga bounds ----
- # sga buffer
- sga_bounds_buffer_albers <- sga_bounds_simple_albers %>%
- st_convex_hull() %>% # simple buffer for each sga
- summarize() %>% # dissolve sga bounds
- st_buffer(dist = 10000) %>% # buffer distance is in m so 10 * 1000m = 10km
- st_convex_hull() # simple buffer for all sgas
-
-
- # ---- 8. tidy sga boundaries by sga and class ----
- # summarize boundaries (equivalent to spatial dissolve)
- sga_bounds_class_albers <- sga_bounds_albers %>%
- dplyr::group_by(grow_area, ga_class, ga_name) %>% # group by sga name and class
- dplyr::summarize() %>%
- st_buffer(dist = 1) # buffer 1 m
-
-
-
- # ---- 7. export data ----
- # create directory if it doesn't exists
- if (!dir.exists(sga_spatial_data_output_path)) {
- dir.create(sga_spatial_data_output_path)
- }
- # export tidy sga bounds
- st_write(sga_bounds_albers, paste0(sga_spatial_data_output_path, "sga_bounds_albers.shp"), delete_layer = TRUE)
-
- # export sga simple bounds
- st_write(sga_bounds_simple_albers, paste0(sga_spatial_data_output_path, "sga_bounds_simple_albers.shp"), delete_layer = TRUE)
-
- # export sga buffer bounds
- st_write(sga_bounds_buffer_albers, paste0(sga_spatial_data_output_path, "sga_bounds_10kmbuf_albers.shp"), delete_layer = TRUE)
-
- # export sga class bounds
- st_write(sga_bounds_class_albers, paste0(sga_spatial_data_output_path, "sga_bounds_class_albers.shp"), delete_layer = TRUE)
-
- # save as wgs84 for geojson
- # sga_bounds_simple_wgs84 <- sga_bounds_simple_albers %>%
- # st_transform(wgs84_epsg)
-
- # simplify further to reduce geoJSON size for the web app
- # sga_bounds_simple_wgs84_geojson <- sf_geojson(sga_bounds_simple_wgs84, atomise = FALSE, simplify = TRUE, digits = 5)
-
- # export geoJSON
- # write_file(sga_bounds_simple_wgs84_geojson, paste0(sga_spatial_data_output_path, "sga_bounds_simple_wgs84.geojson"))
-
-
-}
\ No newline at end of file
diff --git a/analysis/src/preps/r_scripts/dmf_tidy_state_bounds.R b/analysis/src/preps/r_scripts/dmf_tidy_state_bounds.R
deleted file mode 100644
index 6ddacb6..0000000
--- a/analysis/src/preps/r_scripts/dmf_tidy_state_bounds.R
+++ /dev/null
@@ -1,127 +0,0 @@
-# ---- script header ----
-# script name: ncdmf_tidy_state_bounds_script.R
-# purpose of script: tidying regional and state bounds for later calcs
-# author: sheila saia
-# date created: 20200604
-# email: ssaia@ncsu.edu
-
-# ----- Seed data -----
-# /spatial/inputs/state_bounds_data/state_bounds_raw/State_Boundaries.shp
-
-# ----- Creates directory and save outputs -----
-# [Added directory]
-# /spatial/inputs/state_bounds_data/state_bounds
-
-# [Outputs]
-# 1. {state_abbrev}_bounds_10kmbuf_albers.shp
-# 2. {state_abbrev}_bounds_10kmbuf_wgs84.shp
-# 3 state_bounds_albers.shp
-# 4. state_bounds_wgs84.shp
-
-# SEE FixMe? - projection
-
-
-dmf_tidy_state_bounds <- function(state_bounds_spatial_data_input_path, state_bounds_spatial_data_output_path, state_name, state_abbrev, state_bounds_shp) {
-
- # ---- 1. load libraries ----=
- # load libraries
- library(tidyverse)
- library(sf)
-# library(here)
-
- # ---- 2. define base paths ----
- # base path to data
- # data_base_path = "...analysis/data/" # set this and uncomment!
- # data_base_path = "/Users/sheila/Documents/bae_shellcast_project/shellcast_analysis/web_app_data/"
-# data_base_path = here::here("data")
-
- # ---- 3. use base paths and define projections ----
- # path to state bounds spatial inputs
-# state_bounds_spatial_data_input_path <- paste0(data_base_path, "/spatial/inputs/state_bounds_data/state_bounds_raw/")
-
- # path to state bounds spatial outputs
-# state_bounds_spatial_data_output_path <- paste0(data_base_path, "/spatial/inputs/state_bounds_data/state_bounds/")
-
- # define epsg and proj4 for N. America Albers projection (projecting to this)
-# na_albersna_albers_proj4_proj4 <- "+proj=aea +lat_1=20 +lat_2=60 +lat_0=40 +lon_0=-96 +x_0=0 +y_0=0 +datum=NAD83 +units=m +no_defs"
-
- # FixMe?:
- # Originally it was 102008 but it didn't work so changed to ESRI:102008
- # I am not sure ESRI:102008 project slightly different from 102008
- na_albers_epsg <- 'ESRI:102008'
-
- # define wgs 84 projection
- wgs84_epsg <- 4326
-
-
- # ---- 3. load data ----
- # state boundaries spatial data
- state_bounds_raw <- st_read(paste0(state_bounds_spatial_data_input_path, state_bounds_shp))
-
-
- # ---- 4. check spatial data projections and project ----
- # check state bounds
- st_crs(state_bounds_raw)
- # epsg 5070 (albers conic equal area)
-
- # project to na albers
- state_bounds_albers <- state_bounds_raw %>%
- dplyr::select(OBJECTID:STATE_NAME) %>%
- st_transform(crs = na_albers_epsg)
- # st_crs(state_bounds_albers)
- # it checks!
-
- # project to wgs84
- state_bounds_wgs84 <- state_bounds_raw %>%
- dplyr::select(OBJECTID:STATE_NAME) %>%
- st_transform(crs = wgs84_epsg)
- # st_crs(state_bounds_wgs84)
- # it checks!
-
- # create directory if it doesn't exists
- if (!dir.exists(state_bounds_spatial_data_output_path)) {
- dir.create(state_bounds_spatial_data_output_path)
- }
-
- # export data
- st_write(state_bounds_albers, paste0(state_bounds_spatial_data_output_path, "state_bounds_albers.shp"), delete_layer = TRUE)
- st_write(state_bounds_wgs84, paste0(state_bounds_spatial_data_output_path, "state_bounds_wgs84.shp"), delete_layer = TRUE)
-
-
- # ---- 5. select only nc bounds and buffer ----
- # select and keep only geometry
- bounds_gem_albers <- state_bounds_albers %>%
- filter(STATE_NAME == state_name) %>%
- st_geometry() %>%
- st_simplify()
-
- # keep a copy projected to wgs84 too
- bounds_geom_wgs84 <- bounds_gem_albers %>%
- st_transform(crs = wgs84_epsg)
-
- # export
- # st_write(bounds_gem_albers, paste0(state_bounds_spatial_data_output_path, "nc_bounds_albers.shp"), delete_layer = TRUE)
- # st_write(bounds_geom_wgs84, paste0(state_bounds_spatial_data_output_path, "nc_bounds_wgs84.shp"), delete_layer = TRUE)
-
-
- # ---- 6. buffer bounds ----
-
- # buffer 5 km
- # nc_bounds_5kmbuf_albers <- bounds_gem_albers %>%
- # st_buffer(dist = 5000) # distance is in m so 5 * 1000m = 5km
-
- # buffer 10 km
- bounds_10kmbuf_albers <- bounds_gem_albers %>%
- st_buffer(dist = 10000) # distance is in m so 10 * 1000m = 10km
-
- # save a copy projected to wgs84
- bounds_10kmbuf_wgs84 <- bounds_10kmbuf_albers %>%
- st_transform(crs = wgs84_epsg)
-
- # export
- state_abbrev_lc <- tolower(state_abbrev)
- # st_write(nc_bounds_5kmbuf_albers, paste0(state_bounds_spatial_data_output_path, "nc_bounds_5kmbuf_albers.shp"), delete_layer = TRUE)
- st_write(bounds_10kmbuf_albers, paste0(state_bounds_spatial_data_output_path, state_abbrev_lc, "_bounds_10kmbuf_albers.shp"), delete_layer = TRUE)
- st_write(bounds_10kmbuf_wgs84, paste0(state_bounds_spatial_data_output_path, state_abbrev_lc, "_bounds_10kmbuf_wgs84.shp"), delete_layer = TRUE)
-
-}
diff --git a/analysis/src/preps/shellcast_leases.py b/analysis/src/preps/shellcast_leases.py
deleted file mode 100644
index a777ede..0000000
--- a/analysis/src/preps/shellcast_leases.py
+++ /dev/null
@@ -1,180 +0,0 @@
-import os
-import sqlalchemy
-import configparser
-import sys
-import pandas as pd
-import rpy2.robjects as robjects
-import logging
-from analysis.settings import ASSETS_DIR, SRC_DIR, LOGS_DIR, CONFIG_INI
-
-if not os.path.exists(LOGS_DIR):
- os.makedirs(LOGS_DIR)
-
-logging.basicConfig(
- filename=os.path.join(LOGS_DIR, 'leases.log'),
- level=logging.INFO,
- format= '[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s',
- datefmt='%H:%M:%S'
- )
-
-# set up logging to console
-console = logging.StreamHandler()
-console.setLevel(logging.DEBUG)
-# set a format which is simpler for console use
-formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
-console.setFormatter(formatter)
-# add the handler to the root logger
-logging.getLogger('').addHandler(console)
-
-
-# IMPORTANT!! Below needs to be imported after log set up
-from analysis.src.utils.utils import Logs
-import db_connect
-
-logger = logging.getLogger(__name__)
-
-robjects.r['options'](warn=-1)
-
-class ShellCastLeases:
- def __init__(self, state_abbrev, lease_bounds_raw_shp, config, config_db):
- self.logs = Logs()
- self.state_abbrev = state_abbrev
- self.lease_bounds_raw_shp = lease_bounds_raw_shp
- self.config = config
- self.config_db = config_db
-
- # R script file directory
- self.r_scripts_dir = os.path.join(SRC_DIR, 'preps', 'r_scripts')
-
- # Spatial data directories
- spatial = f'{state_abbrev.lower()}/data/spatial'
- tabular = f'{state_abbrev.lower()}/data/tabular'
- self.spatial_idata_dir = os.path.join(ASSETS_DIR, spatial, 'inputs')
- self.spatial_odata_dir = os.path.join(ASSETS_DIR, spatial, 'outputs')
-
- # Tabular data directories
- self.tabular_idata_dir = os.path.join(ASSETS_DIR, tabular, 'inputs')
- self.tabular_odata_dir = os.path.join(ASSETS_DIR, tabular, 'outputs')
-
- self.lease_centroid_db_wgs84 = os.path.join(self.spatial_odata_dir, 'dmf_data/lease_centroids', 'lease_centroids_db_wgs84.csv')
-
- def run_r_dmf_tidy_lease_data(self):
- logger.info('Run dmf_tidy-lease_data.R')
- try:
- r_script_fpath = os.path.join(self.r_scripts_dir, 'dmf_tidy_lease_data.R')
- lease_data_spatial_input_path = os.path.join(self.spatial_odata_dir, 'dmf_data/lease_bounds_raw/')
- cmu_spatial_data_input_path = os.path.join(self.spatial_idata_dir, 'dmf_data/cmu_bounds/')
- sga_spatial_data_input_path = os.path.join(self.spatial_idata_dir, 'dmf_data/sga_bounds/')
- rainfall_thresh_tabular_data_input_path = os.path.join(self.tabular_idata_dir, 'dmf_rainfall_thresholds/')
- lease_data_spatial_output_path = os.path.join(self.spatial_odata_dir, 'dmf_data/')
-
- r = robjects.r
- r['source'](r_script_fpath)
- r_func = robjects.globalenv['dmf_tidy_lease_data']
-
- r_func(lease_data_spatial_input_path, cmu_spatial_data_input_path, sga_spatial_data_input_path, rainfall_thresh_tabular_data_input_path, lease_data_spatial_output_path, self.lease_bounds_raw_shp)
- return self.lease_centroid_db_wgs84
-
- except Exception as e:
- self.logs.error_log(logger, e)
- sys.exit()
-
- # def connect_to_db(self):
- # try:
- # connect_string = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(
- # self.config_db['DB_USER'],
- # self.config_db['DB_PASS'],
- # self.config_db['HOST'],
- # self.config_db['PORT'],
- # self.config['DB_NAME'])
- # print(connect_string)
- #
- # engine = sqlalchemy.create_engine(connect_string, echo=False)
- # conn = engine.connect()
- # return conn
- # except Exception as e:
- # logger.error('Database connection failed.')
- # self.logs.error_log(logger, e)
- # sys.exit()
-
- def update_leases_db(self, data, conn):
- for row in data:
- update_query = f'UPDATE leases SET grow_area_name={row["grow_area_name"]}, \
- grow_area_desc={row["grow_area_desc"]}, \
- cmu_name={row["cmu_name"]}, \
- rainfall_thresh_in={row["rainfall_thresh_in"]}, \
- latitude={row["latitude"]}, \
- longitude={row["longitude"]} \
- WHERE lease_id = row["lease_id"]'
- conn.execute(update_query)
-
- def add_leases(self, lease_centroid_db_wgs84, conn):
- logger.info('Add Leases to database.')
- trans = conn.begin()
- try:
- if os.path.exists(lease_centroid_db_wgs84):
- # Add only new data to db table
- queryset = conn.execute('SELECT lease_id FROM leases')
- leases_data = pd.read_csv(lease_centroid_db_wgs84)
-
- # If data already exists in database
- if queryset.rowcount > 0:
- df = pd.DataFrame(queryset)
- ids = df['lease_id']
- # df[df.index.isin(df1.index)]
- data_in_db = df[df['lease_id'].isin(leases_data['lease_id'])].to_dict()
- data_not_in_db = leases_data[
- ~leases_data['lease_id'].isin(ids)].reset_index(drop=True)
-
- # If there are new data
- if data_not_in_db.shape[0] > 0:
- # query = make_lease_sql_query(data_not_in_db)
- logger.info(f'{len(df["lease_id"])} rows will be added to database')
- data_not_in_db.to_sql('leases', conn, if_exists='append', index=False)
- # conn.execute(query)
- trans.commit()
- # print('added lease data to mysql db')
- logger.info(f'New data insert: {data_not_in_db.shape[0]} rows')
-
- else:
- # print('there were no new leases to add to the mysql db')
- logger.info('there were no new leases to add to the mysql db')
-
- # If existing data needs to be updated
- if data_in_db.shape[0] > 0:
- self.update_leases_db(data_in_db, conn)
- logger.info(f'Data update: {data_in_db.shape[0]}')
- else:
- logger.info('Data update: 0 rows')
-
- # Add data to empty database table
- else:
- # Add all data to db table.
- leases_data.to_sql('leases', conn, if_exists='append', index=False)
- # query = make_lease_sql_query(lease_spatial_data)
- # conn.execute(query)
- trans.commit()
- # print('the mysql db was empty so all leases were added')
- logger.info('the mysql db was empty so all leases were added')
- except Exception as e:
- trans.rollback()
- self.logs.error_log(logger, e)
- sys.exit()
-
-
-if __name__ == '__main__':
- # Read config.ini
- config = configparser.ConfigParser()
- config.read(CONFIG_INI)
-
- leases = ShellCastLeases('NC', 'NCDMF_Lease_20220310.shp', config['NC'], config['docker.mysql'])
- # lease_centroid_db_wgs84 = leases.run_r_dmf_tidy_lease_data()
- # print(lease_centroid_db_wgs84)
- lease_centroid_db_wgs84 = '/opt/project/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_db_wgs84.csv'
-
- if lease_centroid_db_wgs84:
- conn = db_connect.connect_to_db(config['docker.mysql'], config['NC']['DB_NAME'])
- leases.add_leases(lease_centroid_db_wgs84, conn)
-
- conn.close()
-
diff --git a/analysis/src/preps/shellcast_preps.py b/analysis/src/preps/shellcast_preps.py
deleted file mode 100644
index f7a985d..0000000
--- a/analysis/src/preps/shellcast_preps.py
+++ /dev/null
@@ -1,183 +0,0 @@
-import os
-import logging
-import sys
-import json
-import configparser
-from collections import Counter
-import rpy2.robjects as robjects
-from sqlalchemy import create_engine
-from sqlalchemy.orm import Session
-from sqlalchemy import delete
-from analysis.settings import ASSETS_DIR, SRC_DIR, CONFIG_INI
-from analysis.src.utils.utils import Logs
-import db_connect
-from analysis.settings import ASSETS_DIR, SRC_DIR, LOGS_DIR, CONFIG_INI
-from models import Cmu
-
-if not os.path.exists(LOGS_DIR):
- os.makedirs(LOGS_DIR)
-
-logging.basicConfig(
- filename=os.path.join(LOGS_DIR, 'preps.log'),
- level=logging.INFO,
- format= '[%(asctime)s] {%(pathname)s:%(lineno)d} %(levelname)s - %(message)s',
- datefmt='%H:%M:%S'
- )
-
-# set up logging to console
-console = logging.StreamHandler()
-console.setLevel(logging.DEBUG)
-# set a format which is simpler for console use
-formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
-console.setFormatter(formatter)
-# add the handler to the root logger
-logging.getLogger('').addHandler(console)
-logger = logging.getLogger(__name__)
-
-
-class ShellCastPreps:
-
- def __init__(self, state_name, state_abbrev):
- self.log = Logs()
- self.state_name = state_name
- self.state_abbrev = state_abbrev
-
- # R script file directory
- self.r_scripts_dir = os.path.join(SRC_DIR, 'preps', 'r_scripts')
-
- # Spatial data directories
- spatial = f'{state_abbrev.lower()}/data/spatial'
- tabular = f'{state_abbrev.lower()}/data/tabular'
- self.spatial_idata_dir = os.path.join(ASSETS_DIR, spatial, 'inputs')
- self.spatial_odata_dir = os.path.join(ASSETS_DIR, spatial, 'outputs')
-
- # Tabular data directories
- self.tabular_idata_dir = os.path.join(ASSETS_DIR, tabular, 'inputs')
- self.tabular_odata_dir = os.path.join(ASSETS_DIR, tabular, 'outputs')
-
-
- def run_r_dmf_tidy_state_bounds(self):
- logger.info('Run dmf_tidy_state_bounds.R')
- try:
- r_script_fpath = os.path.join(self.r_scripts_dir, 'dmf_tidy_state_bounds.R')
- state_bounds_spatial_data_input_path = os.path.join(self.spatial_idata_dir, 'state_bounds_data/state_bounds_raw/')
- state_bounds_spatial_data_output_path = os.path.join(self.spatial_idata_dir, 'state_bounds_data/state_bounds/')
- state_bound_shp = 'State_Boundaries.shp'
-
- r = robjects.r
- r['source'](r_script_fpath)
- r_func = robjects.globalenv['dmf_tidy_state_bounds']
-
- r_func(state_bounds_spatial_data_input_path, state_bounds_spatial_data_output_path, self.state_name, self.state_abbrev, state_bound_shp)
-
- except Exception as e:
- self.log.error_log(logger, e)
- sys.exit()
-
- def run_r_dmf_tidy_cmu_bounds(self):
- """
- !IMPORTANT: Manual process required for
- * cmu_bounds_raw_valid_albers.shp
- * /tabular/inputs/dmf_rainfall_thresholds/rainfall_thresholds_raw_tidy.csv
- * /tabular/inputs/dmf_rainfall_thresholds/sga_key.csv
- * /tabular/inputs/dmf_rainfall_thresholds/cmu_sga_key.csv
- See developer's notes in R script.
- """
- logger.info('Run dmf_tidy_cmu_bounds.R')
- try:
- r_script_fpath = os.path.join(self.r_scripts_dir, 'dmf_tidy_cmu_bounds.R')
- cmu_spatial_data_input_path = os.path.join(self.spatial_idata_dir, 'dmf_data/cmu_bounds_raw/')
- rainfall_thresh_tabular_data_input_path = os.path.join(self.tabular_idata_dir, 'dmf_rainfall_thresholds/')
- cmu_spatial_data_output_path = os.path.join(self.spatial_idata_dir, 'dmf_data/cmu_bounds/')
- rainfall_thresh_tabular_data_output_path = os.path.join(self.tabular_idata_dir, 'dmf_rainfall_thresholds/')
-
- r = robjects.r
- r['source'](r_script_fpath)
- r_func = robjects.globalenv['dmf_tidy_cmu_bounds']
-
- r_func(cmu_spatial_data_input_path, rainfall_thresh_tabular_data_input_path, cmu_spatial_data_output_path, rainfall_thresh_tabular_data_output_path)
- except Exception as e:
- self.log.error_log(logger, e)
- sys.exit()
-
- def run_r_dmf_tidy_sga_bounds(self):
- """
- !IMPORTANT: Manual process required for
- * /spatial/inputs/dmf_data/sga_bounds_raw/sga_bounds_raw_valid_albers.shp
- """
- logger.info('Run dmf_tidy_sga_bounds.R')
- try:
- r_script_fpath = os.path.join(self.r_scripts_dir, 'dmf_tidy_sga_bounds.R')
- sga_spatial_data_input_path = os.path.join(self.spatial_idata_dir, 'dmf_data/sga_bounds_raw/')
- sga_spatial_data_output_path = os.path.join(self.spatial_idata_dir, 'dmf_data/sga_bounds/')
-
- r = robjects.r
- r['source'](r_script_fpath)
- r_func = robjects.globalenv['dmf_tidy_sga_bounds']
-
- r_func(sga_spatial_data_input_path, sga_spatial_data_output_path)
-
- except Exception as e:
- self.log.error_log(logger, e)
- sys.exit()
-
- def extract_cmus_from_geojson(self):
- cmu_geojson_fpath = os.path.join(self.spatial_idata_dir, 'dmf_data/cmu_bounds', 'cmu_bounds_wgs84.geojson')
- cmus = []
-
- with open(cmu_geojson_fpath) as f:
- data = json.load(f)
-
- if data:
- for d in data['features']:
- cmus.append(d['properties']['cmu_name'])
- cmus.sort()
- dups_cmus = [item for item, count in Counter(cmus).items() if count > 1]
- if len(dups_cmus) == 0:
-
- return cmus
-
- else:
- print('There are duplicates.')
- return []
- else:
- print('No data found in the file.')
- return []
-
-def get_connection_string(config_db, db_name):
- connect_string = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(
- config_db['DB_USER'],
- config_db['DB_PASS'],
- config_db['HOST'],
- config_db['PORT'],
- db_name)
- print(connect_string)
- return connect_string
-
-
-if __name__ == '__main__':
- preps = ShellCastPreps('North Carolina', 'NC')
- # preps.run_r_dmf_tidy_state_bounds()
- # preps.run_r_dmf_tidy_cmu_bounds()
- # preps.run_r_dmf_tidy_sga_bounds()
-
- config = configparser.ConfigParser()
- config.read(CONFIG_INI)
- cmus = preps.extract_cmus_from_geojson()
-
- if len(cmus):
- connect_string = get_connection_string(config['docker.mysql'], config['NC']['DB_NAME'])
- engine = create_engine(connect_string)
- session = Session(bind=engine)
-
- queryset = session.query(Cmu).all()
- if len(queryset) > 0:
- delete(Cmu)
- print(f'Delete {len(queryset)} rows.')
- cmus_obj = [Cmu(id=item, cmu_name=item) for item in cmus]
- print(cmus_obj)
- print(f'Save {len(cmus_obj)} rows.')
- session.bulk_save_objects(cmus_obj)
- print('----- Insert success -----')
-
- session.commit()
diff --git a/analysis/src/procs/__init__.py b/analysis/src/procs/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/analysis/src/procs/functions.py b/analysis/src/procs/functions.py
deleted file mode 100644
index 983cea8..0000000
--- a/analysis/src/procs/functions.py
+++ /dev/null
@@ -1,560 +0,0 @@
-"""
-# ---- script header ----
-script name: functions.py
-purpose of script: python fuctions required for running shellcast analysis
-author: sheila saia
-email: ssaia@ncsu.edu
-date created: 20200923
-"""
-import pandas # for data mgmt
-import numpy # for data mgmt
-from pydap.client import open_url # to convert bin file
-import requests # to check if website exists
-from csv import writer
-import logging
-
-logger = logging.getLogger(__name__)
-
-def aggregate_sco_ndfd_var_data(ndfd_var_data, var_period_index, var_period_vals, ndfd_var) :
- """
- Description: Returns a tidy dataframe of qpf SCO NDFD data for a specified date
- Parameters:
- ndfd_var_data (pydap Dataset): Pydap dataset object for specified datetime, from get_sco_ndfd_data() function and need to select a specific variable within this raw dataset
- var_period_index (integer): Integer value that represents where in ndfd_var_data the subperiod of interest is (e.g. 6 hr, 12hr)
- var_period_vals (array): An array of subperiod values (e.g., 6hr, 12hr) for the full period of interest (e.g., 24hr)
- ndfd_var (str): either "qpf" or "pop12", the SCO NDFD variable of interest
- Returns:
- var_agg_data_pd (data frame): A pandas dataframe with variable data aggregated to the full period of interest (e.g., 24hr)
- Required:
- import pandas
- ndfd_var_data requires loading and running convert_sco_ndfd_datetime_str() and get_sco_ndfd_data() functions before this
- Source: none, custom function
-
- Note: Subperiods and periods are described as follows. For example, qpf data is reported in subperiods of 6 hours so to calculate qpf for 24 hours, you will have to sum 6, 12, 18, and 24 hour subperiods to get a full 24 hour period.
- """
- # all data for 1-day forecast (24 hrs)
- var_period_raw_data = ndfd_var_data.data[0][var_period_index[0]:(var_period_index[-1]+1)]
- # now have to loop through and bind each of these 4 arrays together into one for 24hrs
-
- # 24 hrs (compile dataframe from all subperiods)
- var_period_full_df = pandas.DataFrame()
- for subperiod in range(0, var_period_raw_data.shape[0]):
- temp_subperiod_pd_raw = pandas.DataFrame(var_period_raw_data[subperiod]).stack(dropna = False).reset_index()
- # temp_subperiod_pd_raw['subperiod_hrs'] = numpy.repeat(str(var_period_vals[subperiod]), len(temp_subperiod_pd_raw), axis=0)
- # var_period_full_df = var_period_full_df.append(temp_subperiod_pd_raw)
- var_period_full_df = pandas.concat([var_period_full_df, temp_subperiod_pd_raw])
-
- # reset index
- var_period_full_df.reset_index()
-
- if ndfd_var == "qpf":
- # aggregate all subperiods and reset (take summation)
- var_period_agg_df = var_period_full_df.groupby(['level_0', 'level_1']).agg(
- qpf_value_kgperm2 = pandas.NamedAgg(column = 0, aggfunc = sum)).reset_index()
-
- # print response
- # print(ndfd_var + " " + str(int(var_period_vals[-1])) + " hr period aggregated")
- logger.info(ndfd_var + " " + str(int(var_period_vals[-1])) + " hr period aggregated")
-
-
- else: # ndfd_var == "pop12"
- # aggregate all subperiods and reset (take maximum)
- var_period_agg_df = var_period_full_df.groupby(['level_0', 'level_1']).agg(
- pop12_value_perc = pandas.NamedAgg(column = 0, aggfunc = max)).reset_index()
-
- # print response
- # print(ndfd_var + " " + str(int(var_period_vals[-1])) + " hr period aggregated")
- logger.info(ndfd_var + " " + str(int(var_period_vals[-1])) + " hr period aggregated")
- return var_period_agg_df
-
-
-def append_list_as_row(file_name, list_of_elem):
- """
- Description: opens existing file and appends row to it
- Parameters:
- file_name (str): a string defining the file path
- list_of_elem (list): the list of elements to be added to the file
- Returns:
- path with list_of_elements appended to it (i.e., row appended)
- Required:
- import writer from the csv library
- Source: https://thispointer.com/python-how-to-append-a-new-row-to-an-existing-csv-file/
- """
- # Open file in append mode
- with open(file_name, 'a+', newline='') as write_obj:
- # Create a writer object from csv module
- csv_writer = writer(write_obj)
- # Add contents of list as last row in the csv file
- csv_writer.writerow(list_of_elem)
-
-
-def convert_sco_ndfd_datetime_str(datetime_str):
- """
- Description: takes string of format "%Y-%m-%d %H:%M" and converts it to the "%Y%m%d%H", "%Y%m%d", and "%Y%m" formats
- Parameters:
- datetime_str (str): A string in "%Y-%m-%d %H:%M" format (e.g., "2016-01-01 00:00")
- Returns:
- datetime_ym_str (str): A string in "%Y%m" format (e.g, "201601")
- datetime_ymd_str (str): A string in "%Y%m%d" format (e.g, "20160101")
- datetime_ymdh_str (str): A string in "%Y%m%d%H" format (e.g, "2016010100")
- Required: none
- Source: none, custom function
- """
- # strings
- date_str, time_str = datetime_str.split(" ")
- year_str, month_str, day_str = date_str.split("-")
- hour_str, sec_str = time_str.split(":")
-
- # define datetime combinations
- datetime_ym_str = year_str + month_str
- datetime_ymd_str = year_str + month_str + day_str
- datetime_ymdh_str = year_str + month_str + day_str + hour_str
-
- return datetime_ym_str, datetime_ymd_str, datetime_ymdh_str
-
-
-def get_sco_ndfd_data(base_server_url, datetime_uct_str):
- """
- Description: returns a dataframe of NC State Climate office (SCO) National Digital Forecast Dataset (NDFD) data for a specified datetime, if url does not exist then will give empty dataset
- Parameters:
- base_server_url (str): Base URL (string) for the SCO NDFD TDS server
- datetime_uct_str (str): A string in "%Y-%m-%d %H:%M" format (e.g., "2016-01-01 00:00") with timezone = UCT
- Returns:
- ndfd_data (pydap Dataset): Pydap dataset object for specified datetime,
- if url does not exist then will give empty dataset
- Required:
- import open_url from pydap.client
- import requests
- must load and run convert_sco_ndfd_datetime_str() function
- Source: none, custom function
- """
- # convert datetime string
- year_month, year_month_day, year_month_day_hour = convert_sco_ndfd_datetime_str(datetime_uct_str)
-
- # define data url
- date_str_url = year_month + "/" + year_month_day + "/" + year_month_day_hour
- data_url = base_server_url + date_str_url + "ds.midatlan.oper.bin"
- data_url_to_check = data_url + ".html" # check with requests is working unless it has .html on end
- # needs to be in format https://tds.climate.ncsu.edu/thredds/dodsC/nws/ndfd/YYYYMM/YYYYMMDD/YYYYMMDDHHds.midatlan.oper.bin.html
-
- # check if url exisits
- url_check = requests.get(data_url_to_check)
- url_status = url_check.status_code
-
- if url_status == 200: # 200 means that everything is ok
- # get data from SCO server url and store it on pc
- ndfd_data = open_url(data_url)
-
- else: # 404 or any other number means that url is not ok
- ndfd_data = []
-
- return ndfd_data #, url_status, data_url_to_check
-
-
-def get_var_col_name(ndfd_data, ndfd_var):
- """
- Description: returns the full column name of the variable of interest and SCO NDFD dataset of interest
- Parameters:
- ndfd_data (pydap Dataset): Pydap dataset object for specified datetime, from get_sco_ndfd_data() function
- ndfd_var (str): either "qpf" or "pop12", the SCO NDFD variable of interest
- Returns:
- var_col_name (str): A string with the full SCO NDFD variable column name means data is available)
- Required: none
- Source: none, custom function
- """
- # get children string
- ndfd_children_str = str(ndfd_data.children)
-
- # split string
- ndfd_cols = ndfd_children_str.split(",")
-
- # create empty variable
- var_col_name = []
-
- # look through each row of data for variable of interest
- if (ndfd_var == "qpf"):
- for row in range(0, len(ndfd_cols)):
- row_to_check = ndfd_cols[row]
- row_result = row_to_check.find('Total_precipitation_surface_6_Hour_Accumulation')
-
- if row_result > 0:
- row_to_check_final = row_to_check.replace(" ", "").replace("'","")
- var_col_name.append(row_to_check_final)
-
- elif (ndfd_var == "pop12"):
- for row in range(0, len(ndfd_cols)):
- row_to_check = ndfd_cols[row]
- row_result = row_to_check.find('Total_precipitation_surface_12_Hour_Accumulation_probability_above_0p254')
-
- if row_result > 0:
- row_to_check_final = row_to_check.replace(" ", "").replace("'","")
- var_col_name.append(row_to_check_final)
-
- return var_col_name[0]
-
-
-def make_lease_sql_query(data):
- """
- Description: opens existing file and appends row to it
- Parameters:
- data (pandas df): a pandas dataframe that includes ncdmf lease information to be added to the shellcast mysql database,
- this dataframe must have the following columns: ncdmf_lease_id, grow_area_name, rainfall_thresh_in, longitude, latitude
- Returns:
- sql query (string) to insert new ncdmf leases into the shellcast mysql database
- Requred: need to import pandas, data going into this function needs to be at least 1 row or longer
- Source: none, custom function
-
- """
- # if there's only one lease to add
- if (len(data) == 1):
- # get data for the only row
- temp_row = data.iloc[0]
-
- # initial string
- initial_str = "INSERT INTO `ncdmf_leases` (`ncdmf_lease_id`, `grow_area_name`, `grow_area_desc`, `cmu_name`, `rainfall_thresh_in`, `geometry`) VALUES "
-
- # define temp row string
- temp_row_str = '(\'{ncdmf_lease_id}\', \'{grow_area_name}\', \'{grow_area_desc}\', \'{cmu_name}\', {rainfall_thresh_in}, ST_PointFromText(\'POINT({longitude} {latitude})\'));'.format(
- ncdmf_lease_id = temp_row.ncdmf_lease_id,
- grow_area_name = temp_row.grow_area_name,
- grow_area_desc = temp_row.grow_area_desc,
- cmu_name = temp_row.cmu_name,
- rainfall_thresh_in = temp_row.rainfall_thresh_in,
- longitude = round(temp_row.longitude, ndigits = 6),
- latitude = round(temp_row.latitude, ndigits = 6))
-
- # concatinate strings
- full_str = initial_str + temp_row_str
-
- # if greater than 1 (doesn't go into this function if it's not > 0)
- else:
- # define first and last rows
- first_row = 0
- last_row = len(data) - 1
-
- # full string
- full_str = ""
-
- for row in range(0, len(data)):
- # temp row string
- if (row == first_row):
- # get data for one row
- temp_row = data.iloc[row]
-
- # initial string
- initial_str = "INSERT INTO `ncdmf_leases` (`ncdmf_lease_id`, `grow_area_name`, `grow_area_desc`, `cmu_name`, `rainfall_thresh_in`, `geometry`) VALUES "
-
- # define temp row string
- temp_row_str = '(\'{ncdmf_lease_id}\', \'{grow_area_name}\', \'{grow_area_desc}\', \'{cmu_name}\', {rainfall_thresh_in}, ST_PointFromText(\'POINT({longitude} {latitude})\')), '.format(
- ncdmf_lease_id = temp_row.ncdmf_lease_id,
- grow_area_name = temp_row.grow_area_name,
- grow_area_desc = temp_row.grow_area_desc,
- cmu_name = temp_row.cmu_name,
- rainfall_thresh_in = temp_row.rainfall_thresh_in,
- longitude = round(temp_row.longitude, ndigits = 6),
- latitude = round(temp_row.latitude, ndigits = 6))
-
- # concatinate strings
- full_str = full_str + initial_str + temp_row_str
-
- elif ((row > first_row) and (row < last_row)):
- # get data for one row
- temp_row = data.iloc[row]
-
- # define temp row string, note comma at end
- temp_row_str = '(\'{ncdmf_lease_id}\', \'{grow_area_name}\', \'{grow_area_desc}\', \'{cmu_name}\', {rainfall_thresh_in}, ST_PointFromText(\'POINT({longitude} {latitude})\')), '.format(
- ncdmf_lease_id = temp_row.ncdmf_lease_id,
- grow_area_name = temp_row.grow_area_name,
- grow_area_desc = temp_row.grow_area_desc,
- cmu_name = temp_row.cmu_name,
- rainfall_thresh_in = temp_row.rainfall_thresh_in,
- longitude = round(temp_row.longitude, ndigits = 6),
- latitude = round(temp_row.latitude, ndigits = 6))
-
- # concatinate strings
- full_str = full_str + temp_row_str
-
- else: #if (row == last_row):
- # get data for one row
- temp_row = data.iloc[row]
-
- # define temp row string, note semi-colon
- temp_row_str = '(\'{ncdmf_lease_id}\', \'{grow_area_name}\', \'{grow_area_desc}\', \'{cmu_name}\', {rainfall_thresh_in}, ST_PointFromText(\'POINT({longitude} {latitude})\'));'.format(
- ncdmf_lease_id = temp_row.ncdmf_lease_id,
- grow_area_name = temp_row.grow_area_name,
- grow_area_desc = temp_row.grow_area_desc,
- cmu_name = temp_row.cmu_name,
- rainfall_thresh_in = temp_row.rainfall_thresh_in,
- longitude = round(temp_row.longitude, ndigits = 6),
- latitude = round(temp_row.latitude, ndigits = 6))
-
- # concatinate strings
- full_str = full_str + temp_row_str
-
- # return string
- return full_str
-
-
-def tidy_sco_ndfd_data(ndfd_data, datetime_uct_str, ndfd_var):
- """
- Description: Returns a tidy dataframe of qpf SCO NDFD data for a specified date
- Parameters:
- ndfd_data (pydap Dataset): Pydap dataset object for specified datetime, from get_sco_ndfd_data() function
- datetime_uct_str (str): A string in "%Y-%m-%d %H:%M" format (e.g., "2016-01-01 00:00") with timezone = UCT
- ndfd_var (str): either "qpf" or "pop12", the SCO NDFD variable of interest
- Returns:
- var_data_pd (data frame): A pandas dataframe with SCO NDFD variable data
- datetime_ymdh_str (str): A string in "%Y%m%d%H" format (e.g, "2016010100")
- Required:
- import numpy, import pandas, import datatime, must load and run convert_sco_ndfd_datetime_str(), get_sco_ndfd_data(), and aggregate_sco_ndfd_var_data() functions before this
- Source: none, custom function
- """
- # ndfd_data.values # to see all possible variables
-
- # convert datetime str so can append to file name
- datetime_ym, datetime_ymd_str, datetime_ymdh_str = convert_sco_ndfd_datetime_str(datetime_uct_str)
-
- # if data exists
- if (len(ndfd_data) > 0):
- # get actual column name in SCO NDFD data and check code
- # there was an issue where the column name had some other padded information (see 2015/09/16 data)
- qpf_var_col_name = get_var_col_name(ndfd_data = ndfd_data, ndfd_var = "qpf")
- pop12_var_col_name = get_var_col_name(ndfd_data = ndfd_data, ndfd_var = "pop12")
-
- # check that column name is exact
- qpf_var_check = qpf_var_col_name == 'Total_precipitation_surface_6_Hour_Accumulation'
- pop12_var_check = pop12_var_col_name == 'Total_precipitation_surface_12_Hour_Accumulation_probability_above_0p254'
-
- # if requestig qpf data
- if ((ndfd_var == "qpf") and (qpf_var_check == True)):
- # save variable data
- var_data = ndfd_data[qpf_var_col_name] # qpf
- #var_data.dimensions # to see dimensions of variable
-
- # save variable dimentions
- var_data_dims = var_data.dimensions # get all dimentions
-
- # check number of dimensions and find 'time' dimensions
- # when there are more than three (i.e., when 'refime' dimension exisits) there's
- # no available list of pop12 or qpf for 24, 36, etc. hours out (which i need)
- # so skip entries with 4 dimensions
- if (len(var_data_dims) == 3): # when dimensions are (time, y, x)
- # get time dimention
- var_data_time_dim = var_data_dims[0]
-
- # save list of variable time dimentions
- var_time_np = numpy.array(var_data[var_data_time_dim][:])
- # we want 24 hr (1-day), 48 hr (2-day), and 72 hr (3-day) data
-
- # select subperiods
- var_times_sel = numpy.array([6., 12., 18., 24., 30., 36., 42., 48., 54., 60., 66., 72.])
-
- # check that subperiods are available
- var_comparison = numpy.intersect1d(var_time_np, var_times_sel) # has to be 12 long
-
- # all subperiods are available
- if(len(var_comparison) == 12):
- # get subperiod values
- var_24hr_vals = var_times_sel[0:4]
- var_48hr_vals = var_times_sel[4:8]
- var_72hr_vals = var_times_sel[8:12]
-
- # get index for pulling data
- var_24hr_index = numpy.where(numpy.isin(var_times_sel, var_24hr_vals))[0] # 1-day forecast
- var_48hr_index = numpy.where(numpy.isin(var_times_sel, var_48hr_vals))[0] # 2-day forecast
- var_72hr_index = numpy.where(numpy.isin(var_times_sel, var_72hr_vals))[0] # 3-day forecast
-
- # aggregate qpf data
- var_24hr_pd_raw = aggregate_sco_ndfd_var_data(var_data, var_24hr_index, var_24hr_vals, ndfd_var)
- var_48hr_pd_raw = aggregate_sco_ndfd_var_data(var_data, var_48hr_index, var_48hr_vals, ndfd_var)
- var_72hr_pd_raw = aggregate_sco_ndfd_var_data(var_data, var_72hr_index, var_72hr_vals, ndfd_var)
-
- # add valid period column
- var_24hr_pd_raw['valid_period_hrs'] = numpy.repeat("24", len(var_24hr_pd_raw), axis=0)
- var_48hr_pd_raw['valid_period_hrs'] = numpy.repeat("48", len(var_48hr_pd_raw), axis=0)
- var_72hr_pd_raw['valid_period_hrs'] = numpy.repeat("72", len(var_72hr_pd_raw), axis=0)
-
- # merge rows of data frames
- # var_data_pd_raw = var_24hr_pd_raw.append([var_48hr_pd_raw, var_72hr_pd_raw]).reset_index()
- var_data_pd_raw = pandas.concat([var_24hr_pd_raw, var_48hr_pd_raw, var_72hr_pd_raw]).reset_index()
- # rename columns
- var_data_pd = var_data_pd_raw.rename(columns={"level_0": "y_index", "level_1": "x_index", "qpf_value_kgperm2": "qpf_value_kgperm2"})
-
- # save x and y data
- x_data = ndfd_data['x'][:] # x coordinate
- y_data = ndfd_data['y'][:] # y coordinate
-
- # create latitude and longitude columns
- longitude = []
- latitude = []
- for row in range(0, var_data_pd.shape[0]):
- x_index_val = var_data_pd['x_index'][row]
- y_index_val = var_data_pd['y_index'][row]
- longitude.append(x_data.data[x_index_val]) # x is longitude
- latitude.append(y_data.data[y_index_val]) # y is latitude
-
- # add longitude and latitude to data frame
- var_data_pd['longitude_km'] = longitude
- var_data_pd['latitude_km'] = latitude
-
- # create and wrangle time columns
- # server time is in UCT but changing it to something that's local for NC (use NYC timezone)
- var_data_pd['time'] = pandas.to_datetime(numpy.repeat(datetime_uct_str, len(var_data_pd), axis=0), format = "%Y-%m-%d %H:%M")
- var_data_pd['time_uct_long'] = var_data_pd.time.dt.tz_localize(tz = 'UCT')
- var_data_pd['time_uct'] = var_data_pd.time_uct_long.dt.strftime("%Y-%m-%d %H:%M")
- var_data_pd['time_nyc_long'] = var_data_pd.time_uct_long.dt.tz_convert(tz = 'America/New_York')
- var_data_pd['time_nyc'] = var_data_pd.time_nyc_long.dt.strftime("%Y-%m-%d %H:%M")
-
- # print status
- # print("tidied " + ndfd_var + " data on " + datetime_ymdh_str)
- logger.info("tidied " + ndfd_var + " data on " + datetime_ymdh_str)
- return var_data_pd, datetime_ymdh_str
-
- # not all subperiods are available for this analysis so don't run
- else:
- # empty dataframe
- var_data_pd = pandas.DataFrame()
-
- # print status
- # print("desired subperiods for " + ndfd_var + " data on " + datetime_ymdh_str + " are not available")
- logger.info("desired subperiods for " + ndfd_var + " data on " + datetime_ymdh_str + " are not available")
- return var_data_pd, datetime_ymdh_str
-
- # if number of dimensions is more than 3 i.e. when they are: (reftime, time, y, x)
- else:
- # empty dataframe
- var_data_pd = pandas.DataFrame()
-
- # print status
- # print("desired data dimensions for " + ndfd_var + " data on " + datetime_ymdh_str + " are not available")
- logger.info("desired data dimensions for " + ndfd_var + " data on " + datetime_ymdh_str + " are not available")
- return var_data_pd, datetime_ymdh_str
-
-
- # if requesting pop12 data
- elif ((ndfd_var == "pop12") and (pop12_var_check == True)):
- # save variable data
- var_data = ndfd_data[pop12_var_col_name] # pop12
-
- # save variable dimentions
- var_data_dims = var_data.dimensions # get all dimentions
-
- # check number of dimensions and find 'time' dimensions
- # when there are more than three (i.e., when 'refime' dimension exisits) there's
- # no available list of pop12 and qpf for 24, 36, etc. hours out (which i need)
- # so skip entries with 4 dimensions
- if (len(var_data_dims) == 3): # when dimensions are (time, y, x)
- var_data_time_dim = var_data_dims[0] # get time dimention
-
- # save list of variable time dimentions
- var_time_np = numpy.array(var_data[var_data_time_dim][:])
- # we want 24 hr (1-day), 48 hr (2-day), and 72 hr (3-day) data
-
- # select subperiods
- var_times_sel = numpy.array([12., 24., 36., 48., 60., 72.])
-
- # check that subperiods are available
- var_comparison = numpy.intersect1d(var_time_np, var_times_sel) # has to be 6 long
-
- # all subperiods are available
- if(len(var_comparison) == 6):
- # get subperiod values
- var_24hr_vals = var_times_sel[0:2]
- var_48hr_vals = var_times_sel[2:4]
- var_72hr_vals = var_times_sel[4:6]
-
- # get index for pulling data
- var_24hr_index = numpy.where(numpy.isin(var_times_sel, var_24hr_vals))[0] # 1-day forecast
- var_48hr_index = numpy.where(numpy.isin(var_times_sel, var_48hr_vals))[0] # 2-day forecast
- var_72hr_index = numpy.where(numpy.isin(var_times_sel, var_72hr_vals))[0] # 3-day forecast
-
- # aggregate qpf data
- var_24hr_pd_raw = aggregate_sco_ndfd_var_data(var_data, var_24hr_index, var_24hr_vals, ndfd_var)
- var_48hr_pd_raw = aggregate_sco_ndfd_var_data(var_data, var_48hr_index, var_48hr_vals, ndfd_var)
- var_72hr_pd_raw = aggregate_sco_ndfd_var_data(var_data, var_72hr_index, var_72hr_vals, ndfd_var)
-
- # add valid period column
- var_24hr_pd_raw['valid_period_hrs'] = numpy.repeat("24", len(var_24hr_pd_raw), axis=0)
- var_48hr_pd_raw['valid_period_hrs'] = numpy.repeat("48", len(var_48hr_pd_raw), axis=0)
- var_72hr_pd_raw['valid_period_hrs'] = numpy.repeat("72", len(var_72hr_pd_raw), axis=0)
-
- # merge rows of data frames
- # var_data_pd_raw = var_24hr_pd_raw.append([var_48hr_pd_raw, var_72hr_pd_raw]).reset_index()
- var_data_pd_raw = pandas.concat([var_24hr_pd_raw, var_48hr_pd_raw, var_72hr_pd_raw]).reset_index()
-
- # rename columns
- var_data_pd = var_data_pd_raw.rename(columns={"level_0": "y_index", "level_1": "x_index", "pop12_value_perc": "pop12_value_perc"})
-
- # save x and y data
- x_data = ndfd_data['x'][:] # x coordinate
- y_data = ndfd_data['y'][:] # y coordinate
-
- # create latitude and longitude columns
- longitude = []
- latitude = []
- for row in range(0, var_data_pd.shape[0]):
- x_index_val = var_data_pd['x_index'][row]
- y_index_val = var_data_pd['y_index'][row]
- longitude.append(x_data.data[x_index_val]) # x is longitude
- latitude.append(y_data.data[y_index_val]) # y is latitude
-
- # add longitude and latitude to data frame
- var_data_pd['longitude_km'] = longitude
- var_data_pd['latitude_km'] = latitude
-
- # create and wrangle time columns
- # server time is in UCT but changing it to something that's local for NC (use NYC timezone)
- var_data_pd['time'] = pandas.to_datetime(numpy.repeat(datetime_uct_str, len(var_data_pd), axis=0), format = "%Y-%m-%d %H:%M")
- var_data_pd['time_uct_long'] = var_data_pd.time.dt.tz_localize(tz = 'UCT')
- var_data_pd['time_uct'] = var_data_pd.time_uct_long.dt.strftime("%Y-%m-%d %H:%M")
- var_data_pd['time_nyc_long'] = var_data_pd.time_uct_long.dt.tz_convert(tz = 'America/New_York')
- var_data_pd['time_nyc'] = var_data_pd.time_nyc_long.dt.strftime("%Y-%m-%d %H:%M")
-
- # print status
- # print("tidied " + ndfd_var + " data on " + datetime_ymdh_str)
- logger.info("tidied " + ndfd_var + " data on " + datetime_ymdh_str)
- return var_data_pd, datetime_ymdh_str
-
- # not all subperiods are available for this analysis so don't run
- else:
- # empty dataframe
- var_data_pd = pandas.DataFrame()
-
- # print("desired subperiods for " + ndfd_var + " data on " + datetime_ymdh_str + " are not available")
- logger.info("desired subperiods for " + ndfd_var + " data on " + datetime_ymdh_str + " are not available")
- return var_data_pd, datetime_ymdh_str
-
- # if number of dimensions is more than 3 i.e. when they are: (reftime, time, y, x)
- else:
- # empty dataframe
- var_data_pd = pandas.DataFrame()
-
- # print("desired times for " + ndfd_var + " data on " + datetime_ymdh_str + " are not available")
- logger.info("desired times for " + ndfd_var + " data on " + datetime_ymdh_str + " are not available")
- return var_data_pd, datetime_ymdh_str
-
-
- # if qpf or pop12 are wanted to but not available
- elif(((ndfd_var == "qpf") and (qpf_var_check == False)) or ((ndfd_var == "pop12") and (pop12_var_check == False))):
- # empty dataframe
- var_data_pd = pandas.DataFrame()
-
- # print("desired vars for " + ndfd_var + " data on " + datetime_ymdh_str + " are not available")
- logger.info("desired vars for " + ndfd_var + " data on " + datetime_ymdh_str + " are not available")
- return var_data_pd, datetime_ymdh_str
-
-
- # if requesting something other than qpf or pop12 data
- else:
- logger.info("Not a valid ndfd_var option.")
- return print("Not a valid ndfd_var option.")
-
-
- # if data doesn't exist
- else:
- # print("data on " + datetime_ymdh_str + " are not available")
- logger.info("data on " + datetime_ymdh_str + " are not available")
- # return empty dataframe
- var_data_pd = pandas.DataFrame()
-
- return var_data_pd, datetime_ymdh_str
diff --git a/analysis/src/procs/gcp_update_mysqldb.py b/analysis/src/procs/gcp_update_mysqldb.py
deleted file mode 100644
index 889a2dc..0000000
--- a/analysis/src/procs/gcp_update_mysqldb.py
+++ /dev/null
@@ -1,129 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-# ---- script header ----
-script name: gcp_update_mysqldb_script.py
-purpose of script: This script updates the ShellCast MySQL database. Specifically it updates
-the sga_min_max table, the ncdmf_leases table, and the closure_probabilities table.
-email: ssaia@ncsu.edu
-date created: 20200716
-date updated: 20220714 (mshukun@ncsu.edu)
-
-
-# ---- notes ----
-notes:
-
-help:
-pymysql help: https://github.com/PyMySQL/PyMySQL
-pymysql docs: https://pymysql.readthedocs.io/en/latest/
-
-"""
-import os
-import pandas as pd
-
-import logging
-import sys
-from .functions import make_lease_sql_query
-from analysis.src.utils.utils import Logs
-# sys.path.append(os.path.join(os.path.dirname(__file__), '../src'))
-# from config import Config, Settings, DevConfig
-
-logger = logging.getLogger(__name__)
-
-# st = Settings()
-logs = Logs()
-
-# def update_leases_db(data, conn):
-# for row in data:
-# update_query = f'UPDATE leases SET grow_area_name={row["grow_area_name"]}, \
-# grow_area_desc={row["grow_area_desc"]}, \
-# cmu_name={row["cmu_name"]}, \
-# rainfall_thresh_in={row["rainfall_thresh_in"]}, \
-# latitude={row["latitude"]}, \
-# longitude={row["longitude"]} \
-# WHERE lease_id = row["lease_id"]'
-# conn.execute(update_query)
-
-
-def add_cmu_probabilities(cmu_data_path, conn):
- logger.info('Add CMU Probabilities to database.')
- trans = conn.begin()
- try:
- if os.path.exists(cmu_data_path):
- df = pd.read_csv(cmu_data_path, index_col=False)
- df.to_sql('cmu_probabilities', conn, if_exists='append', index=False)
- query_data = conn.execute('CALL SelectSmuProbsToday')
- trans.commit()
- if len(query_data) == len(df.index):
- # print('added cmu data to mysql db')
- logger.info(f'{len(query_data)} rows added to DB.')
- else:
- Exception('CMU Probabilities DB insert failed.')
- except Exception as e:
- trans.rollback()
- logs.error_log(logger, e)
- sys.exit()
-
-
-# def add_leases(lease_spatial_data_path, conn):
-# logger.info('Add Leases to database.')
-# trans = conn.begin()
-# try:
-# if os.path.exists(lease_spatial_data_path):
-# # Add only new data to db table
-# queryset = conn.execute('SELECT lease_id FROM leases')
-# lease_spatial_data = pd.read_csv(lease_spatial_data_path)
-#
-# if len(queryset) > 0:
-# df = pd.DataFrame(queryset)
-# ids = df['lease_id']
-# # df[df.index.isin(df1.index)]
-# data_in_db = df[df['lease_id'].isin(lease_spatial_data['lease_id'])].to_dict()
-# data_not_in_db = lease_spatial_data[
-# ~lease_spatial_data['lease_id'].isin(ids)].reset_index(drop=True)
-#
-# if data_not_in_db.shape[0] > 0:
-# # query = make_lease_sql_query(data_not_in_db)
-# logger.info(f'{len(df["lease_id"])} rows will be appended to database')
-# data_not_in_db.to_sql('leases', conn, if_exists='append', index=False)
-# # conn.execute(query)
-# trans.commit()
-# # print('added lease data to mysql db')
-# logger.info(f'New data insert: {data_not_in_db.shape[0]} rows')
-#
-# else:
-# # print('there were no new leases to add to the mysql db')
-# logger.info('there were no new leases to add to the mysql db')
-#
-# if data_in_db.shape[0] > 0:
-# update_leases_db(data_in_db, conn)
-# logger.info(f'Data update: {data_in_db.shape[0]}')
-# else:
-# logger.info('Data update: 0 rows')
-#
-# else:
-# # Add all data to db table.
-# lease_spatial_data.to_sql('leases', conn, if_exists='append', index=False)
-# # query = make_lease_sql_query(lease_spatial_data)
-# # conn.execute(query)
-# trans.commit()
-# # print('the mysql db was empty so all leases were added')
-# logger.info('the mysql db was empty so all leases were added')
-# except Exception as e:
-# trans.rollback()
-# logs.error_log(logger, e)
-# sys.exit()
-
-
-
-# if __name__ == '__main__':
-# DEV = True
-# print(Config.ANALYSIS_PATH)
-# cmu_data_path = os.path.join(Config.ANALYSIS_PATH, Config.CMU_DATA)
-# lease_spatial_data_path = os.path.join(Config.ANALYSIS_PATH, Config.LEASE_SPATIAL_DATA)
-#
-#
-#
-#
-# # add_cmu_probabilities(cmu_data_path, engine)
-# add_leases(lease_spatial_data_path, conn)
-
diff --git a/analysis/src/procs/models.py b/analysis/src/procs/models.py
deleted file mode 100644
index 14e49b6..0000000
--- a/analysis/src/procs/models.py
+++ /dev/null
@@ -1,38 +0,0 @@
-from sqlalchemy import (
- Column,
- String,
- Float
-)
-from sqlalchemy.ext.declarative import declarative_base
-
-Base = declarative_base()
-
-class Leases(Base):
- __tablename__ = 'Leases'
-
- lease_id = Column(String, primary_key=True)
- grow_area_name = Column(String, nullable=True)
- grow_area_desc = Column(String, nullable=True)
- cmu_name = Column(String, nullable=True)
- rainfall_thresh_in = Column(Float, nullable=True)
- latitude = Column(Float, nullable=True)
- longitude = Column(Float, nullable=True)
-
- def __init__(self, lease_id, grow_area_name, grow_area_desc, cmu_name, rainfall_thresh_in, latitude, longitude):
- self.lease_id = lease_id
- self.grow_area_name = grow_area_name
- self.grow_area_desc = grow_area_desc
- self.cmu_name = cmu_name
- self.rainfall_thresh_in = rainfall_thresh_in
- self.latitude = latitude
- self.longitude = longitude
-
- def ____repr__(self):
- return f''
diff --git a/analysis/src/procs/ndfd_get_forecast_data.py b/analysis/src/procs/ndfd_get_forecast_data.py
deleted file mode 100644
index eebef9d..0000000
--- a/analysis/src/procs/ndfd_get_forecast_data.py
+++ /dev/null
@@ -1,138 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-# ---- script header ----
-script name: ndfd_get_forecast_data_script.py
-purpose of script: This script grabs latest National Digital Forecast Dataset (NDFD) data from the NC State Climate Office (SCO) TDS server, reformats it, and stores it in a local directory.
-author: sheila saia
-email: ssaia@ncsu.edu
-date created: 20200427
-
-
-# ---- notes ----
-notes:
-ndfd catalog website: https://tds.climate.ncsu.edu/thredds/catalog/nws/ndfd/catalog.html
-
-help:
-pydap help: https://pydap.readthedocs.io/en/latest/developer_data_model.html
-thredds help (with python code): https://oceanobservatories.org/thredds-quick-start/#python
-to see the nc sco catalog website: https://tds.climate.ncsu.edu/thredds/catalog/nws/ndfd/catalog.html
-
-
-"""
-
-# %% to do list
-
-# TODO (wishlist) could try to run this using the xarray library
-
-
-import pandas # for data mgmt
-import datetime as dt # for datetime mgmt
-from .functions import append_list_as_row, get_sco_ndfd_data, tidy_sco_ndfd_data # see functions.py file
-import logging
-
-logger = logging.getLogger(__name__)
-
-
-def ndfd_sco_data_raw(tabular_output_path, ndfd_sco_server_url):
- """
-
- Args:
- tabular_output_path: "tabular/outputs/ndfd_sco_data/ndfd_sco_data_raw/"
- ndfd_sco_server_url: "https://tds.climate.ncsu.edu/thredds/dodsC/nws/ndfd/"
- """
- logger.info('ndfd_sco_data_raw')
- try:
- # hardcode current day at 7am UCT for now
- today = dt.date.today()
- today_str = today.strftime("%Y%m%d") + "07" # "2021013107"
- today_uct = pandas.to_datetime(dt.datetime.strptime(today_str, "%Y%m%d%H"))
- datetime_now_uct = today_uct.tz_localize(tz = "UCT")
-
- # round up to nearest hour in uct
- datetime_now_uct_td = dt.timedelta(hours = datetime_now_uct.hour, minutes = datetime_now_uct.minute, seconds=datetime_now_uct.second, microseconds = datetime_now_uct.microsecond)
- to_hour = dt.timedelta(hours=round(datetime_now_uct_td.total_seconds()/3600))
- datetime_now_round_uct = pandas.to_datetime((dt.datetime.combine(datetime_now_uct, dt.time(0)) + to_hour), format = "%Y-%m-%d %H:%M").tz_localize(tz = "UCT")
-
- # calc other bounds
- datetime_midnighttoday_uct = pandas.to_datetime((datetime_now_round_uct.strftime("%Y-%m-%d") + " 00:00")).tz_localize("UCT")
- datetime_noontoday_uct = pandas.to_datetime((datetime_now_round_uct.strftime("%Y-%m-%d") + " 12:00")).tz_localize("UCT")
- datetime_midnightnextd_uct = datetime_midnighttoday_uct + pandas.DateOffset(days = 1)
-
- # determine datetime string to use for query using bounds
- if (datetime_now_round_uct >= datetime_midnighttoday_uct) & (datetime_now_round_uct < datetime_noontoday_uct): # between midnight and noon
- temp_datetime_uct_str = datetime_midnighttoday_uct.strftime("%Y-%m-%d %H:%M")
- elif (datetime_now_round_uct >= datetime_noontoday_uct) & (datetime_now_round_uct < datetime_midnightnextd_uct): # between noon and midnight
- temp_datetime_uct_str = datetime_noontoday_uct.strftime("%Y-%m-%d %H:%M")
-
- # get data
- temp_data = get_sco_ndfd_data(base_server_url = ndfd_sco_server_url, datetime_uct_str = temp_datetime_uct_str)
-
- # only append data when it exists
- if (len(temp_data) > 0):
- # tidy qpf and pop12 data
- temp_qpf_data_pd, temp_qpf_datetime_ymdh_str = tidy_sco_ndfd_data(ndfd_data = temp_data, datetime_uct_str = temp_datetime_uct_str, ndfd_var = "qpf")
- temp_pop12_data_pd, temp_pop12_datetime_ymdh_str = tidy_sco_ndfd_data(ndfd_data = temp_data, datetime_uct_str = temp_datetime_uct_str, ndfd_var = "pop12")
-
- # check if desired times were available, only keep when we have both
- if ((len(temp_qpf_data_pd) > 0) and (len(temp_pop12_data_pd) > 0)):
-
- # define export path
- # temp_qpf_data_path = tabular_output_path + "qpf_" + temp_qpf_datetime_ymdh_str + ".csv" # includes date in file name
- # temp_pop12_data_path = tabular_output_path + "pop12_" + temp_pop12_datetime_ymdh_str + ".csv" # includes date in file name
- temp_qpf_data_path = tabular_output_path + "qpf.csv"
- temp_pop12_data_path = tabular_output_path + "pop12.csv"
-
-
- # export results
- temp_qpf_data_pd.to_csv(temp_qpf_data_path, index = False)
- temp_pop12_data_pd.to_csv(temp_pop12_data_path, index = False)
-
- # keep track of available data
- # temp_data_available_pd = pandas.DataFrame({'datetime_uct_str':[temp_datetime_uct_str], 'status':["available"]})
- # data_available_pd = data_available_pd.append(temp_data_available_pd, ignore_index = True)
- temp_data_log = [temp_datetime_uct_str, "available"]
-
- # export data availability (i.e., append new row to data_log.csv)
- # data_availability_path = tabular_output_path + "data_available_" + temp_datetime_ymdh_str + ".csv"
- # data_available_pd.to_csv(data_availability_path, index = False)
- data_log_path = tabular_output_path + "data_log.csv"
- append_list_as_row(data_log_path, temp_data_log)
-
- # print status
- # print("exported " + temp_datetime_uct_str + " data")
- logger.info("exported " + temp_datetime_uct_str + " data")
-
- else:
- # keep track of available data
- # temp_data_available_pd = pandas.DataFrame({'datetime_uct_str':[temp_datetime_uct_str], 'status':["not_available"]})
- # data_available_pd = data_available_pd.append(temp_data_available_pd, ignore_index = True)
- temp_data_log = [temp_datetime_uct_str, "not_available"]
-
- # export data availability (i.e., append new row to data_log.csv)
- # data_availability_path = tabular_output_path + "data_available_" + temp_datetime_ymdh_str + ".csv"
- # data_available_pd.to_csv(data_availability_path, index = False)
- data_log_path = tabular_output_path + "data_log.csv"
- append_list_as_row(data_log_path, temp_data_log)
-
- # print status
- # print("appended " + temp_datetime_uct_str + " data")
- logger.info("appended " + temp_datetime_uct_str + " data")
-
- else:
- # keep track of available data
- # temp_data_available_pd = pandas.DataFrame({'datetime_uct_str':[temp_datetime_uct_str], 'status':["not_available"]})
- # data_available_pd = data_available_pd.append(temp_data_available_pd, ignore_index = True)
- temp_data_log = [temp_datetime_uct_str, "not_available"]
-
- # export data availability (i.e., append new row to data_log.csv)
- # data_availability_path = tabular_output_path + "data_available_" + temp_datetime_ymdh_str + ".csv"
- # data_available_pd.to_csv(data_availability_path, index = False)
- data_log_path = tabular_output_path + "data_log.csv"
- append_list_as_row(data_log_path, temp_data_log)
-
- # print status
- # print("did not append " + temp_datetime_uct_str + " data")
- logger.info("did not append " + temp_datetime_uct_str + " data")
-
- except Exception:
- raise
\ No newline at end of file
diff --git a/analysis/src/procs/r_scripts/ndfd_analyze_forecast_data.R b/analysis/src/procs/r_scripts/ndfd_analyze_forecast_data.R
deleted file mode 100644
index 3336620..0000000
--- a/analysis/src/procs/r_scripts/ndfd_analyze_forecast_data.R
+++ /dev/null
@@ -1,326 +0,0 @@
-
-# ---- 3. use base paths and define projections ----
-# inputs
-# path to ndfd spatial inputs
-# ndfd_spatial_data_input_path <- paste0(data_base_path, "/spatial/outputs/ndfd_sco_data/")
-
-# path to sga buffer spatial inputs
-# sga_spatial_data_input_path <- paste0(data_base_path, "/spatial/inputs/ncdmf_data/sga_bounds/")
-
-# path to cmu bounds spatial inputs
-# cmu_spatial_data_input_path <- paste0(data_base_path, "/spatial/inputs/ncdmf_data/cmu_bounds/")
-
-# path to lease bounds spatial inputs
-# lease_spatial_data_input_path <- paste0(data_base_path, "/spatial/outputs/ncdmf_data/lease_centroids/")
-
-# path to rainfall threshold tabular inputs
-# rainfall_thresh_tabular_data_input_path <- paste0(data_base_path, "/tabular/inputs/ncdmf_rainfall_thresholds/")
-
-# outputs
-# path to ndfd spatial outputs
-# ndfd_spatial_data_output_path <- paste0(data_base_path, "/spatial/outputs/ndfd_sco_data/")
-
-# path to ndfd tabular outputs
-# ndfd_tabular_data_output_path <- paste0(data_base_path, "/tabular/outputs/ndfd_sco_data/")
-
-# path to ndfd tabular outputs appended
-# ndfd_tabular_data_appended_output_path <- paste0(data_base_path, "/tabular/outputs/ndfd_sco_data_appended/")
-
-
-ndfd_analyze_forecast_data <- function(ndfd_spatial_data_input_path, sga_spatial_data_input_path, cmu_spatial_data_input_path, lease_spatial_data_input_path, rainfall_thresh_tabular_data_input_path, ndfd_spatial_data_output_path, ndfd_tabular_data_output_path, ndfd_tabular_data_appended_output_path) {
-
- # ---- 1. install and load packages as necessary ----
- # packages
- packages <- c("tidyverse", "raster", "sf", "lubridate", "here")
-
- # install and load
- for (package in packages) {
- if (! package %in% installed.packages()) {
- install.packages(package, dependencies = TRUE)
- }
- library(package, character.only = TRUE)
- }
-
- # projections
- # define proj4 string for ndfd data
- ndfd_proj4 = "+proj=lcc +lat_1=25 +lat_2=25 +lat_0=25 +lon_0=-95 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"
- # source: https://spatialreference.org/ref/sr-org/6825/
-
- # define epsg and proj for CONUS Albers projection (projecting to this)
- conus_albers_epsg <- 5070
- conus_albers_proj <- "+init=EPSG:5070"
-
- # notification flag for testing or production versions
- notification_flag <- "production" # "testing" or "production"
- notification_dist_min <- 0 # for notification_flag <- "testing"
- notification_dist_max <- 100 # for notification_flag <- "testing"
- # notification_factor <- 3
-
-
- # ---- 4. load other data ----
- # raster data
- # latest pop12 ndfd data raster for 1-day, 2-day, and 3-day forecasts
- ndfd_pop12_raster_1day_nc_albers <- raster::raster(paste0(ndfd_spatial_data_input_path, "pop12_24hr_nc_albers.tif"))
- ndfd_pop12_raster_2day_nc_albers <- raster::raster(paste0(ndfd_spatial_data_input_path, "pop12_48hr_nc_albers.tif"))
- ndfd_pop12_raster_3day_nc_albers <- raster::raster(paste0(ndfd_spatial_data_input_path, "pop12_72hr_nc_albers.tif"))
-
- # check projection
- # crs(ndfd_pop12_raster_1day_nc_albers)
- # crs(ndfd_pop12_raster_2day_nc_albers)
- # crs(ndfd_pop12_raster_3day_nc_albers)
-
- # latest qpf ndfd data raster for 1-day, 2-day, and 3-day forecasts
- ndfd_qpf_raster_1day_nc_albers <- raster::raster(paste0(ndfd_spatial_data_input_path, "qpf_24hr_nc_albers.tif")) # includes date in file name
- ndfd_qpf_raster_2day_nc_albers <- raster::raster(paste0(ndfd_spatial_data_input_path, "qpf_48hr_nc_albers.tif")) # includes date in file name
- ndfd_qpf_raster_3day_nc_albers <- raster::raster(paste0(ndfd_spatial_data_input_path, "qpf_72hr_nc_albers.tif")) # includes date in file name
-
- # check projection
- # crs(ndfd_qpf_raster_1day_nc_albers)
- # crs(ndfd_qpf_raster_2day_nc_albers)
- # crs(ndfd_qpf_raster_3day_nc_albers)
-
- # spatial data
- # sga bounds buffered
- # sga_bounds_buffer_albers <- st_read(paste0(sga_spatial_data_input_path, "sga_bounds_10kmbuf_albers.shp")) %>% st_set_crs(crs = 5070)
- sga_bounds_buffer_albers <- st_read(paste0(sga_spatial_data_input_path, "sga_bounds_10kmbuf_albers.shp"))
-
- # sga data
- sga_bounds_simple_albers <- st_read(paste0(sga_spatial_data_input_path, "sga_bounds_simple_albers.shp"))
-
- # cmu bounds buffered
- # cmu_bounds_buffer_albers <- st_read(paste0(cmu_spatial_data_input_path, "cmu_bounds_10kmbuf_albers.shp")) %>% st_set_crs(crs = 5070)
- cmu_bounds_buffer_albers <- st_read(paste0(cmu_spatial_data_input_path, "cmu_bounds_10kmbuf_albers.shp"))
-
- # cmu bounds
- # cmu_bounds_albers <- st_read(paste0(cmu_spatial_data_input_path, "cmu_bounds_albers.shp")) %>% st_set_crs(crs = 5070)
- cmu_bounds_albers <- st_read(paste0(cmu_spatial_data_input_path, "cmu_bounds_albers.shp"))
-
- # lease centroids
- # lease_centroids_albers <- st_read(paste0(lease_spatial_data_input_path, "lease_centroids_albers.shp")) %>% st_set_crs(crs = 5070)
- lease_centroids_albers <- st_read(paste0(lease_spatial_data_input_path, "lease_centroids_albers.shp"))
-
- # all spatial data should have crs = 5070
- # check crs
- # st_crs(sga_bounds_buffer_albers)
- # st_crs(sga_bounds_simple_albers)
- # st_crs(cmu_bounds_buffer_albers)
- # st_crs(cmu_bounds_albers)
- # st_crs(lease_data_albers)
-
- # tabular data
- # rainfall thresholds
- rainfall_thresholds_raw_tidy <- read_csv(paste0(rainfall_thresh_tabular_data_input_path, "rainfall_thresholds_raw_tidy.csv"))
-
- # cmu sga key
- cmu_sga_key <- read_csv(paste0(rainfall_thresh_tabular_data_input_path, "cmu_sga_key.csv"))
-
- # ---- 5. crop sga or nc raster ndfd data to cmu bounds ----
- # 1-day pop12 for 1-day, 2-day, and 3-day forecasts
- ndfd_pop12_raster_1day_cmu_albers <- raster::mask(ndfd_pop12_raster_1day_nc_albers, mask = cmu_bounds_buffer_albers)
- ndfd_pop12_raster_2day_cmu_albers <- raster::mask(ndfd_pop12_raster_2day_nc_albers, mask = cmu_bounds_buffer_albers)
- ndfd_pop12_raster_3day_cmu_albers <- raster::mask(ndfd_pop12_raster_3day_nc_albers, mask = cmu_bounds_buffer_albers)
-
- # plot to check
- # plot(ndfd_pop12_raster_1day_cmu_albers)
- # plot(ndfd_pop12_raster_2day_cmu_albers)
- # plot(ndfd_pop12_raster_3day_cmu_albers)
-
- # 1-day qpf for 1-day, 2-day, and 3-day forecasts
- ndfd_qpf_raster_1day_cmu_albers <- raster::mask(ndfd_qpf_raster_1day_nc_albers, mask = cmu_bounds_buffer_albers)
- ndfd_qpf_raster_2day_cmu_albers <- raster::mask(ndfd_qpf_raster_2day_nc_albers, mask = cmu_bounds_buffer_albers)
- ndfd_qpf_raster_3day_cmu_albers <- raster::mask(ndfd_qpf_raster_3day_nc_albers, mask = cmu_bounds_buffer_albers)
-
- # plot to check
- # plot(ndfd_qpf_raster_1day_cmu_albers)
- # plot(ndfd_qpf_raster_2day_cmu_albers)
- # plot(ndfd_qpf_raster_3day_cmu_albers)
-
-
- # ---- 6. export cmu raster ndfd data ----
- # export pop12 rasters for 1-day, 2-day, and 3-day forecasts
- # writeRaster(ndfd_pop12_raster_1day_cmu_albers, paste0(ndfd_spatial_data_output_path, "pop12_", latest_ndfd_date_uct, "_24hr_cmu_albers.tif"), overwrite = TRUE)
- # writeRaster(ndfd_pop12_raster_2day_cmu_albers, paste0(ndfd_spatial_data_output_path, "pop12_", latest_ndfd_date_uct, "_48hr_cmu_albers.tif"), overwrite = TRUE)
- # writeRaster(ndfd_pop12_raster_3day_cmu_albers, paste0(ndfd_spatial_data_output_path, "pop12_", latest_ndfd_date_uct, "_78hr_cmu_albers.tif"), overwrite = TRUE)
-
- # export qpf rasters for 1-day, 2-day, and 3-day forecasts
- # writeRaster(ndfd_qpf_raster_1day_cmu_albers, paste0(ndfd_spatial_data_output_path, "qpf_", latest_ndfd_date_uct, "_24hr_cmu_albers.tif"), overwrite = TRUE)
- # writeRaster(ndfd_qpf_raster_2day_cmu_albers, paste0(ndfd_spatial_data_output_path, "qpf_", latest_ndfd_date_uct, "_48hr_cmu_albers.tif"), overwrite = TRUE)
- # writeRaster(ndfd_qpf_raster_3day_cmu_albers, paste0(ndfd_spatial_data_output_path, "qpf_", latest_ndfd_date_uct, "_72hr_cmu_albers.tif"), overwrite = TRUE)
-
-
- # ---- 7. area weighted ndfd cmu calcs ----
- # need to do this for pop12 and qpf and for 1-day, 2-day, and 3-day forecasts
- ndfd_cmu_calcs_data <- data.frame(row_num = as.numeric(),
- cmu_name = as.character(),
- rainfall_thresh_in = as.numeric(),
- datetime_uct = as.character(),
- month = as.numeric(),
- valid_period_hrs = as.numeric(),
- pop12_perc = as.numeric(),
- qpf_in = as.numeric())
- # prob_close_perc = as.numeric() # REMOVE FOR NEW ML WORKFLOW
-
- # valid period list
- valid_period_list <- c(24, 48, 72)
-
- # define date
- ndfd_date_uct <- lubridate::today(tzone = "UCT")
-
- # rasters lists
- pop12_cmu_raster_list <- c(ndfd_pop12_raster_1day_cmu_albers,
- ndfd_pop12_raster_2day_cmu_albers,
- ndfd_pop12_raster_3day_cmu_albers)
- qpf_cmu_raster_list <- c(ndfd_qpf_raster_1day_cmu_albers,
- ndfd_qpf_raster_2day_cmu_albers,
- ndfd_qpf_raster_3day_cmu_albers)
-
- # number of cmu's
- num_cmu <- length(cmu_bounds_albers$cmu_name)
-
- # row dimentions
- num_cmu_row <- length(valid_period_list) * num_cmu
-
- # set row number and start iterator
- cmu_row_num_list <- seq(1:num_cmu_row)
- cmu_row_num <- cmu_row_num_list[1]
-
- # record start time
- start_time <- now()
-
- # for loop
- # i denotes valid period (3 values), j denotes cmu_name
- for (i in 1:length(valid_period_list)) {
- for (j in 1:num_cmu) {
- # valid period
- temp_valid_period <- valid_period_list[i]
-
- # save raster
- temp_pop12_raster <- pop12_cmu_raster_list[i][[1]]
- temp_qpf_raster <- qpf_cmu_raster_list[i][[1]]
-
- # save raster resolution
- temp_pop12_raster_res <- raster::res(temp_pop12_raster)
- temp_qpf_raster_res <- raster::res(temp_qpf_raster)
-
- # save cmu name
- temp_cmu_name <- as.character(cmu_bounds_albers$cmu_name[j])
-
- # save cmu rainfall threshold value
- temp_cmu_rain_in <- as.numeric(cmu_bounds_albers$rain_in[j])
-
- # get cmu bounds vector
- temp_cmu_bounds <- cmu_bounds_albers %>%
- dplyr::filter(cmu_name == temp_cmu_name)
-
- # cmu bounds area
- temp_cmu_area <- as.numeric(st_area(temp_cmu_bounds)) # in m^2
-
- # get value and weight of each gridcell that overlaps the cmu
- temp_pop12_cmu_raster_perc_cover_df <- data.frame(raster::extract(temp_pop12_raster, temp_cmu_bounds, weights = TRUE)[[1]]) # getCover give percentage of the cover of the cmu boundary in the raster
- temp_qpf_cmu_raster_perc_cover_df <- data.frame(raster::extract(temp_qpf_raster, temp_cmu_bounds, weights = TRUE)[[1]]) # getCover give percentage of the cover of the cmu boundary in the raster
-
- # calculate area weighted avg value for the cmu
- temp_pop12_area_weighted_df <- temp_pop12_cmu_raster_perc_cover_df %>%
- dplyr::mutate(area_weighted_avg = value * weight)
- temp_qpf_area_weighted_df <- temp_qpf_cmu_raster_perc_cover_df %>%
- dplyr::mutate(area_weighted_avg = value * weight)
-
- # sum weighted values to get result
- temp_cmu_pop12_result <- round(sum(temp_pop12_area_weighted_df$area_weighted_avg), 2)
- temp_cmu_qpf_result <- round(sum(temp_qpf_area_weighted_df$area_weighted_avg), 2)
-
- # --- REMOVE FOR NEW ML WORKFLOW ---
- # calculate probability of closure
- # check if testing mode
- # if not testing mode calculate probability of closure as you would in production
- # if (notification_flag == "production") {
- #temp_cmu_prob_close_result <- round((temp_cmu_pop12_result * exp(-temp_cmu_rain_in / temp_cmu_qpf_result)), 1) # from equation 1 in proposal
- # }
-
- # if testing mode then more frequent approach to ensure more frequent notifications
- # else {
- # num_vals <- length(temp_cmu_qpf_result)
- # random_unif_vals <- round(runif(num_vals, min = notification_dist_min, max = notification_dist_max), 1) # random uniform distribution
- # temp_cmu_prob_close_result <- random_unif_vals
- # temp_cmu_prob_closure_result <- if_else(temp_cmu_prob_close_result * notification_factor > 100, 100, temp_cmu_prob_close_result * notification_factor) # to test notifications
- # }
-
- # save data
- temp_ndfd_cmu_calcs_data <- data.frame(row_num = cmu_row_num,
- cmu_name = temp_cmu_name,
- rainfall_thresh_in = temp_cmu_rain_in,
- datetime_uct = ndfd_date_uct,
- month = lubridate::month(ndfd_date_uct),
- valid_period_hrs = temp_valid_period,
- pop12_perc = temp_cmu_pop12_result,
- qpf_in = temp_cmu_qpf_result)
- # prob_close_perc = temp_cmu_prob_close_result) # REMOVE FOR NEW ML WORKFLOW
-
- # bind results
- ndfd_cmu_calcs_data <- rbind(ndfd_cmu_calcs_data, temp_ndfd_cmu_calcs_data)
-
- # next row
- print(paste0("finished row: ", cmu_row_num))
- cmu_row_num <- cmu_row_num + 1
- }
- }
-
- # print time now
- stop_time <- now()
-
- # time to run loop
- stop_time - start_time
- # Time difference of ~3 to 4 min
-
- # print date
- print(paste0(ndfd_date_uct, " spatial averaging complete"))
-
-
- # ---- 8. reformat cmu calcs for db ----
- # --- REMOVE FOR NEW ML WORKFLOW; USE IN LATER SCRIPT ---
- # cmu_name, prob_1d_perc, prob_2d_perc, prob_3d_perc
- # ndfd_cmu_calcs_data_spread <- ndfd_cmu_calcs_data %>%
- # dplyr::mutate(day = ymd(datetime_uct),
- # prob_close = round(prob_close_perc, 0)) %>%
- # dplyr::select(cmu_name, day, valid_period_hrs, prob_close) %>%
- # dplyr::mutate(valid_period = case_when(valid_period_hrs == 24 ~ "prob_1d_perc",
- # valid_period_hrs == 48 ~ "prob_2d_perc",
- # valid_period_hrs == 72 ~ "prob_3d_perc")) %>%
- # dplyr::select(-valid_period_hrs) %>%
- # tidyr::pivot_wider(id_cols = c(cmu_name, day),
- # names_from = valid_period,
- # values_from = prob_close,
- # values_fn = max) %>% # will take the max prob. closure value if there are multiple
- # dplyr::select(-day)
-
- # View(ndfd_cmu_calcs_data_spread)
-
-
- # ---- 9. export area weighted, spreaded ndfd cmu calcs ----
- # export area weighted averages for qpf, pop for each cmu
- # write_csv(ndfd_cmu_calcs_data_spread, paste0(ndfd_tabular_data_output_path, "cmu_calcs/ndfd_cmu_calcs.csv"))
- write_csv(ndfd_cmu_calcs_data, paste0(ndfd_tabular_data_output_path, "cmu_calcs/ndfd_cmu_calcs.csv"))
- # export data in 24h, 48h, and 72h subsets
- ndfd_cmu_calcs_data_24 <- ndfd_cmu_calcs_data %>% filter(valid_period_hrs == 24)
- ndfd_cmu_calcs_data_48 <- ndfd_cmu_calcs_data %>% filter(valid_period_hrs == 48)
- ndfd_cmu_calcs_data_72 <- ndfd_cmu_calcs_data %>% filter(valid_period_hrs == 72)
- write_csv(ndfd_cmu_calcs_data_24, paste0(ndfd_tabular_data_output_path, "cmu_calcs/ndfd_cmu_calcs_24h.csv"))
- write_csv(ndfd_cmu_calcs_data_48, paste0(ndfd_tabular_data_output_path, "cmu_calcs/ndfd_cmu_calcs_48h.csv"))
- write_csv(ndfd_cmu_calcs_data_72, paste0(ndfd_tabular_data_output_path, "cmu_calcs/ndfd_cmu_calcs_72h.csv"))
-
- print("finished analyzing forecast data")
-
-
- # ---- 10. append data for long-term analysis ----
- # --- REMOVE FOR NEW ML WORKFLOW; USE IN LATER SCRIPT ---
- # # reformat cmu data
- # ndfd_cmu_calcs_data_to_append <- ndfd_cmu_calcs_data %>%
- # dplyr::select(-row_num) %>%
- # dplyr::mutate(flag = rep(notification_flag, dim(ndfd_cmu_calcs_data)[1]))
- #
- # # append all three datasets
- # write_csv(ndfd_cmu_calcs_data_to_append, path = paste0(ndfd_tabular_data_appended_output_path, "ndfd_cmu_calcs_appended.csv"), append = TRUE)
- #
- # print("appended forecast data for long-term analysis")
-
-}
\ No newline at end of file
diff --git a/analysis/src/procs/r_scripts/ndfd_convert_df_to_raster.R b/analysis/src/procs/r_scripts/ndfd_convert_df_to_raster.R
deleted file mode 100644
index 9446e72..0000000
--- a/analysis/src/procs/r_scripts/ndfd_convert_df_to_raster.R
+++ /dev/null
@@ -1,307 +0,0 @@
-# ---- script header ----
-# script name: ndfd_convert_df_to_raster_script.R
-# purpose of script: converts latest raw ndfd dataframes to raster data for downstream forecast analysis
-# author: sheila saia
-# date created: 20200622
-# email: ssaia@ncsu.edu
-
-# path to ndfd tabular inputs
-# ndfd_tabular_data_input_path <- paste0(data_base_path, "/tabular/outputs/ndfd_sco_data/ndfd_sco_data_raw/")
-
-# path to nc buffer spatial inputs
-# nc_buffer_spatial_input_path <- paste0(data_base_path, "/spatial/inputs/state_bounds_data/state_bounds/")
-
-# outputs
-# path to ndfd spatial outputs
-# ndfd_spatial_data_output_path <- paste0(data_base_path, "/spatial/outputs/ndfd_sco_data/")
-
-
-ndfd_convert_df_to_raster <- function(ndfd_tabular_data_input_path, nc_buffer_spatial_input_path, ndfd_spatial_data_output_path, bounds_10kmbuf_albers_shapefile) {
- # ---- 1. install and load packages as necessary ----
- # packages
- packages <- c("tidyverse", "raster", "sf", "lubridate", "here")
-
- # install and load
- for (package in packages) {
- if (! package %in% installed.packages()) {
- install.packages(package, dependencies = TRUE)
- }
- library(package, character.only = TRUE)
- }
-
- # projections
- # define proj4 string for ndfd data
- ndfd_proj4 = "+proj=lcc +lat_1=25 +lat_2=25 +lat_0=25 +lon_0=-95 +x_0=0 +y_0=0 +a=6371000 +b=6371000 +units=m +no_defs"
- # source: https://spatialreference.org/ref/sr-org/6825/
-
- # define epsg and proj for CONUS Albers projection (projecting to this)
- conus_albers_epsg <- 5070
- conus_albers_proj <- "+init=EPSG:5070"
-
- # define wgs 84 projection
- # wgs84_epsg <- 4326
- # wgs84_proj4 <- "+proj=longlat +datum=WGS84 +no_defs"
-
-
- # ---- 4. pull latest ndfd file name (when there are dates in file name) ----
- # list files in ndfd_sco_data_raw
- # ndfd_files <- list.files(ndfd_tabular_data_input_path, pattern = "pop12_*") # if there is a pop12 dataset there's a qpf dataset
-
- # option 1: select based on minimum difference to current date, will always have result (but it might not be the most current)
- # grab dates
- # ndfd_file_dates <- lubridate::ymd(gsub("pop12_", "", gsub("00.csv", "", ndfd_files))) # assumes midnight
-
- # save todya's date
- # today_date_uct <- lubridate::today(tzone = "UCT")
-
- # calcualte difference
- # diff_ndfd_file_dates <- as.numeric(today_date_uct - ndfd_file_dates) # in days
-
- # find position of smallest difference
- # latest_ndfd_date_uct <- ndfd_file_dates[diff_ndfd_file_dates == min(diff_ndfd_file_dates)]
-
- # convert to string
- # latest_ndfd_date_uct_str <- strftime(latest_ndfd_date_uct, format = "%Y%m%d%H") # assumes midnight
-
- # option 2: will give an empty latest_ndfd_date_uct variable, if exact day is not available
- # grab dates
- # ndfd_file_dates <- gsub("pop12_", "", gsub("00.csv", "", ndfd_files))
-
- # save todya's date
- # today_date_uct <- lubridate::today(tzone = "UCT")
-
- # convert to string for later use
- # today_date_uct_str <- strftime(today_date_uct, format = "%Y%m%d%H")
-
- # check that date exists
- # date_check <- ndfd_file_dates[ndfd_file_dates == today_date_uct_str]
-
- # if statement that if length(date_check) < 1 then don't run this script
- # latest_ndfd_date_uct_str <- today_date_uct_str
-
-
- # ---- 5. load data ----
- # latest ndfd path strings
- # ndfd_latest_pop12_file_name <- paste0("pop12_", latest_ndfd_date_uct_str, ".csv") # includes date in file name
- # ndfd_latest_qpf_file_name <- paste0("qpf_", latest_ndfd_date_uct_str, ".csv") # includes date in file name
- ndfd_latest_pop12_file_name <- paste0("pop12.csv")
- ndfd_latest_qpf_file_name <- paste0("qpf.csv")
-
- # pop12 tabular data
- ndfd_pop12_data_raw <- read_csv(paste0(ndfd_tabular_data_input_path, ndfd_latest_pop12_file_name),
- col_types = list(col_double(), col_double(), col_double(), col_double(), col_double(), col_double(), col_double(),
- col_character(), col_character(), col_character(), col_character(), col_character()))
-
- # qpf tabular data
- ndfd_qpf_data_raw <- read_csv(paste0(ndfd_tabular_data_input_path, ndfd_latest_qpf_file_name),
- col_types = list(col_double(), col_double(), col_double(), col_double(), col_double(), col_double(), col_double(),
- col_character(), col_character(), col_character(), col_character(), col_character()))
- # nc buffer bounds vector
- nc_bounds_buffer_albers <- st_read(paste0(nc_buffer_spatial_input_path, bounds_10kmbuf_albers_shapefile))
- # st_crs(nc_bounds_buffer_albers) # crs = 5070, check!
-
-
- # ---- 6. wrangle ndfd tabular data ----
- # initial clean up pop12
- ndfd_pop12_data <- ndfd_pop12_data_raw %>%
- dplyr::select(x_index, y_index, latitude_km, longitude_km, time_uct, time_nyc, pop12_value_perc, valid_period_hrs) %>%
- dplyr::mutate(latitude_m = latitude_km * 1000,
- longitude_m = longitude_km * 1000)
-
- # initial clean up qpf
- ndfd_qpf_data <- ndfd_qpf_data_raw %>%
- dplyr::select(x_index, y_index, latitude_km, longitude_km, time_uct, time_nyc, qpf_value_kgperm2, valid_period_hrs) %>%
- dplyr::mutate(latitude_m = latitude_km * 1000,
- longitude_m = longitude_km * 1000,
- qpf_value_in = qpf_value_kgperm2 * (1/1000) * (100) * (1/2.54)) # convert to m (density of water is 1000 kg/m3) then cm then inches
-
-
- # ---- 7. convert tabular ndfd data to (vector) spatial data ----
- # pop12
- # convert pop12 to spatial data
- ndfd_pop12_albers <- st_as_sf(ndfd_pop12_data,
- coords = c("longitude_m", "latitude_m"),
- crs = ndfd_proj4,
- dim = "XY") %>%
- st_transform(crs = conus_albers_epsg)
-
- # check pop12 projection
- # st_crs(ndfd_pop12_albers)
- # look good!
-
- # pop12 periods available
- # unique(ndfd_pop12_albers$valid_period_hrs)
-
- # select 1-day pop12
- ndfd_pop12_albers_1day <- ndfd_pop12_albers %>%
- dplyr::filter(valid_period_hrs == 24)
-
- # select 2-day pop12
- ndfd_pop12_albers_2day <- ndfd_pop12_albers %>%
- dplyr::filter(valid_period_hrs == 48)
-
- # select 3-day pop12
- ndfd_pop12_albers_3day <- ndfd_pop12_albers %>%
- dplyr::filter(valid_period_hrs == 72)
-
- # qpf
- # convert qpf to spatial data
- ndfd_qpf_albers <- st_as_sf(ndfd_qpf_data,
- coords = c("longitude_m", "latitude_m"),
- crs = ndfd_proj4,
- dim = "XY") %>%
- st_transform(crs = conus_albers_epsg)
-
- # check qpf projection
- # st_crs(ndfd_qpf_albers)
- # look good!
-
- # qpf periods available
- # unique(ndfd_qpf_albers$valid_period_hrs)
-
- # select 1-day qpf
- ndfd_qpf_albers_1day <- ndfd_qpf_albers %>%
- dplyr::filter(valid_period_hrs == 24)
-
- # select 2-day qpf
- ndfd_qpf_albers_2day <- ndfd_qpf_albers %>%
- dplyr::filter(valid_period_hrs == 48)
-
- # select 3-day qpf
- ndfd_qpf_albers_3day <- ndfd_qpf_albers %>%
- dplyr::filter(valid_period_hrs == 72)
-
-
- # ---- 8. convert vector ndfd data to raster data ----
- # make empty pop12 raster for 1-day, 2-day, and 3-day forecasts
- ndfd_pop12_grid_1day <- raster(ncol = length(unique(ndfd_pop12_albers_1day$longitude_km)),
- nrows = length(unique(ndfd_pop12_albers_1day$latitude_km)),
- crs = conus_albers_proj,
- ext = extent(ndfd_pop12_albers_1day))
- ndfd_pop12_grid_2day <- raster(ncol = length(unique(ndfd_pop12_albers_2day$longitude_km)),
- nrows = length(unique(ndfd_pop12_albers_2day$latitude_km)),
- crs = conus_albers_proj,
- ext = extent(ndfd_pop12_albers_2day))
- ndfd_pop12_grid_3day <- raster(ncol = length(unique(ndfd_pop12_albers_3day$longitude_km)),
- nrows = length(unique(ndfd_pop12_albers_3day$latitude_km)),
- crs = conus_albers_proj,
- ext = extent(ndfd_pop12_albers_3day))
-
- # make empty qpf raster for 1-day, 2-day, and 3-day forecasts
- ndfd_qpf_grid_1day <- raster(ncol = length(unique(ndfd_qpf_albers_1day$longitude_km)),
- nrows = length(unique(ndfd_qpf_albers_1day$latitude_km)),
- crs = conus_albers_proj,
- ext = extent(ndfd_qpf_albers_1day))
- ndfd_qpf_grid_2day <- raster(ncol = length(unique(ndfd_qpf_albers_2day$longitude_km)),
- nrows = length(unique(ndfd_qpf_albers_2day$latitude_km)),
- crs = conus_albers_proj,
- ext = extent(ndfd_qpf_albers_2day))
- ndfd_qpf_grid_3day <- raster(ncol = length(unique(ndfd_qpf_albers_3day$longitude_km)),
- nrows = length(unique(ndfd_qpf_albers_3day$latitude_km)),
- crs = conus_albers_proj,
- ext = extent(ndfd_qpf_albers_3day))
-
- # rasterize pop12 for 1-day, 2-day, and 3-day forecasts
- ndfd_pop12_raster_1day_albers <- raster::rasterize(ndfd_pop12_albers_1day, ndfd_pop12_grid_1day, field = ndfd_pop12_albers_1day$pop12_value_perc, fun = mean)
- ndfd_pop12_raster_2day_albers <- raster::rasterize(ndfd_pop12_albers_2day, ndfd_pop12_grid_2day, field = ndfd_pop12_albers_2day$pop12_value_perc, fun = mean)
- ndfd_pop12_raster_3day_albers <- raster::rasterize(ndfd_pop12_albers_3day, ndfd_pop12_grid_3day, field = ndfd_pop12_albers_3day$pop12_value_perc, fun = mean)
- # crs(ndfd_pop12_grid_1day_albers)
-
- # rasterize qpf for 1-day, 2-day, and 3-day forecasts
- ndfd_qpf_raster_1day_albers <- raster::rasterize(ndfd_qpf_albers_1day, ndfd_qpf_grid_1day, field = ndfd_qpf_albers_1day$qpf_value_in, fun = mean)
- ndfd_qpf_raster_2day_albers <- raster::rasterize(ndfd_qpf_albers_2day, ndfd_qpf_grid_2day, field = ndfd_qpf_albers_2day$qpf_value_in, fun = mean)
- ndfd_qpf_raster_3day_albers <- raster::rasterize(ndfd_qpf_albers_3day, ndfd_qpf_grid_3day, field = ndfd_qpf_albers_3day$qpf_value_in, fun = mean)
- # crs(ndfd_qpf_grid_1day_albers)
-
- # plot to check
- # plot(ndfd_pop12_raster_1day_albers)
- # plot(ndfd_qpf_raster_1day_albers)
- # plot(ndfd_pop12_raster_2day_albers)
- # plot(ndfd_qpf_raster_2day_albers)
- # plot(ndfd_pop12_raster_3day_albers)
- # plot(ndfd_qpf_raster_3day_albers)
-
-
- # ---- 9. crop midatlantic raster ndfd data to nc bounds ----
- # pop12 for 1-day, 2-day, and 3-day forecasts
- ndfd_pop12_raster_1day_nc_albers <- raster::crop(ndfd_pop12_raster_1day_albers, nc_bounds_buffer_albers)
- ndfd_pop12_raster_2day_nc_albers <- raster::crop(ndfd_pop12_raster_2day_albers, nc_bounds_buffer_albers)
- ndfd_pop12_raster_3day_nc_albers <- raster::crop(ndfd_pop12_raster_3day_albers, nc_bounds_buffer_albers)
-
- # qpf for 1-day, 2-day, and 3-day forecasts
- ndfd_qpf_raster_1day_nc_albers <- raster::crop(ndfd_qpf_raster_1day_albers, nc_bounds_buffer_albers)
- ndfd_qpf_raster_2day_nc_albers <- raster::crop(ndfd_qpf_raster_2day_albers, nc_bounds_buffer_albers)
- ndfd_qpf_raster_3day_nc_albers <- raster::crop(ndfd_qpf_raster_3day_albers, nc_bounds_buffer_albers)
-
- # plot to check
- # plot(nc_bounds_buffer_albers)
- # plot(ndfd_pop12_raster_1day_nc_albers)
- # plot(ndfd_qpf_raster_1day_nc_albers)
- # plot(ndfd_pop12_raster_2day_nc_albers)
- # plot(ndfd_qpf_raster_2day_nc_albers)
- # plot(ndfd_pop12_raster_3day_nc_albers)
- # plot(ndfd_qpf_raster_3day_nc_albers)
-
- # project pop12 to wgs84 toofor 1-day, 2-day, and 3-day forecasts
- # ndfd_pop12_raster_1day_nc_wgs84 <- projectRaster(ndfd_pop12_raster_1day_nc_albers, crs = wgs84_proj4)
- # ndfd_pop12_raster_2day_nc_wgs84 <- projectRaster(ndfd_pop12_raster_2day_nc_albers, crs = wgs84_proj4)
- # ndfd_pop12_raster_3day_nc_wgs84 <- projectRaster(ndfd_pop12_raster_3day_nc_albers, crs = wgs84_proj4)
-
- # project qpf to wgs84 too for 1-day, 2-day, and 3-day forecasts
- # ndfd_qpf_raster_1day_nc_wgs84 <- projectRaster(ndfd_qpf_raster_1day_nc_albers, crs = wgs84_proj4)
- # ndfd_qpf_raster_2day_nc_wgs84 <- projectRaster(ndfd_qpf_raster_2day_nc_albers, crs = wgs84_proj4)
- # ndfd_qpf_raster_3day_nc_wgs84 <- projectRaster(ndfd_qpf_raster_3day_nc_albers, crs = wgs84_proj4)
-
- # plot to check
- # plot(ndfd_pop12_raster_1day_nc_wgs84)
- # plot(ndfd_qpf_raster_1day_nc_wgs84)
- # plot(ndfd_pop12_raster_2day_nc_wgs84)
- # plot(ndfd_qpf_raster_2day_nc_wgs84)
- # plot(ndfd_pop12_raster_3day_nc_wgs84)
- # plot(ndfd_qpf_raster_3day_nc_wgs84)
-
- # ---- 10. export nc raster ndfd data (without date) ----
- # export pop12 rasters for 1-day, 2-day, and 3-day forecasts
- writeRaster(ndfd_pop12_raster_1day_nc_albers, paste0(ndfd_spatial_data_output_path, "pop12_24hr_nc_albers.tif"), overwrite = TRUE)
- writeRaster(ndfd_pop12_raster_2day_nc_albers, paste0(ndfd_spatial_data_output_path, "pop12_48hr_nc_albers.tif"), overwrite = TRUE)
- writeRaster(ndfd_pop12_raster_3day_nc_albers, paste0(ndfd_spatial_data_output_path, "pop12_72hr_nc_albers.tif"), overwrite = TRUE)
-
- # export qpf rasters for 1-day, 2-day, and 3-day forecasts
- writeRaster(ndfd_qpf_raster_1day_nc_albers, paste0(ndfd_spatial_data_output_path, "qpf_24hr_nc_albers.tif"), overwrite = TRUE)
- writeRaster(ndfd_qpf_raster_2day_nc_albers, paste0(ndfd_spatial_data_output_path, "qpf_48hr_nc_albers.tif"), overwrite = TRUE)
- writeRaster(ndfd_qpf_raster_3day_nc_albers, paste0(ndfd_spatial_data_output_path, "qpf_72hr_nc_albers.tif"), overwrite = TRUE)
-
- # export pop12 rasters as wgs84 too for 1-day, 2-day, and 3-day forecasts
- # writeRaster(ndfd_pop12_raster_1day_nc_wgs84, paste0(ndfd_spatial_data_output_path, "pop12_", latest_ndfd_date_uct_str, "_24hr_nc_wgs84.tif"), overwrite = TRUE)
- # writeRaster(ndfd_pop12_raster_2day_nc_wgs84, paste0(ndfd_spatial_data_output_path, "pop12_", latest_ndfd_date_uct_str, "_48hr_nc_wgs84.tif"), overwrite = TRUE)
- # writeRaster(ndfd_pop12_raster_3day_nc_wgs84, paste0(ndfd_spatial_data_output_path, "pop12_", latest_ndfd_date_uct_str, "_72hr_nc_wgs84.tif"), overwrite = TRUE)
-
- # export qpf rasters as wgs84 too for 1-day, 2-day, and 3-day forecasts
- # writeRaster(ndfd_qpf_raster_1day_nc_wgs84, paste0(ndfd_spatial_data_output_path, "qpf_", latest_ndfd_date_uct_str, "_24hr_nc_wgs84.tif"), overwrite = TRUE)
- # writeRaster(ndfd_qpf_raster_2day_nc_wgs84, paste0(ndfd_spatial_data_output_path, "qpf_", latest_ndfd_date_uct_str, "_48hr_nc_wgs84.tif"), overwrite = TRUE)
- # writeRaster(ndfd_qpf_raster_3day_nc_wgs84, paste0(ndfd_spatial_data_output_path, "qpf_", latest_ndfd_date_uct_str, "_72hr_nc_wgs84.tif"), overwrite = TRUE)
-
-
- # ---- 11. export nc raster ndfd data (with date) ----
- # export pop12 rasters for 1-day, 2-day, and 3-day forecasts
- # writeRaster(ndfd_pop12_raster_1day_nc_albers, paste0(ndfd_spatial_data_output_path, "pop12_", latest_ndfd_date_uct_str, "_24hr_nc_albers.tif"), overwrite = TRUE)
- # writeRaster(ndfd_pop12_raster_2day_nc_albers, paste0(ndfd_spatial_data_output_path, "pop12_", latest_ndfd_date_uct_str, "_48hr_nc_albers.tif"), overwrite = TRUE)
- # writeRaster(ndfd_pop12_raster_3day_nc_albers, paste0(ndfd_spatial_data_output_path, "pop12_", latest_ndfd_date_uct_str, "_72hr_nc_albers.tif"), overwrite = TRUE)
-
- # export qpf rasters for 1-day, 2-day, and 3-day forecasts
- # writeRaster(ndfd_qpf_raster_1day_nc_albers, paste0(ndfd_spatial_data_output_path, "qpf_", latest_ndfd_date_uct_str, "_24hr_nc_albers.tif"), overwrite = TRUE)
- # writeRaster(ndfd_qpf_raster_2day_nc_albers, paste0(ndfd_spatial_data_output_path, "qpf_", latest_ndfd_date_uct_str, "_48hr_nc_albers.tif"), overwrite = TRUE)
- # writeRaster(ndfd_qpf_raster_3day_nc_albers, paste0(ndfd_spatial_data_output_path, "qpf_", latest_ndfd_date_uct_str, "_72hr_nc_albers.tif"), overwrite = TRUE)
-
- # export pop12 rasters as wgs84 too for 1-day, 2-day, and 3-day forecasts
- # writeRaster(ndfd_pop12_raster_1day_nc_wgs84, paste0(ndfd_spatial_data_output_path, "pop12_", latest_ndfd_date_uct_str, "_24hr_nc_wgs84.tif"), overwrite = TRUE)
- # writeRaster(ndfd_pop12_raster_2day_nc_wgs84, paste0(ndfd_spatial_data_output_path, "pop12_", latest_ndfd_date_uct_str, "_48hr_nc_wgs84.tif"), overwrite = TRUE)
- # writeRaster(ndfd_pop12_raster_3day_nc_wgs84, paste0(ndfd_spatial_data_output_path, "pop12_", latest_ndfd_date_uct_str, "_72hr_nc_wgs84.tif"), overwrite = TRUE)
-
- # export qpf rasters as wgs84 too for 1-day, 2-day, and 3-day forecasts
- # writeRaster(ndfd_qpf_raster_1day_nc_wgs84, paste0(ndfd_spatial_data_output_path, "qpf_", latest_ndfd_date_uct_str, "_24hr_nc_wgs84.tif"), overwrite = TRUE)
- # writeRaster(ndfd_qpf_raster_2day_nc_wgs84, paste0(ndfd_spatial_data_output_path, "qpf_", latest_ndfd_date_uct_str, "_48hr_nc_wgs84.tif"), overwrite = TRUE)
- # writeRaster(ndfd_qpf_raster_3day_nc_wgs84, paste0(ndfd_spatial_data_output_path, "qpf_", latest_ndfd_date_uct_str, "_72hr_nc_wgs84.tif"), overwrite = TRUE)
-
- print("finished converting df to raster")
-}
diff --git a/analysis/src/procs/rf_model_precip.py b/analysis/src/procs/rf_model_precip.py
deleted file mode 100644
index 958d9f0..0000000
--- a/analysis/src/procs/rf_model_precip.py
+++ /dev/null
@@ -1,185 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-# ---- script header ----
-script name: rf_model_precip.py
-purpose of script: This script predicts the given precipitation in inches for the given input parameters and calculates the risk.
-email: ethedla@ncsu.edu
-date created: 20210609
-date updated: 20220715 (mshukun@ncsu.edu)
-
-# ---- notes ----
-notes:
-
-help:
-
-"""
-import pandas as pd
-import numpy as np
-import joblib
-import os
-import re
-import sys
-import logging
-from analysis.src.utils.utils import Logs
-# from config import Config, Settings
-
-
-logger = logging.getLogger(__name__)
-
-HOURS = ['24', '48', '72']
-CSV_FNAME_PREFIX = 'ndfd_cmu_calcs'
-FINAL_OUT_CSV_FNAME = 'ndfd_cmu_calcs_rf.csv'
-
-class RfModelPrecip:
- def __init__(self, ndfd_data_dir, rf_models_dir):
- self.logs = Logs()
- self.ndfd_data_dir = ndfd_data_dir
- self.rf_models_dir = rf_models_dir
-
- def convert_precip_risk(self, df, field_name):
- """
- Calculate the risk factor for the precipitation predicted.
- > 0.9 Very High 5
- > 0.75 High 4
- > 0.5 Moderate 3
- > 0.25 Low 2
- < 0.25 Very Low 1
- Args:
- df: dataframe
- """
- df[field_name] = np.where(df[field_name] >= (0.9*df['rainfall_thresh_in']), 5,
- np.where(df[field_name] >= (0.75*df['rainfall_thresh_in']), 4,
- np.where(df[field_name] >= (0.5*df['rainfall_thresh_in']), 3,
- np.where(df[field_name] >= (0.25*df['rainfall_thresh_in']), 2, 1))))
-
-
- def prediction(self, out_data_dir, in_csv_path, hours):
- """
- Perform analysis and outputs CSV file.
- Args:
- out_data_dir (str): Output file data directory.
- in_csv_path (str): Input CSV file full path (e.g. {path to}/ndfd_cmu_calcs{hours}.csv).
- hours (str): '24' or '48' or '72'
-
- Returns:
- str: Output CSV full path (e.g. {path to}/x24.csv)
- """
- try:
- columns = ['cmu_name', 'pop12_perc', 'qpf_in', 'rainfall_thresh_in', 'month']
- rf_model_path = os.path.join(self.rf_models_dir, f'joblib_RL{hours}_Model.pkl')
- out_csv_path = os.path.join(out_data_dir, f'x{hours}.csv')
- day = int(int(hours)/24)
- logger.info(f'\n----- Day {day} prediction -----')
- if os.path.exists(in_csv_path) and os.path.exists(out_data_dir):
- df = pd.read_csv(in_csv_path)
- dfx = df.loc[:, columns]
- dfx['cmu_num'] = dfx['cmu_name'].str[1:]
- dfx = dfx.drop(columns=['cmu_name'], axis=1)
- dfx = dfx.iloc[:, 0:5]
-
- joblib_hours_model = joblib.load(rf_model_path)
- # print('RF models loaded')
- logger.info('RF models loaded')
- y_pred = joblib_hours_model.predict(dfx)
-
- # Convert cmu_num to cmu_name
- dfx['cmu_name'] = dfx.apply(lambda row: 'U' + row.cmu_num, axis=1)
- dfx = dfx.drop(columns=['cmu_num'], axis=1)
- field_name = f'prob_{day}d_perc'
- dfx[field_name] = y_pred
- # print('Predicted the rainfall')
- logger.info('Predicted the rainfall')
- self.convert_precip_risk(dfx, field_name)
- # print('Converted to risk factor')
- logger.info('Converted to risk factor')
-
- dfx.to_csv(out_csv_path)
- logger.info(f'{os.path.basename(out_csv_path)} saved')
- return out_csv_path
-
- except Exception as e:
- self.logs.error_log(logger, e)
- sys.exit()
-
-
- def create_dataframe(self, csv_path):
- """
- Finds hours in file name using Regex and Creates DataFrame having columns ['cmu_name', prob_{day}d_perc']
- Args:
- csv_path (str): Input CSV file path
-
- Returns: DataFrame
- """
- fname = os.path.basename(csv_path)
- match_list = re.findall(r'\d+', fname)
- if len(match_list) > 0:
- if match_list[0] in HOURS:
- day = int(int(match_list[0])/24)
- df = pd.read_csv(csv_path, usecols=['cmu_name', f'prob_{day}d_perc'])
- return df
-
-
- def unique_dfs_row_count(self, dfs):
- """
- Creates a list of row counts in DataFrames and then finds unique value(s) in a list.
- Args:
- dfs (list): List of pandas.DataFrame objects.
-
- Returns:
- list: List of unique integer (DataFrame row counts). Successful result is one value in a list (e.g.[150]).
- """
- rows = []
- for df in dfs:
- rows.append(len(df.index))
- dups = list(set(rows))
- return dups
-
-
- def create_cmu_probability_csv(self, out_data_dir, out_csv_fname, csvs):
- """
- Merges prediction analysis CSV files (e.g. x24.csv, x48.csv, and x72.csv) and outputs merged CSV file.
- The merged CSV file contains 4 columns: ['cmu_name', 'prob_1d_perc', 'prob_2d_perc', 'prob_3d_perc'].
- Args:
- out_data_dir (str): Output file directory
- out_csv_fname (str): Example 'ndfd_cmu_calcs_rf.csv'
- csvs (list): Input CSV file full path list. For example:
- [, , ]
- """
- logger.info('Create CMU Probabilities CSV')
- try:
- if os.path.exists(out_data_dir):
- out_csv_path = os.path.join(out_data_dir, out_csv_fname)
- df1 = self.create_dataframe(csvs[0])
- df2 = self.create_dataframe(csvs[1])
- df3 = self.create_dataframe(csvs[2])
- dups = self.unique_dfs_row_count([df1, df2, df3])
- if len(dups) == 1:
- cdf = pd.concat(
- (idf.set_index('cmu_name') for idf in [df1, df2, df3]),
- axis=1, join='outer'
- )
- if len(cdf.index) == dups[0]:
- cdf.sort_index(key=lambda x: (x.to_series().str[1:].astype(int)), inplace=True)
- cdf.to_csv(out_csv_path, index=True)
- logger.info(f'{os.path.basename(out_csv_path)} saved.')
- else:
- raise Exception(f'Error: The cmu_names aren\'t consistent between x24.csv, x48.csv, and x72.csv files')
- else:
- raise Exception('Error: Row count numbers don\'t match. Check row counts of files x24.csv, x48.csv, and x72.csv.')
- except Exception as e:
- self.logs.error_log(logger, e)
- sys.exit()
-
- def main(self):
- csvs_to_concat = []
- # Create prediction CSV files for 24, 48, 72 hours.
- for hour in HOURS:
- ndfd_csv_fname = f'{CSV_FNAME_PREFIX}_{hour}h.csv'
- in_csv_path = os.path.join(self.ndfd_data_dir, ndfd_csv_fname)
- csv_fpath = self.prediction(self.ndfd_data_dir, in_csv_path, hour)
- csvs_to_concat.append(csv_fpath)
-
- # Merge prediction CSV files
- self.create_cmu_probability_csv(self.ndfd_data_dir, FINAL_OUT_CSV_FNAME, csvs_to_concat)
-
-
diff --git a/analysis/src/procs/shellcast.py b/analysis/src/procs/shellcast.py
deleted file mode 100644
index ab6f399..0000000
--- a/analysis/src/procs/shellcast.py
+++ /dev/null
@@ -1,116 +0,0 @@
-import os
-import logging
-import sys
-import rpy2.robjects as robjects
-from analysis.src.utils.utils import Logs
-from analysis.settings import ASSETS_DIR, SRC_DIR
-from analysis.src.procs.ndfd_get_forecast_data import ndfd_sco_data_raw
-from analysis.src.procs.rf_model_precip import RfModelPrecip
-
-logger = logging.getLogger(__file__)
-
-class ShellCast:
- def __init__(self, state_abbrev, config):
- self.log = Logs()
- self.config = config
-
- # R script file directory
- self.r_scripts_dir = os.path.join(SRC_DIR, 'procs', 'r_scripts')
-
- # Spatial data directories
- spatial = f'{state_abbrev.lower()}/data/spatial'
- tabular = f'{state_abbrev.lower()}/data/tabular'
- self.spatial_idata_dir = os.path.join(ASSETS_DIR, spatial, 'inputs')
- self.spatial_odata_dir = os.path.join(ASSETS_DIR, spatial, 'outputs')
-
- # Tabular data directories
- self.tabular_idata_dir = os.path.join(ASSETS_DIR, tabular, 'inputs')
- self.tabular_odata_dir = os.path.join(ASSETS_DIR, tabular, 'outputs')
-
- # RF models directory
- self.rf_model_dir = os.path.join(ASSETS_DIR, state_abbrev.lower(), 'RF_models')
-
- def run_ndfd_get_forecast_data(self):
- """
- Runs procs.ndfd_get_forecast_data.ndfd_sco_data_raw
- """
- logger.info('Run ndfd_get_forecast_data.py')
- try:
- ndfd_sco_data_raw_dir = os.path.join(self.tabular_odata_dir, 'ndfd_sco_data/ndfd_sco_data_raw/')
- url = self.config['NDFD_SCO_SERVER_URL']
- ndfd_sco_data_raw(ndfd_sco_data_raw_dir, url)
- logger.info('------ Success ------')
- except Exception as e:
- self.log.error_log(logger, e)
- sys.exit()
-
- def run_r_convert_df_to_raster(self):
- logger.info('Run ndfd_convert_df_to_raster_script.R')
- try:
- r_script_fpath = os.path.join(self.r_scripts_dir, 'ndfd_convert_df_to_raster.R')
- ndfd_sco_data_raw_dir = os.path.join(self.tabular_odata_dir, 'ndfd_sco_data/ndfd_sco_data_raw/')
- bounds_dir = os.path.join(self.spatial_idata_dir, 'state_bounds_data/state_bounds/')
- out_data_dir = os.path.join(self.spatial_odata_dir, 'ndfd_sco_data/')
- bounds_10kmbuf_albers_shapefile = self.config['BOUNDS_10KMBUF_ALBERS_SHAPEFILE']
-
- r = robjects.r
- r['source'](r_script_fpath)
- r_func = robjects.globalenv['ndfd_convert_df_to_raster']
-
- r_func(ndfd_sco_data_raw_dir, bounds_dir, out_data_dir, bounds_10kmbuf_albers_shapefile)
- # r_script_path = os.path.join(self.forecast_nc_dir, "ndfd_convert_df_to_raster_script.R")
- # cmd = f'Rscript {r_script_path}'
- # self.r.run_r_script(cmd, out_fdir, out_csv_fname)
- logger.info('------ Success ------')
- except Exception as e:
- self.log.error_log(logger, e)
- sys.exit()
-
- def run_r_analyze_forecast(self):
- try:
- logger.info('Run ndfd_analyze_forecast_data.R')
- # Variables
- r_script_fpath = os.path.join(self.r_scripts_dir, 'ndfd_analyze_forecast_data.R')
-
- ndfd_sp_in_dir = os.path.join(self.spatial_odata_dir, 'ndfd_sco_data/')
- buffer_in_dir = os.path.join(self.spatial_idata_dir, 'dmf_data/sga_bounds/')
- cmu_bounds_in_dir = os.path.join(self.spatial_idata_dir, 'dmf_data/cmu_bounds/')
- lease_bounds_in_dir = os.path.join(self.spatial_odata_dir, 'dmf_data/lease_centroids/')
- rainfall_in_dir = os.path.join(self.tabular_idata_dir, 'dmf_rainfall_thresholds/')
- ndfd_sp_out_dir = os.path.join(self.spatial_odata_dir, 'ndfd_sco_data/')
- ndfd_tb_out_dir = os.path.join(self.tabular_odata_dir, 'ndfd_sco_data/')
- ndfd_tb_out_append_dir = os.path.join(self.tabular_odata_dir, 'ndfd_sco_data_appended/')
-
- r = robjects.r
- r['source'](r_script_fpath)
- r_func = robjects.globalenv['ndfd_analyze_forecast_data']
-
- r_func(ndfd_sp_in_dir, buffer_in_dir, cmu_bounds_in_dir, lease_bounds_in_dir, rainfall_in_dir, ndfd_sp_out_dir, ndfd_tb_out_dir, ndfd_tb_out_append_dir)
- # cmd = f'Rscript {r_script_path}'
- # run_r_script(cmd, out_fdir, out_csv_fname)
-
- except Exception as e:
- self.log.error_log(logger, e)
- sys.exit()
-
- def run_rf_model(self):
- try:
- ndfd_data_dir = os.path.join(self.tabular_odata_dir, 'ndfd_sco_data/cmu_calcs/')
- rf = RfModelPrecip(ndfd_data_dir, self.rf_model_dir)
- rf.main()
- except Exception as e:
- self.log.error_log(logger, e)
- sys.exit()
-
- def main(self):
-
- logger.info('##### ShellCast Analysis Started #####')
- try:
- # self.run_ndfd_get_forecast_data()
- # self.run_r_convert_df_to_raster()
- # self.run_r_analyze_forecast()
- self.run_rf_model()
-
- logger.info('##### ShellCast Analysis Ended #####')
- except Exception as e:
- print(e)
\ No newline at end of file
diff --git a/analysis/src/tests/test_gcp_mysql.py b/analysis/src/tests/test_gcp_mysql.py
deleted file mode 100644
index 7c3f77a..0000000
--- a/analysis/src/tests/test_gcp_mysql.py
+++ /dev/null
@@ -1,45 +0,0 @@
-import unittest
-import os
-import configparser
-from sqlalchemy import create_engine
-from sqlalchemy.orm import sessionmaker
-import pandas as pd
-from analysis import Base, Leases
-from analysis.settings import ROOT, CONFIG_INI
-
-
-config = configparser.ConfigParser()
-config.read(os.path.join(CONFIG_INI))
-
-class TestLeasesDB(unittest.TestCase):
- leases_csv_path = os.path.join(ROOT, config['forecast.nc']['LEASES_CSV'])
- connect_string = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8mb4'.format(
- 'mshukun', 'ShellCast!tm3', '127.0.0.1', '3306', 'shellcast_nc')
- engine = create_engine(connect_string)
- Session = sessionmaker(bind=engine)
- session = Session()
-
- def setUp(self):
- # Base.metadata.create_all(self.engine)
- df = pd.read_csv(self.leases_csv_path, index_col=False)
- df = df.rename(columns={'ncdmf_lease_id': 'lease_id', 'cmu_name': 'cmu_name'})
- self.session.bulk_insert_mappings(Leases, df.to_dict('records'))
- self.session.commit()
-
- def tearDown(self):
- Base.metadata.drop_all(self.engine)
-
- def test_query(self):
- result = self.session.query(Leases).all()
- print(result)
-
-
-
-
-
-
-
-
-
-if __name__ == '__main__':
- unittest.main()
\ No newline at end of file
diff --git a/analysis/src/tests/test_utils.py b/analysis/src/tests/test_utils.py
deleted file mode 100644
index d706e00..0000000
--- a/analysis/src/tests/test_utils.py
+++ /dev/null
@@ -1,13 +0,0 @@
-import unittest
-from ..utils import utils
-
-class TestUtils(unittest.TestCase):
-
- def test_get_utc_datetime(self):
- result = utils.get_utc_datetime_now()
- print(result)
-
-
-
-if __name__ == '__main__':
- unittest.main()
\ No newline at end of file
diff --git a/analysis/src/utils/__init__.py b/analysis/src/utils/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/analysis/src/utils/utils.py b/analysis/src/utils/utils.py
deleted file mode 100644
index 9f0d66e..0000000
--- a/analysis/src/utils/utils.py
+++ /dev/null
@@ -1,126 +0,0 @@
-import os
-import logging
-import logging.config
-import yaml
-from analysis.settings import LOGS_DIR, LOG_CONFIG_YAML
-from datetime import datetime
-import pytz
-
-
-logger = logging.getLogger(__file__)
-
-def make_tz_aware_now(dt, tz='UTC', is_dst=None):
- """
- Add timezone information to a datetime object, only if it is naive.
- https://stackoverflow.com/questions/7065164/how-to-make-a-timezone-aware-datetime-object
- """
- tz = dt.tzinfo or tz
- try:
- tz = pytz.timezone(tz)
- except AttributeError:
- pass
- return tz.localize(dt, is_dst=is_dst)
-
-
-def format_datetime(dt, format):
- dt_str = dt.strftime(format)
- return datetime.strptime(dt_str, format)
-
-
-def get_utc_datetime_now():
- now = datetime.now()
- formatter = '%Y-%m-%d %H:%M:%S'
- now_str = now.strftime(formatter)
- now_micro_rounded = datetime.strptime(now_str, formatter)
- dt_utc = make_tz_aware_now(now_micro_rounded)
- return dt_utc
-
-def create_directory(file_dir):
- if not os.path.exists(file_dir):
- os.makedirs(file_dir)
-
-class Logs:
- @staticmethod
- def setup_logger():
- """
- Set logging system for LANDIVIZ PreProcTool.
- @param str log_file_name: Log file name
- """
- logging.info('Set up logger.')
- # logs_dir = os.path.join(ROOT_DIR, 'logs')
-
- if not os.path.exists(LOGS_DIR):
- os.makedirs(LOGS_DIR)
-
- with open(LOG_CONFIG_YAML, 'r') as stream:
- config = yaml.load(stream, Loader=yaml.FullLoader)
- logging.config.dictConfig(config)
- logging.captureWarnings(True)
-
- @staticmethod
- def error_log(logger, err):
- """
- Set error log format and write to a log file.
- @param logger logger: Logger object
- @param Exception err: Exception object
- """
- trace = []
- tb = err.__traceback__
- while tb is not None:
- path = os.path.normpath(tb.tb_frame.f_code.co_filename)
- path_last_two_level = '/'.join(path.split(os.sep)[-2:])
- trace.append({
- "filename": path_last_two_level,
- "name": tb.tb_frame.f_code.co_name,
- "line": tb.tb_lineno
- })
- tb = tb.tb_next
- last_trace = trace[-1]
- msg = f'{type(err).__name__}\t{last_trace["filename"]}:{last_trace["line"]}\n\t{str(err)}'
- logger.error(msg)
-
-
-
-
-
-# class Settings:
-# def setup_logger(self, log_file_name):
-# """
-# Set logging system for LANDIVIZ PreProcTool.
-# @param str log_file_name: Log file name
-# """
-# logging.info('Set up logger.')
-# app_path = Config.ANALYSIS_PATH
-# logs_dir = os.path.join(app_path, 'logs')
-# logging_yaml = os.path.join(app_path, 'src', 'logging', 'logging.yaml')
-# logs_file = os.path.join(logs_dir, log_file_name)
-#
-# if not os.path.exists(logs_dir):
-# os.makedirs(logs_dir)
-#
-# with open(logging_yaml, 'r') as stream:
-# config = yaml.load(stream, Loader=yaml.FullLoader)
-# config['handlers']['file_handler']['filename'] = logs_file
-# logging.config.dictConfig(config)
-# logging.captureWarnings(True)
-#
-# def error_log(self, logger, err):
-# """
-# Set error log format and write to a log file.
-# @param logger logger: Logger object
-# @param Exception err: Exception object
-# """
-# trace = []
-# tb = err.__traceback__
-# while tb is not None:
-# path = os.path.normpath(tb.tb_frame.f_code.co_filename)
-# path_last_two_level = '/'.join(path.split(os.sep)[-2:])
-# trace.append({
-# "filename": path_last_two_level,
-# "name": tb.tb_frame.f_code.co_name,
-# "line": tb.tb_lineno
-# })
-# tb = tb.tb_next
-# last_trace = trace[-1]
-# msg = f'{type(err).__name__}\t{last_trace["filename"]}:{last_trace["line"]}\n\t{str(err)}'
-# logger.error(msg)
\ No newline at end of file
diff --git a/docker-compose-template.yml b/docker-compose-template.yml
deleted file mode 100644
index 7a80c31..0000000
--- a/docker-compose-template.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-version: '3.8'
-services:
- analysis:
- container_name: shellcast
- build:
- context: .
- dockerfile: Dockerfile
- environment:
- - LD_LIBRARY_PATH=/usr/local/lib/R/lib:/usr/local/lib:/usr/lib/x86_64-linux-gnu:/usr/lib/jvm/java-11-openjdk-amd64/lib/server
- - PROJ_LIB=/usr/share/proj
- - GDAL_DATA=/usr/share/gdal
- volumes:
- - ./analysis:/analysis
- restart: always
-
- cloudsql-proxy:
- container_name: cloudsql-proxy
- image: gcr.io/cloudsql-docker/gce-proxy:1.31.0
- command: /cloud_sql_proxy -dir=/cloudsql -instances==tcp:0.0.0.0:3306 -credential_file=/secrets/cloudsql/credentials.json
- ports:
- - 3306:3306
- volumes:
- - ./credentials.json:/secrets/cloudsql/credentials.json
- restart: always
-
-# If you would like to test on local, comment "cloudsql-proxy" settings, and comment out "db" settings.
-# Don't forget change variables.
-# db:
-# image: mysql:5.7
-# restart: always
-# environment:
-# MYSQL_DATABASE: 'Your database'
-# # So you don't have to use root, but you can if you like
-# MYSQL_USER: 'username'
-# # You can use whatever password you like
-# MYSQL_PASSWORD: 'password'
-# # Password for root access
-# MYSQL_ROOT_PASSWORD: 'root password'
-# ports:
-# # : < MySQL Port running inside container>
-# - '3306:3306'
-# expose:
-# # Opens port 3306 on the container
-# - '3306'
-# # Where our data will be persisted
-# volumes:
-# - ./db_data:/var/lib/mysql
-
-
-
-
diff --git a/environment.yml b/environment.yml
new file mode 100644
index 0000000..05cfa80
--- /dev/null
+++ b/environment.yml
@@ -0,0 +1,18 @@
+name: shellcast_analysis
+channels:
+ - conda-forge
+ - defaults
+dependencies:
+ - python=3.7
+ - pip
+ - gdal
+ - rasterio
+ - pygrib
+ - configparser
+ - pandas
+ - geopandas
+ - PyMySQL
+ - SQLAlchemy
+ - rasterstats
+ - shapely
+ - yaml
\ No newline at end of file
diff --git a/install_packages.R b/install_packages.R
deleted file mode 100644
index 566f26c..0000000
--- a/install_packages.R
+++ /dev/null
@@ -1,8 +0,0 @@
-install.packages("sf", lib="/usr/local/lib/R/site-library")
-install.packages("geojsonsf", lib="/usr/local/lib/R/site-library")
-install.packages("raster", lib="/usr/local/lib/R/site-library")
-install.packages("rgdal", lib="/usr/local/lib/R/site-library")
-install.packages("tidyverse", lib="/usr/local/lib/R/site-library")
-install.packages("lubridate", lib="/usr/local/lib/R/site-library")
-install.packages("lwgeom", lib="/usr/local/lib/R/site-library")
-install.packages("here", lib="/usr/local/lib/R/site-library")
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
index 5cbaade..9a8d505 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,11 +1,11 @@
-requests==2.28.1
-numpy==1.22.4
-pandas==1.4.2
-Pydap==3.2.2
-SQLAlchemy==1.4.37
-PyMySQL==1.0.2
-joblib == 1.1.0
-sklearn == 0.0
-PyYAML == 6.0
-rpy2 == 3.5.4
-configparser == 5.3.0
\ No newline at end of file
+configparser >= 5.0.2
+pandas
+geopandas >= 0.9.0
+SQLAlchemy >= 1.4.7
+PyMySQL >= 1.0.2
+pygrib >= 2.1.4
+.\dependencies\GDAL-3.4.2-cp37-cp37m-win_amd64.whl
+.\dependencies\rasterio-1.2.10-cp37-cp37m-win_amd64.whl
+rasterstats >= 0.17.0
+shapely~=2.0.1
+
diff --git a/analysis/__init__.py b/shellcast-analysis/__init__.py
similarity index 100%
rename from analysis/__init__.py
rename to shellcast-analysis/__init__.py
diff --git a/shellcast-analysis/analysis_run.bat b/shellcast-analysis/analysis_run.bat
new file mode 100644
index 0000000..4676f15
--- /dev/null
+++ b/shellcast-analysis/analysis_run.bat
@@ -0,0 +1,22 @@
+@echo off
+set cwd=%~dp0
+pushd %cwd%
+echo %cd%
+
+:: Kill process if cloud-sql-proxy is running
+QPROCESS "cloud-sql-proxy.exe">NUL
+IF %ERRORLEVEL% EQU 0 taskkill /f /im cloud-sql-proxy.exe
+
+set nc_main=%cwd%main_pqpf_nc.py
+set sc_main=%cwd%main_pqpf_sc.py
+
+
+start cmd /k call sqlauthproxy.bat
+timeout /t 15
+call activate pqpf
+python %nc_main%
+python %sc_main%
+call conda deactivate
+timeout /t 15
+taskkill /f /im cloud-sql-proxy.exe
+taskkill /fi "WindowTitle eq sqlauthproxy*" /t /f
diff --git a/shellcast-analysis/config_template.ini b/shellcast-analysis/config_template.ini
new file mode 100644
index 0000000..2a17cf5
--- /dev/null
+++ b/shellcast-analysis/config_template.ini
@@ -0,0 +1,36 @@
+# ----- DATA CONFIGURATION -----
+# Use state abbreviations for the sections.
+[NC]
+DB_NAME = # Name of database
+CMU_SHP = # CMU centroid point shapefile name
+CMU_SHP_COL_CMU_NAME = # CMU name column name in "CMU_SHP"
+CMU_SHP_COL_RAIN_IN = # CMU rain threshold in inches column name in "CMU_SHP"
+LEASE_SHP = # Leases centroid point shapefile name
+LEASE_SHP_COL_LEASE_ID = # Lease ID column name in "LEASE_SHP"
+LEASE_SHP_COL_CMU_NAME = # CMU column name in "LEASE_SHP"
+LEASE_SHP_COL_RAIN_IN = # Rain threshold in inches column name in "LEASE_SHP"
+LON_WE = # See https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/small_grib.html (e.g. -79:-75)
+LAT_SN = # See https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/small_grib.html (e.g. 33:37)
+
+[SC]
+DB_NAME = # Name of database
+LEASE_SHP = # Leases boundary shapefile name
+LEASE_SHP_COL_LEASE_ID = # Lease ID column name in "LEASE_SHP"
+LEASE_SHP_COL_CMU_NAME = # CMU column name in "LEASE_SHP"
+THRESHOLD = # Rain threshold (e.g. 4)
+LON_WE = # See https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/small_grib.html (e.g. -81:-78)
+LAT_SN = # See https://www.cpc.ncep.noaa.gov/products/wesley/wgrib2/small_grib.html (e.g. 32:34)
+
+# ----- DATABASE CONNECTIONS -----
+# Use gpc.mysql for release version.
+[gcp.mysql]
+DB_USER = # DB username
+DB_PASS = # DB Password
+HOST = # Host address
+PORT = # Port number
+
+[Notification]
+EMAIL_SENDER = # Sender email address
+GMAIL_API_CREDENTIAL = # Gmail API credential (https://developers.google.com/gmail/api/quickstart/python)
+EMAIL_RECEIVER = # Receiver email address: separate by comma for multiple receivers (e.g. address1, address2)
+EMAIL_SUBJECT = # Email title
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.cpg b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.cpg
similarity index 100%
rename from analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/Conditional_Management_Units.cpg
rename to shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.cpg
diff --git a/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.dbf b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.dbf
new file mode 100644
index 0000000..fc7db25
Binary files /dev/null and b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.dbf differ
diff --git a/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.prj b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.prj
new file mode 100644
index 0000000..7e30fbe
--- /dev/null
+++ b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.prj
@@ -0,0 +1 @@
+PROJCS["Lambert_Conformal_Conic_2SP",GEOGCS["GCS_Coordinate_System_imported_from_GRIB_file",DATUM["D_unknown",SPHEROID["Sphere",6371200.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],PARAMETER["central_meridian",-95.0],PARAMETER["standard_parallel_1",25.0],PARAMETER["standard_parallel_2",25.0],PARAMETER["latitude_of_origin",25.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.sbn b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.sbn
new file mode 100644
index 0000000..295affe
Binary files /dev/null and b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.sbn differ
diff --git a/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.sbx b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.sbx
new file mode 100644
index 0000000..ff09a7d
Binary files /dev/null and b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.sbx differ
diff --git a/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.shp b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.shp
new file mode 100644
index 0000000..50b7100
Binary files /dev/null and b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.shp differ
diff --git a/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.shp.xml b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.shp.xml
new file mode 100644
index 0000000..ee5e16b
--- /dev/null
+++ b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.shp.xml
@@ -0,0 +1,2 @@
+
+20230322160503001.0FALSERepairGeometry cmu_bounds_albers DELETE_NULL OGCAddSpatialIndex cmu_bounds_albers 0 0 0UpdateSchema "CIMDATA=<CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.1.0'><WorkspaceConnectionString>DATABASE=D:\GitHub_Projects\shellcast_analysis\analysis\assets\nc1\data\spatial\inputs\dmf_data\cmu_bounds</WorkspaceConnectionString><WorkspaceFactory>Shapefile</WorkspaceFactory><Dataset>cmu_bounds_albers.shp</Dataset><DatasetType>esriDTFeatureClass</DatasetType></CIMStandardDataConnection>" <operationSequence><workflow><AddField><field_name>latitude</field_name><field_type>DOUBLE</field_type><field_is_nullable>False</field_is_nullable><field_is_required>False</field_is_required></AddField></workflow><workflow><AddField><field_name>longitude</field_name><field_type>DOUBLE</field_type><field_is_nullable>False</field_is_nullable><field_is_required>False</field_is_required></AddField></workflow></operationSequence>Project cmu_bounds_albers C:\Users\mshukun\Documents\ArcGIS\Projects\ShellCast\nc_data\outputs_shellcast\pqpf\nc\cmu_bounds_lambert PROJCS["Lambert_Conformal_Conic_2SP",GEOGCS["GCS_Coordinate_System_imported_from_GRIB_file",DATUM["D_unknown",SPHEROID["Sphere",6371200.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],PARAMETER["central_meridian",-95.0],PARAMETER["standard_parallel_1",25.0],PARAMETER["standard_parallel_2",25.0],PARAMETER["latitude_of_origin",25.0],UNIT["Meter",1.0]] # PROJCS["NAD_1983_Contiguous_USA_Albers",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Albers"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-96.0],PARAMETER["Standard_Parallel_1",29.5],PARAMETER["Standard_Parallel_2",45.5],PARAMETER["Latitude_Of_Origin",23.0],UNIT["Meter",1.0]] NO_PRESERVE_SHAPE # NO_VERTICALFeatureToPoint cmu_bounds_lambert C:\Users\mshukun\Documents\ArcGIS\Projects\ShellCast\nc_data\outputs_shellcast\pqpf\nc\cmu_bounds_lambert_pts.shp CENTROIDDeleteField cmu_bounds_lambert_pts latitude "Delete Fields"DeleteField cmu_bounds_lambert_pts longitude "Delete Fields"DeleteField cmu_bounds_lambert_pts ORIG_FID "Delete Fields"cmu_bounds_lambert_pts0020.000file://\\SUMMIT\C$\Users\mshukun\Documents\ArcGIS\Projects\ShellCast\nc_data\outputs_shellcast\pqpf\nc\cmu_bounds_lambert_pts.shpLocal Area NetworkProjectedGCS_Coordinate_System_imported_from_GRIB_fileLinear Unit: Meter (1.000000)Lambert_Conformal_Conic_2SP<ProjectedCoordinateSystem xsi:type='typens:ProjectedCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.1.0'><WKT>PROJCS["Lambert_Conformal_Conic_2SP",GEOGCS["GCS_Coordinate_System_imported_from_GRIB_file",DATUM["D_unknown",SPHEROID["Sphere",6371200.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],PARAMETER["central_meridian",-95.0],PARAMETER["standard_parallel_1",25.0],PARAMETER["standard_parallel_2",25.0],PARAMETER["latitude_of_origin",25.0],UNIT["Meter",1.0]]</WKT><XOrigin>-39891200</XOrigin><YOrigin>-27436600</YOrigin><XYScale>112897070.71661156</XYScale><ZOrigin>-100000</ZOrigin><ZScale>10000</ZScale><MOrigin>-100000</MOrigin><MScale>10000</MScale><XYTolerance>0.001</XYTolerance><ZTolerance>0.001</ZTolerance><MTolerance>0.001</MTolerance><HighPrecision>true</HighPrecision></ProjectedCoordinateSystem>20230322161325002023032216132500Microsoft Windows 10 Version 10.0 (Build 22000) ; Esri ArcGIS 13.1.0.41833cmu_bounds_lambert_ptsShapefile0.000dataset0SimpleFALSE0FALSEFALSEcmu_bounds_lambert_ptsFeature Class0FIDFIDOID400Internal feature number.EsriSequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.EsriCoordinates defining the features.cmu_namecmu_nameString8000rain_inrain_inDouble191815rain_labrain_labString8000latitudelatitudeDouble1900longitudelongitudeDouble1900ORIG_FIDORIG_FIDInteger1010020230322
diff --git a/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.shx b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.shx
new file mode 100644
index 0000000..fbf4825
Binary files /dev/null and b/shellcast-analysis/data/pqpf/nc/inputs/cmu_bounds_lambert_pts.shx differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.cpg b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.cpg
similarity index 100%
rename from analysis/assets/nc/data/spatial/inputs/dmf_data/cmu_bounds_raw/cmu_bounds_raw_valid_albers.cpg
rename to shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.cpg
diff --git a/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.dbf b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.dbf
new file mode 100644
index 0000000..53e0408
Binary files /dev/null and b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.dbf differ
diff --git a/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.prj b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.prj
new file mode 100644
index 0000000..7e30fbe
--- /dev/null
+++ b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.prj
@@ -0,0 +1 @@
+PROJCS["Lambert_Conformal_Conic_2SP",GEOGCS["GCS_Coordinate_System_imported_from_GRIB_file",DATUM["D_unknown",SPHEROID["Sphere",6371200.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],PARAMETER["central_meridian",-95.0],PARAMETER["standard_parallel_1",25.0],PARAMETER["standard_parallel_2",25.0],PARAMETER["latitude_of_origin",25.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.sbn b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.sbn
new file mode 100644
index 0000000..2777837
Binary files /dev/null and b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.sbn differ
diff --git a/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.sbx b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.sbx
new file mode 100644
index 0000000..2266415
Binary files /dev/null and b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.sbx differ
diff --git a/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.shp b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.shp
new file mode 100644
index 0000000..5f6a34e
Binary files /dev/null and b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.shp differ
diff --git a/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.shp.xml b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.shp.xml
new file mode 100644
index 0000000..0f973e4
--- /dev/null
+++ b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.shp.xml
@@ -0,0 +1,2 @@
+
+20230324190533001.0FALSEncdmf_leases_20220310_lambert_thresh0020.000file://\\SUMMIT\D$\CGAProjects\pqpf_shellcast\data\ncdmf_leases_20220310_lambert_thresh.shpLocal Area NetworkProjectedGCS_North_American_1983Linear Unit: Foot_US (0.304801)NAD_1983_StatePlane_North_Carolina_FIPS_3200_Feet<ProjectedCoordinateSystem xsi:type='typens:ProjectedCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.0.0'><WKT>PROJCS["NAD_1983_StatePlane_North_Carolina_FIPS_3200_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.002616666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Foot_US",0.3048006096012192],AUTHORITY["EPSG",2264]]</WKT><XOrigin>-121841900</XOrigin><YOrigin>-93659000</YOrigin><XYScale>36365718.124241434</XYScale><ZOrigin>-100000</ZOrigin><ZScale>10000</ZScale><MOrigin>-100000</MOrigin><MScale>10000</MScale><XYTolerance>0.0032808333333333331</XYTolerance><ZTolerance>0.001</ZTolerance><MTolerance>0.001</MTolerance><HighPrecision>true</HighPrecision><WKID>102719</WKID><LatestWKID>2264</LatestWKID></ProjectedCoordinateSystem>FeatureToPoint NCDMF_Lease_20220310 D:\CGAProjects\pqpf_shellcast\data\ncdmf_leases_20220310_lambert_pts.shp CENTROIDExportFeatures ncdmf_leases_20220310_lambert_pts D:\CGAProjects\pqpf_shellcast\data\ncdmf_leases_20220310_lambert_thresh.shp # NOT_USE_ALIAS "ProductNbr "ProductNbr" true true false 50 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.ProductNbr,0,50;Assoc_ID "Assoc_ID" true true false 50 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.Assoc_ID,0,50;Owner "Owner" true true false 254 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.Owner,0,254;Bus_Agent "Bus_Agent" true true false 254 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.Bus_Agent,0,254;County "County" true true false 50 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.County,0,50;WB_Name "WB_Name" true true false 254 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.WB_Name,0,254;Type_ "Type_" true true false 50 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.Type_,0,50;Status "Status" true true false 50 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.Status,0,50;A_Granted "A_Granted" true true false 10 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.A_Granted,0,10;EffectiveD "EffectiveD" true true false 8 Date 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.EffectiveD,-1,-1;Expiration "Expiration" true true false 8 Date 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.Expiration,-1,-1;Term_Date "Term_Date" true true false 8 Date 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.Term_Date,-1,-1;ViewLink "ViewLink" true true false 254 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.ViewLink,0,254;PropAcres "PropAcres" true true false 10 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.PropAcres,0,10;ORIG_FID "ORIG_FID" true true false 10 Long 0 10,First,#,ncdmf_leases_20220310_lambert_pts,ncdmf_leases_20220310_lambert_pts.ORIG_FID,-1,-1;FID "FID" false true false 4 Long 0 9,First,#,ncdmf_leases_20220310_lambert_pts,lease_bounds_albers.FID,-1,-1;lease_id "lease_id" true true false 80 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,lease_bounds_albers.lease_id,0,80;owner "owner" true true false 80 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,lease_bounds_albers.owner,0,80;type "type" true true false 80 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,lease_bounds_albers.type,0,80;area_ac "area_ac" true true false 80 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,lease_bounds_albers.area_ac,0,80;status "status" true true false 80 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,lease_bounds_albers.status,0,80;water_body "water_body" true true false 80 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,lease_bounds_albers.water_body,0,80;county "county" true true false 80 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,lease_bounds_albers.county,0,80;cmu_name "cmu_name" true true false 80 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,lease_bounds_albers.cmu_name,0,80;sga_name "sga_name" true true false 80 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,lease_bounds_albers.sga_name,0,80;sga_desc "sga_desc" true true false 80 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,lease_bounds_albers.sga_desc,0,80;rain_in "rain_in" true true false 24 Double 15 23,First,#,ncdmf_leases_20220310_lambert_pts,lease_bounds_albers.rain_in,-1,-1;rain_lab "rain_lab" true true false 80 Text 0 0,First,#,ncdmf_leases_20220310_lambert_pts,lease_bounds_albers.rain_lab,0,80" #CalculateField ncdmf_leases_20220310_lambert_thresh lease_id !ProductNbr! "Python 3" # Text NO_ENFORCE_DOMAINSCalculateField ncdmf_leases_20220310_lambert_thresh lease_id !ProductNbr! "Python 3" # Text NO_ENFORCE_DOMAINSCalculateField ncdmf_leases_20220310_lambert_thresh owner_1 !Owner! "Python 3" # Text NO_ENFORCE_DOMAINSCalculateField ncdmf_leases_20220310_lambert_thresh type !Type_! "Python 3" # Text NO_ENFORCE_DOMAINSCalculateField ncdmf_leases_20220310_lambert_thresh status_1 !Status! "Python 3" # Text NO_ENFORCE_DOMAINSCalculateField ncdmf_leases_20220310_lambert_thresh water_body !WB_Name! "Python 3" # Text NO_ENFORCE_DOMAINSCalculateField ncdmf_leases_20220310_lambert_thresh county_1 !County! "Python 3" # Text NO_ENFORCE_DOMAINSDeleteField ncdmf_leases_20220310_lambert_thresh ProductNbr "Delete Fields"UpdateSchema "CIMDATA=<CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.0.0'><WorkspaceConnectionString>DATABASE=D:\CGAProjects\pqpf_shellcast\data</WorkspaceConnectionString><WorkspaceFactory>Shapefile</WorkspaceFactory><Dataset>ncdmf_leases_20220310_lambert_thresh</Dataset><DatasetType>esriDTFeatureClass</DatasetType></CIMStandardDataConnection>" <operationSequence><workflow><DeleteField><field_name>Assoc_ID</field_name><field_name>Owner</field_name><field_name>Bus_Agent</field_name><field_name>County</field_name><field_name>WB_Name</field_name><field_name>Type_</field_name><field_name>Status</field_name><field_name>A_Granted</field_name><field_name>EffectiveD</field_name><field_name>Expiration</field_name><field_name>Term_Date</field_name><field_name>ViewLink</field_name><field_name>PropAcres</field_name><field_name>ORIG_FID</field_name><field_name>FID_</field_name></DeleteField></workflow><workflow><AddField><field_name>Field</field_name><field_type>LONG</field_type><field_is_nullable>False</field_is_nullable><field_is_required>False</field_is_required></AddField></workflow></operationSequence>UpdateSchema "CIMDATA=<CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.0.0'><WorkspaceConnectionString>DATABASE=D:\CGAProjects\pqpf_shellcast\data</WorkspaceConnectionString><WorkspaceFactory>Shapefile</WorkspaceFactory><Dataset>ncdmf_leases_20220310_lambert_thresh</Dataset><DatasetType>esriDTFeatureClass</DatasetType></CIMStandardDataConnection>" <operationSequence><workflow><DeleteField><field_name>Field</field_name></DeleteField></workflow></operationSequence>UpdateSchema "CIMDATA=<CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.0.0'><WorkspaceConnectionString>DATABASE=D:\CGAProjects\pqpf_shellcast\data\inputs</WorkspaceConnectionString><WorkspaceFactory>Shapefile</WorkspaceFactory><Dataset>ncdmf_leases_20220310_lambert_thresh.shp</Dataset><DatasetType>esriDTFeatureClass</DatasetType></CIMStandardDataConnection>" <operationSequence><workflow><AddField><field_name>lat</field_name><field_type>DOUBLE</field_type><field_is_nullable>False</field_is_nullable><field_is_required>False</field_is_required></AddField></workflow></operationSequence>CalculateGeometryAttributes ncdmf_leases_20220310_lambert_thresh "lat POINT_Y" # # GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] "Decimal Degrees"UpdateSchema "CIMDATA=<CIMStandardDataConnection xsi:type='typens:CIMStandardDataConnection' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.0.0'><WorkspaceConnectionString>DATABASE=D:\CGAProjects\pqpf_shellcast\data\inputs</WorkspaceConnectionString><WorkspaceFactory>Shapefile</WorkspaceFactory><Dataset>ncdmf_leases_20220310_lambert_thresh.shp</Dataset><DatasetType>esriDTFeatureClass</DatasetType></CIMStandardDataConnection>" <operationSequence><workflow><AddField><field_name>lon</field_name><field_type>DOUBLE</field_type><field_is_nullable>False</field_is_nullable><field_is_required>False</field_is_required></AddField></workflow></operationSequence>CalculateGeometryAttributes ncdmf_leases_20220310_lambert_thresh "lon POINT_X" # # GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]] "Decimal Degrees"Project ncdmf_leases_20220310_lambert_thresh D:\CGAProjects\shellcast\analysis\data\pqpf\nc\inputs\ncdmf_leases_20220310_lambert_thresh PROJCS["Lambert_Conformal_Conic_2SP",GEOGCS["GCS_Coordinate_System_imported_from_GRIB_file",DATUM["D_unknown",SPHEROID["Sphere",6371200.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],PARAMETER["central_meridian",-95.0],PARAMETER["standard_parallel_1",25.0],PARAMETER["standard_parallel_2",25.0],PARAMETER["latitude_of_origin",25.0],UNIT["Meter",1.0]] # PROJCS["NAD_1983_StatePlane_North_Carolina_FIPS_3200_Feet",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["False_Easting",2000000.002616666],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-79.0],PARAMETER["Standard_Parallel_1",34.33333333333334],PARAMETER["Standard_Parallel_2",36.16666666666666],PARAMETER["Latitude_Of_Origin",33.75],UNIT["Foot_US",0.3048006096012192]] NO_PRESERVE_SHAPE # NO_VERTICAL20221117170216002022111717021600Microsoft Windows 10 Version 10.0 (Build 22000) ; Esri ArcGIS 13.0.2.36056ncdmf_leases_20220310_lambert_threshShapefile0.000datasetEPSG6.12(9.0.0)0SimpleFALSE0FALSEFALSEncdmf_leases_20220310_lambert_threshFeature Class0FIDFIDOID400Internal feature number.EsriSequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.EsriCoordinates defining the features.ProductNbrProductNbrString5000Assoc_IDAssoc_IDString5000OwnerOwnerString25400Bus_AgentBus_AgentString25400CountyCountyString5000WB_NameWB_NameString25400Type_Type_String5000StatusStatusString5000A_GrantedA_GrantedString1000EffectiveDEffectiveDDate800ExpirationExpirationDate800Term_DateTerm_DateDate800ViewLinkViewLinkString25400PropAcresPropAcresString1000ORIG_FIDORIG_FIDInteger10100FID_FID_Integer990lease_idlease_idString8000owner_1owner_1String8000typetypeString8000area_acarea_acString8000status_1status_1String8000water_bodywater_bodyString8000county_1county_1String8000cmu_namecmu_nameString8000sga_namesga_nameString8000sga_descsga_descString8000rain_inrain_inDouble191815rain_labrain_labString800020221117
diff --git a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_albers.shx b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.shx
similarity index 94%
rename from analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_albers.shx
rename to shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.shx
index fbfbf59..5560843 100644
Binary files a/analysis/assets/nc/data/spatial/outputs/dmf_data/lease_centroids/lease_centroids_albers.shx and b/shellcast-analysis/data/pqpf/nc/inputs/ncdmf_leases_20220310_lambert_thresh.shx differ
diff --git a/analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.cpg b/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.cpg
similarity index 100%
rename from analysis/assets/nc/data/spatial/inputs/dmf_data/sga_bounds_raw/SGA_Current_Classifications.cpg
rename to shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.cpg
diff --git a/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.dbf b/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.dbf
new file mode 100644
index 0000000..9387a61
Binary files /dev/null and b/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.dbf differ
diff --git a/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.prj b/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.prj
new file mode 100644
index 0000000..7e30fbe
--- /dev/null
+++ b/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.prj
@@ -0,0 +1 @@
+PROJCS["Lambert_Conformal_Conic_2SP",GEOGCS["GCS_Coordinate_System_imported_from_GRIB_file",DATUM["D_unknown",SPHEROID["Sphere",6371200.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],PARAMETER["central_meridian",-95.0],PARAMETER["standard_parallel_1",25.0],PARAMETER["standard_parallel_2",25.0],PARAMETER["latitude_of_origin",25.0],UNIT["Meter",1.0]]
\ No newline at end of file
diff --git a/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.shp b/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.shp
new file mode 100644
index 0000000..6e14ada
Binary files /dev/null and b/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.shp differ
diff --git a/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.shp.xml b/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.shp.xml
new file mode 100644
index 0000000..25c4316
--- /dev/null
+++ b/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.shp.xml
@@ -0,0 +1 @@
+20221216090557001.0FALSEProject C:\Users\mshukun\Documents\ArcGIS\Projects\ShellCast\sc_data\copy_sfpermit22_nonconf\copy_sfpermit22_nonconf.shp C:\Users\mshukun\Documents\ArcGIS\Projects\ShellCast\ShellCast.gdb\copy_sfpermit22_nonc_Project PROJCS["Lambert_Conformal_Conic_2SP",GEOGCS["GCS_Coordinate_System_imported_from_GRIB_file",DATUM["D_unknown",SPHEROID["Sphere",6371200.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],PARAMETER["central_meridian",-95.0],PARAMETER["standard_parallel_1",25.0],PARAMETER["standard_parallel_2",25.0],PARAMETER["latitude_of_origin",25.0],UNIT["Meter",1.0]] # PROJCS["NAD_1983_UTM_Zone_17N",GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",-81.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] NO_PRESERVE_SHAPE # NO_VERTICALMultipartToSinglepart C:\Users\mshukun\Documents\ArcGIS\Projects\ShellCast\ShellCast.gdb\copy_sfpermit22_nonc_Project C:\Users\mshukun\Documents\ArcGIS\Projects\ShellCast\sc_data\shellcast_sc\sfperm22_nonconf_20221216.shpAddField C:\Users\mshukun\Documents\ArcGIS\Projects\ShellCast\sc_data\shellcast_sc\sfperm22_nonconf_20221216.shp lease_id Text # # 15 # NULLABLE NON_REQUIRED #sfperm22_nonconf_202212160020.000file://\\SUMMIT\C$\Users\mshukun\Documents\ArcGIS\Projects\ShellCast\sc_data\shellcast_sc\sfperm22_nonconf_20221216.shpLocal Area NetworkProjectedGCS_Coordinate_System_imported_from_GRIB_fileLinear Unit: Meter (1.000000)Lambert_Conformal_Conic_2SP<ProjectedCoordinateSystem xsi:type='typens:ProjectedCoordinateSystem' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:typens='http://www.esri.com/schemas/ArcGIS/3.0.0'><WKT>PROJCS["Lambert_Conformal_Conic_2SP",GEOGCS["GCS_Coordinate_System_imported_from_GRIB_file",DATUM["D_unknown",SPHEROID["Sphere",6371200.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Lambert_Conformal_Conic"],PARAMETER["false_easting",0.0],PARAMETER["false_northing",0.0],PARAMETER["central_meridian",-95.0],PARAMETER["standard_parallel_1",25.0],PARAMETER["standard_parallel_2",25.0],PARAMETER["latitude_of_origin",25.0],UNIT["Meter",1.0]]</WKT><XOrigin>-39891200</XOrigin><YOrigin>-27436600</YOrigin><XYScale>112897070.71661156</XYScale><ZOrigin>-100000</ZOrigin><ZScale>10000</ZScale><MOrigin>-100000</MOrigin><MScale>10000</MScale><XYTolerance>0.001</XYTolerance><ZTolerance>0.001</ZTolerance><MTolerance>0.001</MTolerance><HighPrecision>true</HighPrecision></ProjectedCoordinateSystem>20221216090557002022121609055700Microsoft Windows 10 Version 10.0 (Build 22000) ; Esri ArcGIS 13.0.3.36057sfperm22_nonconf_20221216Shapefile0.000dataset0SimpleFALSE0FALSEFALSEsfperm22_nonconf_20221216Feature Class0FIDFIDOID400Internal feature number.EsriSequential unique whole numbers that are automatically generated.ShapeShapeGeometry000Feature geometry.EsriCoordinates defining the features.PermNumPermNumInteger10100PermTypePermTypeString300LabelLabelString600map_countymap_countyString2500Shape_LengShape_LengDouble1900Shape_AreaShape_AreaDouble1900Area of feature in internal units squared.EsriPositive real numbers that are automatically generated.ORIG_FIDORIG_FIDInteger1010020221216
diff --git a/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.shx b/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.shx
new file mode 100644
index 0000000..fb22368
Binary files /dev/null and b/shellcast-analysis/data/pqpf/sc/inputs/sfperm22_nonconf_20221216.shx differ
diff --git a/analysis/src/preps/db-scripts/shellcast_create_db.sql b/shellcast-analysis/db_scripts/shellcast_create_db_nc.sql
similarity index 89%
rename from analysis/src/preps/db-scripts/shellcast_create_db.sql
rename to shellcast-analysis/db_scripts/shellcast_create_db_nc.sql
index a622942..f10dc0a 100644
--- a/analysis/src/preps/db-scripts/shellcast_create_db.sql
+++ b/shellcast-analysis/db_scripts/shellcast_create_db_nc.sql
@@ -17,7 +17,7 @@ CREATE TABLE users (
firebase_uid varchar(28) NULL,
phone_number varchar(11) NULL,
service_provider_id int(5) UNSIGNED ZEROFILL NULL,
- email varchar(50) NULL,
+ email varchar(50) NOT NULL,
email_pref boolean NOT NULL DEFAULT false,
text_pref boolean NOT NULL DEFAULT false,
prob_pref tinyint(3) NOT NULL DEFAULT 75,
@@ -48,8 +48,6 @@ CREATE TABLE user_leases (
created datetime DEFAULT NOW(),
deleted datetime DEFAULT NOW(),
updated datetime DEFAULT NOW() ON UPDATE NOW(),
- FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
- FOREIGN KEY (lease_id) REFERENCES leases(lease_id) ON DELETE CASCADE,
CONSTRAINT unique_leases_per_user UNIQUE (user_id, lease_id)
);
@@ -80,8 +78,7 @@ CREATE TABLE cmu_probabilities (
prob_1d_perc tinyint(3) NULL,
prob_2d_perc tinyint(3) NULL,
prob_3d_perc tinyint(3) NULL,
- created datetime DEFAULT NOW(),
- updated datetime DEFAULT NOW() ON UPDATE NOW()
+ created datetime DEFAULT NOW()
);
-- Mobile phone service providers
@@ -101,3 +98,18 @@ VALUES
('Google Fi', 'msg.fi.google.com', 'msg.fi.google.com')
;
+USE shellcast_nc;
+DELIMITER //
+CREATE PROCEDURE SelectCmuProbsToday()
+BEGIN
+ SELECT * FROM cmu_probabilities WHERE DATE(`created`) = CURDATE();
+END //
+
+
+DELIMITER //
+CREATE PROCEDURE DeleteCmuProbsToday()
+BEGIN
+ SET SQL_SAFE_UPDATES = 0;
+ DELETE FROM cmu_probabilities WHERE DATE(created) = CURDATE();
+ SET SQL_SAFE_UPDATES = 1;
+END //
\ No newline at end of file
diff --git a/shellcast-analysis/db_scripts/shellcast_create_db_sc.sql b/shellcast-analysis/db_scripts/shellcast_create_db_sc.sql
new file mode 100644
index 0000000..d610580
--- /dev/null
+++ b/shellcast-analysis/db_scripts/shellcast_create_db_sc.sql
@@ -0,0 +1,118 @@
+-- Create database
+CREATE DATABASE shellcast_sc;
+
+USE shellcast_sc;
+
+-- Stores the mobile phone service providers that we can send MMS messages to.
+CREATE TABLE phone_service_providers (
+ id int(3) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ name varchar(30) NOT NULL DEFAULT '',
+ mms_gateway varchar(30) NOT NULL DEFAULT '',
+ sms_gateway varchar(30) NOT NULL DEFAULT ''
+);
+
+-- Stores user information.
+CREATE TABLE users (
+ id int(5) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ firebase_uid varchar(28) NULL,
+ phone_number varchar(11) NULL,
+ service_provider_id int(5) UNSIGNED ZEROFILL NULL,
+ email varchar(50) NOT NULL,
+ email_pref boolean NOT NULL DEFAULT false,
+ text_pref boolean NOT NULL DEFAULT false,
+ prob_pref tinyint(3) NOT NULL DEFAULT 75,
+ deleted boolean DEFAULT false,
+ created datetime DEFAULT NOW(),
+ updated datetime DEFAULT NOW() ON UPDATE NOW(),
+ FOREIGN KEY (service_provider_id) REFERENCES phone_service_providers(id)
+);
+
+-- Stores information about all potential leases retrieved from the NCDMF API.
+CREATE TABLE leases (
+ lease_id varchar(20) NOT NULL PRIMARY KEY,
+ grow_area_name varchar(3) NULL,
+ grow_area_desc varchar(50) NULL,
+ cmu_name varchar(10) NULL,
+ rainfall_thresh_in decimal(3, 2) NOT NULL,
+ latitude double NOT NULL,
+ longitude double NOT NULL,
+ created datetime DEFAULT NOW(),
+ updated datetime DEFAULT NOW() ON UPDATE NOW()
+);
+
+-- Stores information about user leases.
+-- CONSTRAINT unique_leases_per_user UNIQUE (user_id, lease_id)
+CREATE TABLE user_leases (
+ id int(5) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ user_id int(5) UNSIGNED ZEROFILL NOT NULL,
+ lease_id varchar(20) NOT NULL,
+ created datetime DEFAULT NOW(),
+ deleted datetime DEFAULT NOW(),
+ updated datetime DEFAULT NOW() ON UPDATE NOW(),
+ FOREIGN KEY (user_id) REFERENCES users(id),
+ FOREIGN KEY (lease_id) REFERENCES leases(lease_id)
+);
+
+-- Stores a log of all notifications that are sent to users.
+CREATE TABLE notification_log (
+ id int(5) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY ,
+ user_id int(5) UNSIGNED ZEROFILL NOT NULL,
+ address varchar(50) NOT NULL,
+ notification_text text(10000) NOT NULL,
+ notification_type varchar(10) NOT NULL,
+ send_success boolean DEFAULT true,
+ response_text text(10000) NULL,
+ created datetime DEFAULT NOW(),
+ FOREIGN KEY (user_id) REFERENCES users(id)
+);
+
+-- Stores the growing units.
+-- CREATE TABLE cmus (
+-- id varchar(10) NOT NULL PRIMARY KEY,
+-- cmu_name varchar(10) NOT NULL,
+-- created datetime DEFAULT NOW()
+-- );
+
+-- Stores the closure probabilities for each growing unit.
+CREATE TABLE cmu_probabilities (
+ id int(5) UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ lease_id varchar(10) NOT NULL,
+ prob_1d_perc tinyint(3) NULL,
+ prob_2d_perc tinyint(3) NULL,
+ prob_3d_perc tinyint(3) NULL,
+ created datetime DEFAULT NOW()
+);
+
+-- Mobile phone service providers
+INSERT INTO phone_service_providers (`name`, `mms_gateway`, `sms_gateway`)
+VALUES
+ ('AT&T', 'mms.att.net', 'txt.att.net'),
+ ('T-Mobile', 'tmomail.net', 'tmomail.net'),
+ ('Verizon', 'vzwpix.com', 'vtext.com'),
+ ('Sprint (Pre-merger)', 'pm.sprint.com', 'messaging.sprintpcs.com'),
+ ('US Cellular', 'mms.uscc.net', 'email.uscc.net'),
+ ('Straight Talk', 'mypixmessages.com', 'vtext.com'),
+ ('Xfinity Mobile', 'mypixmessages.com', 'vtext.com'),
+ ('Virgin Mobile', 'vmpix.com', 'vmobl.com'),
+ ('Metro PCS', 'mymetropcs.com', 'mymetropcs.com'),
+ ('Boost Mobile', 'myboostmobile.com', 'sms.myboostmobile.com'),
+ ('Cricket Wireless', 'mms.cricketwireless.net', 'mms.cricketwireless.net'),
+ ('Google Fi', 'msg.fi.google.com', 'msg.fi.google.com')
+;
+
+USE shellcast_sc;
+DELIMITER //
+CREATE PROCEDURE SelectCmuProbsToday()
+BEGIN
+ SELECT * FROM cmu_probabilities WHERE DATE(`created`) = CURDATE();
+END //
+
+
+DELIMITER //
+CREATE PROCEDURE DeleteCmuProbsToday()
+BEGIN
+ SET SQL_SAFE_UPDATES = 0;
+ DELETE FROM cmu_probabilities WHERE DATE(created) = CURDATE();
+ SET SQL_SAFE_UPDATES = 1;
+END //
+
diff --git a/shellcast-analysis/db_scripts/sp.sql b/shellcast-analysis/db_scripts/sp.sql
new file mode 100644
index 0000000..4f9f9a6
--- /dev/null
+++ b/shellcast-analysis/db_scripts/sp.sql
@@ -0,0 +1,33 @@
+USE shellcast_nc;
+DELIMITER //
+CREATE PROCEDURE SelectCmuProbsToday()
+BEGIN
+ SELECT * FROM cmu_probabilities WHERE DATE(`created`) = CURDATE();
+END //
+
+
+DELIMITER //
+CREATE PROCEDURE DeleteCmuProbsToday()
+BEGIN
+ SET SQL_SAFE_UPDATES = 0;
+ DELETE FROM cmu_probabilities WHERE DATE(created) = CURDATE();
+ SET SQL_SAFE_UPDATES = 1;
+END //
+
+DELIMITER //
+CREATE PROCEDURE DeleteUserAccount()
+BEGIN
+ SET SQL_SAFE_UPDATES = 0;
+ DELETE FROM user_leases WHERE user_id IN (SELECT id FROM users WHERE deleted=1);
+ DELETE FROM notification_log WHERE user_id IN (SELECT id FROM users WHERE deleted=1);
+ DELETE FROM users WHERE deleted=1;
+ SET SQL_SAFE_UPDATES = 1;
+END //
+
+DELIMITER //
+CREATE PROCEDURE DeleteUserLeases()
+BEGIN
+ SET SQL_SAFE_UPDATES = 0;
+ DELETE FROM user_leases WHERE deleted=1;
+ SET SQL_SAFE_UPDATES = 1;
+END //
diff --git a/shellcast-analysis/logging_nc.yaml b/shellcast-analysis/logging_nc.yaml
new file mode 100644
index 0000000..da6f441
--- /dev/null
+++ b/shellcast-analysis/logging_nc.yaml
@@ -0,0 +1,34 @@
+version: 1
+
+formatters:
+ withtime:
+ format: '%(asctime)s %(name)-5s %(levelname)-8s %(message)s'
+ datefmt: '%m/%d/%Y %I:%M:%S %p'
+ withouttime:
+ format: '%(name)-25s %(levelname)-8s %(message)s'
+handlers:
+ console:
+ class: logging.StreamHandler
+ level: INFO
+ formatter: withouttime
+ stream: ext://sys.stdout
+ info_file_handler:
+ class: logging.handlers.RotatingFileHandler
+ level: INFO
+ formatter: withtime
+ filename: 'logs/nc/info.log'
+ maxBytes: 10485760 # 10MB
+ encoding: utf8
+ backupCount: 5
+ error_file_handler:
+ class: logging.handlers.RotatingFileHandler
+ level: ERROR
+ formatter: withtime
+ filename: 'logs/nc/error.log'
+ maxBytes: 10485760 # 10MB
+ encoding: utf8
+ backupCount: 5
+
+root:
+ level: INFO
+ handlers: [console, info_file_handler, error_file_handler]
\ No newline at end of file
diff --git a/shellcast-analysis/logging_sc.yaml b/shellcast-analysis/logging_sc.yaml
new file mode 100644
index 0000000..86b1ef2
--- /dev/null
+++ b/shellcast-analysis/logging_sc.yaml
@@ -0,0 +1,34 @@
+version: 1
+
+formatters:
+ withtime:
+ format: '%(asctime)s %(name)-5s %(levelname)-8s %(message)s'
+ datefmt: '%m/%d/%Y %I:%M:%S %p'
+ withouttime:
+ format: '%(name)-25s %(levelname)-8s %(message)s'
+handlers:
+ console:
+ class: logging.StreamHandler
+ level: INFO
+ formatter: withouttime
+ stream: ext://sys.stdout
+ info_file_handler:
+ class: logging.handlers.RotatingFileHandler
+ level: INFO
+ formatter: withtime
+ filename: 'logs/sc/info.log'
+ maxBytes: 10485760 # 10MB
+ encoding: utf8
+ backupCount: 5
+ error_file_handler:
+ class: logging.handlers.RotatingFileHandler
+ level: ERROR
+ formatter: withtime
+ filename: 'logs/sc/error.log'
+ maxBytes: 10485760 # 10MB
+ encoding: utf8
+ backupCount: 5
+
+root:
+ level: INFO
+ handlers: [console, info_file_handler, error_file_handler]
\ No newline at end of file
diff --git a/shellcast-analysis/main_pqpf_nc.py b/shellcast-analysis/main_pqpf_nc.py
new file mode 100644
index 0000000..64fbcc0
--- /dev/null
+++ b/shellcast-analysis/main_pqpf_nc.py
@@ -0,0 +1,34 @@
+"""
+Project: ShellCast North Carolina
+Date: November 2022 - 2023
+"""
+import sys
+import os
+
+script_dir = os.path.join(os.path.dirname(__file__), 'src')
+sys.path.append(script_dir)
+
+import setup_logging
+
+STATE = 'NC'
+
+setup_logging.create_log_files(STATE)
+setup_logging.setup_logger_yaml(os.path.join(os.path.dirname(__file__), 'logging_nc.yaml'))
+
+from pqpf import pqpf
+import logging
+
+logger = logging.getLogger(__name__)
+
+if __name__ == '__main__':
+ logger.info(f'{"="*50}')
+ logger.info('\t\t\t Start NC ShellCast Analysis')
+ logger.info(f'{"="*50}')
+ # DB connection information in config.ini
+ db = 'gcp.mysql'
+
+ # --- PQPF analysis ---
+ pqpf = pqpf.PQPF(STATE, db)
+ pqpf.nc_main()
+ # ---------------------
+ logger.info(f'{"=" * 50}')
diff --git a/shellcast-analysis/main_pqpf_sc.py b/shellcast-analysis/main_pqpf_sc.py
new file mode 100644
index 0000000..6e122c0
--- /dev/null
+++ b/shellcast-analysis/main_pqpf_sc.py
@@ -0,0 +1,34 @@
+"""
+Project: ShellCast South Carolina
+Date: November 2022 - 2023
+"""
+import sys
+import os
+
+script_dir = os.path.join(os.path.dirname(__file__), 'src')
+sys.path.append(script_dir)
+
+import setup_logging
+
+STATE = 'SC'
+
+setup_logging.create_log_files(STATE)
+setup_logging.setup_logger_yaml(os.path.join(os.path.dirname(__file__), 'logging_sc.yaml'))
+
+from pqpf import pqpf
+import logging
+
+logger = logging.getLogger(__name__)
+
+if __name__ == '__main__':
+ logger.info(f'{"="*50}')
+ logger.info('\t\t\t Start SC ShellCast Analysis')
+ logger.info(f'{"="*50}')
+ # DB connection information in config.ini
+ db = 'gcp.mysql'
+
+ # --- PQPF analysis ---
+ pqpf = pqpf.PQPF(STATE, db)
+ pqpf.sc_main()
+ # ---------------------
+ logger.info(f'{"=" * 50}')
\ No newline at end of file
diff --git a/shellcast-analysis/setup_logging.py b/shellcast-analysis/setup_logging.py
new file mode 100644
index 0000000..1c7e674
--- /dev/null
+++ b/shellcast-analysis/setup_logging.py
@@ -0,0 +1,25 @@
+import logging.config
+import os
+import yaml
+
+LOGS_DIR = os.path.join(os.path.dirname(__file__), 'logs')
+
+def create_log_files(state):
+ log_dir = os.path.join(LOGS_DIR, state.lower())
+ info_log_fpath = os.path.join(log_dir, 'info.log')
+ error_log_fpath = os.path.join(log_dir, 'error.log')
+ log_files = [info_log_fpath, error_log_fpath]
+ if not os.path.exists(log_dir):
+ os.makedirs(log_dir)
+
+ for log_file in log_files:
+ if not os.path.exists(log_file):
+ log_file = open(info_log_fpath, 'w')
+ log_file.close()
+
+def setup_logger_yaml(logging_yaml_fpath):
+ with open(logging_yaml_fpath, 'r') as stream:
+ config = yaml.load(stream, Loader=yaml.FullLoader)
+
+ logging.config.dictConfig(config)
+ logging.captureWarnings(True)
diff --git a/shellcast-analysis/sqlauthproxy_template.bat b/shellcast-analysis/sqlauthproxy_template.bat
new file mode 100644
index 0000000..4961bb8
--- /dev/null
+++ b/shellcast-analysis/sqlauthproxy_template.bat
@@ -0,0 +1 @@
+cloud-sql-proxy -instances=<>=tcp:3306
diff --git a/shellcast-analysis/src/constants.py b/shellcast-analysis/src/constants.py
new file mode 100644
index 0000000..146033a
--- /dev/null
+++ b/shellcast-analysis/src/constants.py
@@ -0,0 +1,40 @@
+import os
+from datetime import datetime
+from pathlib import Path
+
+# [ Directories ]
+ROOT_DIR = Path(__file__).resolve().parent.parent
+PREPROC_DATA_DIR = os.path.join(ROOT_DIR, 'data/preprocs')
+PQPF_DATA_DIR = os.path.join(ROOT_DIR, 'data/pqpf')
+
+# [ File path]
+CONFIG_INI = os.path.join(ROOT_DIR, 'config.ini')
+
+# [ FTP ]
+FTP_URL = 'ftp.wpc.ncep.noaa.gov'
+FTP_CWD = 'pqpf/conus/pqpf_24hr/'
+
+# [ Regex Patterns]
+TODAY = datetime.today().strftime('%Y%m%d')
+REG_PATTERN_TODAY = r'{0}'.format(TODAY)
+REG_PATTERN_GRB_HOURS = r'f[0-9]+'
+
+# [ Prefixes ]
+GRB_PREFIX = 'pqpf_p24i_conus'
+TIFF_PREFIX = 'tp'
+
+# [ Projections ]
+# WGS84 = 'epsg:4326'
+
+# [ Other ]
+VALID_HOURS = ['f030', 'f054', 'f078']
+Z_RUN = '06'
+TO_HOUR = -6
+GRB_RES_X = 2539.703
+GRB_RES_Y = 2539.702
+
+# VALID_HOURS = ['f024', 'f048', 'f072']
+# Z_RUN = '12'
+# TO_HOUR = 0
+
+
diff --git a/analysis/src/preps/__init__.py b/shellcast-analysis/src/pqpf/__init__.py
similarity index 100%
rename from analysis/src/preps/__init__.py
rename to shellcast-analysis/src/pqpf/__init__.py
diff --git a/shellcast-analysis/src/pqpf/pqpf.py b/shellcast-analysis/src/pqpf/pqpf.py
new file mode 100644
index 0000000..518b4db
--- /dev/null
+++ b/shellcast-analysis/src/pqpf/pqpf.py
@@ -0,0 +1,535 @@
+import configparser
+import sys
+import os
+import gc
+import logging.config
+import functools as ft
+import pygrib
+import warnings
+import rasterio
+import pandas as pd
+import geopandas as gpd
+import sqlalchemy.engine
+import numpy as np
+import constants as ct
+from ftplib import FTP
+from shapely.geometry import Point
+from shapely.errors import ShapelyDeprecationWarning
+from datetime import datetime
+from typing import List, Type
+from rasterstats import zonal_stats
+from sqlalchemy import create_engine
+from . import utils
+
+warnings.filterwarnings("ignore", category=ShapelyDeprecationWarning)
+
+logger = logging.getLogger(__name__)
+
+
+# Prerequisites
+# Lease point layer having lease_id and rainfall threshold
+
+
+class PQPF:
+ def __init__(self, state, db: str):
+ """
+ Args:
+ state (str): State abbreviation
+ """
+ self.outfile_date = None
+ self.config = configparser.ConfigParser()
+ self.config.read(ct.CONFIG_INI)
+ self.state = state.upper()
+ self.data_root = os.path.join(ct.PQPF_DATA_DIR, state.lower())
+ self.connect_str = utils.get_connection_string(self.config[db], self.config[self.state]['DB_NAME'])
+ # Data directories
+ self.inputs_dir = os.path.join(self.data_root, 'inputs')
+ self.outputs_dir = utils.create_directory(os.path.join(self.data_root, 'outputs'), delete=True)
+ self.grb_raw_dir = utils.create_directory(os.path.join(ct.PQPF_DATA_DIR, 'raw'))
+ self.intermediate_outputs_dir = utils.create_directory(os.path.join(self.data_root, 'intermediate'),
+ delete=True)
+ self.grb_subsets_dir = utils.create_directory(os.path.join(self.intermediate_outputs_dir, 'subsets'),
+ delete=True)
+ self.tiffs_dir = utils.create_directory(os.path.join(self.intermediate_outputs_dir, 'tiffs'), delete=True)
+
+ self.lease_shp = os.path.join(self.inputs_dir, self.config[self.state]['LEASE_SHP'])
+ if self.state == 'NC':
+ self.cmu_shp = os.path.join(self.inputs_dir, self.config[self.state]['CMU_SHP'])
+ self.use_cols = [
+ self.config[self.state]['LEASE_SHP_COL_LEASE_ID'],
+ self.config[self.state]['LEASE_SHP_COL_CMU_NAME'],
+ self.config[self.state]['LEASE_SHP_COL_RAIN_IN'],
+ 'geometry'
+ ]
+ self.cmu_use_cols = [
+ self.config[self.state]['CMU_SHP_COL_CMU_NAME'],
+ self.config[self.state]['CMU_SHP_COL_RAIN_IN'],
+ 'geometry'
+ ]
+ elif self.state == 'SC':
+ self.use_cols = [
+ self.config[self.state]['LEASE_SHP_COL_LEASE_ID'],
+ 'geometry'
+ ]
+
+ def get_files_to_download(self) -> List[str]:
+ """
+ List today's PQPF GRB files.
+ Returns:
+ object: list of today's PQPF GRB files
+ """
+ logger.info('[PQPF GRB files to download]')
+ try:
+ files = []
+ files_to_download = []
+ today = datetime.today().strftime('%Y%m%d')
+ # Get GRB names for today
+ for hour in ct.VALID_HOURS:
+ fname = f'{ct.GRB_PREFIX}_{today}{ct.Z_RUN}{hour}.grb'
+ files.append(fname)
+ # Check today's GRB files are already in directory
+ if len(files) > 0:
+ for f in files:
+ if f not in os.listdir(self.grb_raw_dir):
+ files_to_download.append(f)
+ if len(files_to_download) > 0:
+ for f in files_to_download:
+ logger.info(f)
+ return files_to_download
+ else:
+ logger.info('Data exists in the directory.')
+ logger.info(utils.done_str)
+ else:
+ msg = ' Having a problem listing PQPF GRB files.'
+ logger.error(msg)
+ utils.send_email(self.state, msg)
+ sys.exit(1)
+ except Exception as e:
+ msg = 'Files to download failed.'
+ utils.error_process(self.state, msg, e)
+
+ def download_grbs(self, files: List[str]) -> None:
+ """
+ Download PQPF GRB files from FTP.
+ Args:
+ files (List[str]): List of GRB files
+ """
+ logger.info('[Download PQPF GRBs from FTP]')
+ try:
+ if files:
+ ftp = FTP(ct.FTP_URL)
+ ftp.login()
+ ftp.encoding = 'utf-8'
+ ftp.cwd(ct.FTP_CWD)
+ for fname in files:
+ grb_path = os.path.join(self.grb_raw_dir, fname)
+ with open(grb_path, 'wb') as f:
+ ftp.retrbinary("RETR " + fname, f.write)
+ logger.info(f'{fname} downloaded.')
+ ftp.quit()
+ else:
+ logger.info('Skip download')
+ logger.info(utils.done_str)
+ except Exception as e:
+ msg = 'GRB file download failed.'
+ utils.error_process(self.state, msg, e)
+
+ def small_grb(self) -> None:
+ """
+ Crop GRB files in small area.
+ """
+ logger.info('[Subset GRB file for small area]')
+ try:
+ utils.delete_files(self.grb_subsets_dir)
+ for grb in [os.path.join(self.grb_raw_dir, f) for f in os.listdir(self.grb_raw_dir) if f.endswith('.grb')]:
+ out_grb_path = os.path.join(self.grb_subsets_dir, f'sbs_{os.path.basename(grb)}')
+ cmd = ['wgrib2', grb, '-small_grib', self.config[self.state]['LON_WE'],
+ self.config[self.state]['LAT_SN'], out_grb_path]
+ logger.info(cmd)
+ utils.cmd_subprocess(cmd)
+ logger.info(utils.done_str)
+ except Exception as e:
+ msg = 'Subset GRIB file failed.'
+ utils.error_process(self.state, msg, e)
+
+ def grb_to_tiff(self, thresholds: List[float]) -> None:
+ """
+ Transform GRB to Tiff for each threshold.
+ Args:
+ thresholds (List[float]): List of unique rainfall thresholds
+ """
+ logger.info('[Transform GRB to Tiff for each threshold]')
+ try:
+ # Delete previous outputs
+ utils.delete_files(self.tiffs_dir)
+
+ for grb_fpath in [os.path.join(self.grb_subsets_dir, f) for f in os.listdir(self.grb_subsets_dir) if
+ f.endswith('grb')]:
+ grbs = pygrib.open(grb_fpath)
+ fname = grb_fpath.split('_')[-1].split('.')[0]
+
+ for idx, grb in enumerate(grbs):
+ if 'upperLimit' in grb.keys():
+ # upper_limit = grb.upperLimit
+ # inches = round((upper_limit / 1000) / 25.4, 1)
+ inches = round(grb.upperLimit / 25.4, 1)
+ for threshold in thresholds:
+ if threshold == inches:
+ rainfall_str = str(threshold).replace('.', 'p')
+ tiff_path = os.path.join(self.tiffs_dir, f'{ct.TIFF_PREFIX}_{fname}_{rainfall_str}.tif')
+ cmd = ['gdal_translate', '-b', f'{idx + 1}', '-of', 'GTiff', grb_fpath, tiff_path]
+ utils.cmd_subprocess(cmd)
+ logger.info(utils.done_str)
+ except Exception as e:
+ msg = 'GRB to TIFF transformation failed.'
+ utils.error_process(self.state, msg, e)
+
+ def get_thresholds(self) -> List[float]:
+ """
+ Get unique rain_in values.
+
+ Args
+ lease_shp (str): The lease shp name
+ Returns (List[float]): A list of unique rainfall thresholds
+ """
+ logger.info('[Get unique rainfall thresholds]')
+ try:
+ gdf = gpd.read_file(self.lease_shp)
+ gdf = gdf[self.use_cols]
+ thresholds = sorted(gdf.rain_in.unique()) # Returns list of class numpy.float64
+ if len(thresholds) > 0:
+ thresholds_num = [float(threshold) for threshold in thresholds]
+ thresholds_str = ', '.join([str(threshold) for threshold in thresholds])
+ logger.info(f'Thresholds: {thresholds_str}')
+ logger.info(utils.done_str)
+ return thresholds_num
+ else:
+ raise
+ except Exception as e:
+ msg = 'Failed to get rainfall thresholds.'
+ utils.error_process(self.state, msg, e)
+ else:
+ del gdf
+ gc.collect()
+
+ def ras_values_to_pts(self, pts_shp, what_lyr) -> Type:
+ """
+ Assign PQPF raster values to leases.
+
+ Returns (gpd.GeoDataFrame): DataFrame containing each lease's lease_id, cmu_name, rain_in,
+ pqpf_24h, pqpf_48h, pqpf_72h columns with values.
+ """
+ logger.info('[Get PQPF raster value]')
+ logger.info(f'{"-"*5} {what_lyr.upper()} {"-"*5}')
+ try:
+ gdf = gpd.read_file(pts_shp)
+ result_gdf = gpd.GeoDataFrame()
+ if what_lyr == 'cmu':
+ gdf = gdf[self.cmu_use_cols]
+ elif what_lyr == 'lease':
+ gdf = gdf[self.use_cols]
+ tiffs = utils.list_files(self.tiffs_dir, '.tif')
+
+ for tiff in tiffs:
+ tiff_fname = os.path.basename(tiff)
+
+ logger.info(f'Process: {tiff_fname}')
+ src = rasterio.open(tiff)
+ fname = os.path.basename(tiff)
+ match = utils.regex_find(ct.REG_PATTERN_GRB_HOURS, fname)
+ if match and len(match) > 0:
+ file_hour = f'{match[0][2:]}'
+ hour = str(int(file_hour) + ct.TO_HOUR) + 'h'
+ rainfall_str = fname.split('_')[-1].split('.')[0]
+ rainfall_in = float(rainfall_str.replace('p', '.'))
+ gdf_q = gdf.query(f'rain_in == {rainfall_in}').copy()
+ coords = [(Point(i).x, Point(i).y) for i in gdf_q.geometry]
+ gdf_q[f'pqpf_{hour}'] = [x for x in src.sample(coords)]
+ result_gdf = pd.concat([result_gdf, gdf_q])
+ logger.info(f'pqpf_{hour}: {rainfall_in} in ---> Done')
+ logger.info(utils.done_str)
+ return result_gdf
+
+ except Exception as e:
+ msg = 'Raster values to points failed.'
+ utils.error_process(self.state, msg, e)
+ else:
+ del gdf
+ gc.collect()
+
+ def cmu_mean(self, df, group_col, what_lyr) -> str:
+ """
+ Calculate each CMU mean value for qppf_24h, pqpf_48h, and pqpf_72h and saves the data in CSV.
+ # mean >= 0.9 Very High 5
+ # mean >= 0.75 High 4
+ # mean >= 0.5 Moderate 3
+ # mean >= 0.25 Low 2
+ # mean < 0.25 Very Low 1
+ Args:
+ df (DataFrame): Each lease having cmu_name, rain_in, and probabilities.
+ group_col (str): CMU name field (e.g. 'cmu_name')
+ what_lyr (str): 'cmu' or 'lease'
+ Returns (str): CMU probability CSV file path
+ """
+ logger.info('[Calculate CMU mean values]')
+ logger.info(f'{"-"*5} {what_lyr.upper()} {"-"*5}')
+ try:
+ cat_labels = [5, 4, 3, 2, 1]
+ rename_cols = {'pqpf_24h': 'prob_1d_perc', 'pqpf_48h': 'prob_2d_perc', 'pqpf_72h': 'prob_3d_perc'}
+ # Delete previous outputs
+ utils.delete_files(self.outputs_dir)
+ out_csv_path = os.path.join(self.intermediate_outputs_dir, f'pqpf_{what_lyr}_{self.outfile_date}.csv')
+ # group_col = [self.config[self.state]['LEASE_SHP_COL_CMU_NAME']]
+ metric_cols = ['pqpf_24h', 'pqpf_48h', 'pqpf_72h']
+ aggs = df.groupby(group_col)[metric_cols].mean() # Aggregate by CMU
+ aggs.to_csv(os.path.join(self.intermediate_outputs_dir, 'aggs.csv'))
+
+ for key in rename_cols.keys():
+ prob_col = aggs[key]
+ cond_lst = [prob_col >= 0.9, prob_col >= 0.75, prob_col >= 0.5, prob_col >= 0.25, prob_col < 0.25]
+ aggs[key] = np.select(cond_lst, cat_labels)
+ aggs = aggs.rename({key: rename_cols[key]}, axis=1)
+ aggs.to_csv(out_csv_path)
+ logger.info(utils.done_str)
+ return out_csv_path
+
+ except Exception as e:
+ msg = 'CMU mean process failed.'
+ utils.error_process(self.state, msg, e)
+ else:
+ del aggs
+ gc.collect()
+
+ def tiff_resample(self) -> None:
+ """
+ Resample TIFF file (approximately 25 meters).
+ """
+ logger.info('[Resample TIFF files]')
+ try:
+ resample_dir = os.path.join(self.data_root, 'intermediate/resample')
+ utils.create_directory(resample_dir, delete=True)
+ tiffs = utils.list_files(self.tiffs_dir, '.tif')
+ for tiff in tiffs:
+ out_fpath = os.path.join(resample_dir, os.path.basename(tiff))
+ cmd = ['gdalwarp', '-tr', f'{ct.GRB_RES_X / 100}', f'{ct.GRB_RES_Y / 100}', '-r', 'bilinear',
+ '-dstnodata',
+ '-999', '-overwrite', tiff, out_fpath]
+ utils.cmd_subprocess(cmd)
+ logger.info(utils.done_str)
+ except Exception as e:
+ msg = 'Resampling failed.'
+ utils.error_process(self.state, msg, e)
+
+ def zonal_statis_to_df(self, shp, tiff) -> Type:
+ """
+ Args:
+ shp (str): Polygon shapefile path
+ tiff (str): TIFF raster file path
+
+ Returns (gpd.GeoDataFrame):
+ """
+ logger.info('[Zonal Stats]')
+ try:
+ stats = zonal_stats(shp, tiff, geojson_out=True, all_touched=True)
+ df = gpd.GeoDataFrame.from_features(stats)
+ df = df[[self.config[self.state]['LEASE_SHP_COL_LEASE_ID'], 'mean']]
+ return df
+ except Exception as e:
+ msg = 'Zonal Statistics to DataFrame failed.'
+ utils.error_process(self.state, msg, e)
+
+ def zonal_stats_to_csv(self) -> str:
+ """
+ Save calculated zonal statistics to CSV file. The mean values of zonal statistics are categorized as below.
+ # mean >= 0.9 Very High 5
+ # mean >= 0.75 High 4
+ # mean >= 0.5 Moderate 3
+ # mean >= 0.25 Low 2
+ # mean < 0.25 Very Low 1
+ Returns (str): Output CSV file path
+ """
+ logger.info('[Zonal Statistics to CSV]')
+ try:
+ resample_dir = os.path.join(self.data_root, 'intermediate/resample')
+ tiffs = utils.list_files(resample_dir, '.tif')
+ columns = {'24': 'prob_1d_perc', '48': 'prob_2d_perc', '72': 'prob_3d_perc'}
+ out_csv_path = os.path.join(self.outputs_dir, f'pqpf_cmu_{self.outfile_date}.csv')
+ lease_id_field = self.config[self.state]['LEASE_SHP_COL_LEASE_ID']
+ rename_field = self.config[self.state]['LEASE_SHP_COL_CMU_NAME']
+ cat_labels = [5, 4, 3, 2, 1]
+ dfs = []
+
+ for tiff in tiffs:
+ fname = os.path.basename(tiff).split('.')[0]
+ match = utils.regex_find(ct.REG_PATTERN_GRB_HOURS, fname)
+ if match and len(match) > 0:
+ file_hour = f'{match[0][2:]}' # e.g. ['f024]
+ hour = str(int(file_hour) + ct.TO_HOUR)
+ probs = columns[hour]
+ logger.info(f'{"-"*10} {hour}-hours {"-"*10}')
+ df = self.zonal_statis_to_df(self.lease_shp, tiff)
+ mean_col = df['mean']
+ cond_lst = [mean_col >= 0.9, mean_col >= 0.75, mean_col >= 0.5, mean_col >= 0.25, mean_col < 0.25]
+ df['mean'] = np.select(cond_lst, cat_labels)
+ df['mean'] = df['mean'].round(0).astype(int)
+ df = df.rename(columns={'mean': probs})
+ dfs.append(df)
+
+ if len(dfs) > 0:
+ df_merge = ft.reduce(lambda left, right: pd.merge(left, right, on=lease_id_field), dfs)
+ df_merge = df_merge.rename(columns={lease_id_field: rename_field})
+ # df_merge = df_merge.sort_values(by=[rename_field], ascending=True)
+ df_merge = df_merge.sort_values(rename_field, ascending=True)
+ df_merge.to_csv(out_csv_path, index=False)
+ logger.info(utils.done_str)
+ return out_csv_path
+ except Exception as e:
+ msg = 'Zonal Statistics to CSV failed.'
+ utils.error_process(self.state, msg, e)
+
+ def save_to_db(self, csv_path: str) -> None:
+ """
+ Saves the data to DB.
+ Args:
+ csv_path (str): CMU probabilities CSV file path
+ """
+ logger.info('[Save to DB]')
+ try:
+ engine = create_engine(self.connect_str)
+ if os.path.exists(csv_path):
+ df = pd.read_csv(csv_path, index_col=False)
+ if len(df.index) > 0:
+ with engine.connect() as conn:
+ conn.execute('CALL DeleteCmuProbsToday()')
+ df.to_sql('cmu_probabilities', con=conn, if_exists='append', index=False)
+ queryset = conn.execute('CALL SelectCmuProbsToday()')
+ if queryset.rowcount == len(df.index):
+ logger.info(f'{queryset.rowcount} rows added to DB.')
+ logger.info(utils.done_str)
+ except Exception as e:
+ msg = 'Save to DB failed.'
+ utils.error_process(self.state, msg, e)
+
+ def db_connection_test(self):
+ logger.info('[DB connection test]')
+ try:
+ engine = sqlalchemy.create_engine(self.connect_str)
+ conn = engine.connect()
+ tables = conn.execute('SHOW TABLES;')
+ # print(tables.all())
+ conn.close()
+ engine.dispose()
+ logger.info(f'{"*"*10} Connected {"*"*10}\n')
+ except Exception as e:
+ msg = 'DB connection failed.'
+ utils.error_process(self.state, msg, e)
+
+ @staticmethod
+ def csv_concat(lease_csv_fpath, cmu_csv_fpath, csv_out_fpath):
+ """
+ Merge lease points' probabilities and the CMU centroid point probabilities where the CMUs
+ don't have lease points.
+ Args:
+ lease_csv_fpath (str): lease probabilities CSV file path
+ cmu_csv_fpath (str): CMU probabilities CSV file path
+ csv_out_fpath (str): Resulting CSV file path
+ """
+ logger.info('[Concatenate CSV files]')
+ column = 'cmu_name'
+ df1 = pd.read_csv(lease_csv_fpath)
+ df2 = pd.read_csv(cmu_csv_fpath)
+ df3 = df2[~df2.cmu_name.isin(df1.cmu_name)]
+ df4 = pd.concat([df1, df3])
+ df4 = df4.sort_values(by=[column])
+ df4.to_csv(csv_out_fpath, index=False)
+ logger.info(utils.done_str)
+
+ def check_grb_files(self):
+ logger.info('[Check GRB files dates]')
+ grb_file_dates = []
+ to_db_bool = False
+ grb_files = os.listdir(self.grb_raw_dir)
+ today_dt = datetime.today()
+ today_str = datetime.strftime(today_dt, '%Y-%m-%d')
+ for f in grb_files:
+ if f.endswith('.grb'):
+ date = f.split('_')[-1][:8]
+ grb_file_dates.append(date)
+ unique_dates = list(set(grb_file_dates))
+ if len(unique_dates) == 1:
+ dt = datetime.strptime(unique_dates[0], '%Y%m%d')
+ self.outfile_date = datetime.strftime(dt, '%Y-%m-%d')
+ if self.outfile_date == today_str:
+ to_db_bool = True
+ logger.info(f'Date of data: {self.outfile_date}')
+ logger.info(utils.done_str)
+ return to_db_bool
+ else:
+ msg = 'All GRB files need to have the same date.'
+ logger.error(msg)
+ sys.exit(0)
+
+ def nc_main(self) -> None:
+ """
+ Runs NC PQPF data extraction and save the results in database.
+ """
+ start = datetime.now()
+ self.db_connection_test()
+ lyrs = {'lease': [self.lease_shp, self.config[self.state]['LEASE_SHP_COL_CMU_NAME']],
+ 'cmu': [self.cmu_shp, self.config[self.state]['CMU_SHP_COL_CMU_NAME']]
+ }
+ csv_fpaths = []
+
+ # Get data
+ utils.delete_grbs(self.grb_raw_dir)
+ files = self.get_files_to_download()
+ self.download_grbs(files)
+ to_db_bool = self.check_grb_files()
+ csv_out_fpath = os.path.join(self.outputs_dir, f'pqpf_cmu_probs_{self.outfile_date}.csv')
+ # Process data
+ self.small_grb()
+ thresholds = self.get_thresholds()
+ self.grb_to_tiff(thresholds)
+ for key, vals in lyrs.items():
+ df = self.ras_values_to_pts(vals[0], key)
+ csv_path = self.cmu_mean(df, vals[1], key)
+ csv_fpaths.append(csv_path)
+ self.csv_concat(csv_fpaths[0], csv_fpaths[1], csv_out_fpath)
+
+ # Save data to DB
+ if to_db_bool:
+ self.save_to_db(csv_out_fpath)
+ else:
+ logger.info(f'Raw GRB files date is not today. {"!"*5} DATA NOT SAVED IN DATABASE {"!"*5}')
+
+ stop = datetime.now()
+ utils.calculate_duration(start, stop)
+
+ def sc_main(self) -> None:
+ """
+ Runs NC PQPF data extraction and save the results in database.
+ """
+ start = datetime.now()
+ self.db_connection_test()
+ # Get threshold
+ thresholds = [float(self.config[self.state]['THRESHOLD'])]
+
+ # Get data
+ utils.delete_grbs(self.grb_raw_dir)
+ files = self.get_files_to_download()
+ self.download_grbs(files)
+ to_db_bool = self.check_grb_files()
+
+ # Process data
+ self.small_grb()
+ self.grb_to_tiff(thresholds)
+ self.tiff_resample()
+
+ # Save data to DB
+ csv_path = self.zonal_stats_to_csv()
+ if to_db_bool:
+ self.save_to_db(csv_path)
+ else:
+ logger.info(f'Raw GRB files date is not today. {"!"*5} DATA NOT SAVED IN DATABASE {"!"*5}')
+ stop = datetime.now()
+ utils.calculate_duration(start, stop)
diff --git a/shellcast-analysis/src/pqpf/utils.py b/shellcast-analysis/src/pqpf/utils.py
new file mode 100644
index 0000000..dc0eb25
--- /dev/null
+++ b/shellcast-analysis/src/pqpf/utils.py
@@ -0,0 +1,184 @@
+import os
+import sys
+import subprocess
+import smtplib
+import ssl
+import codecs
+import shutil
+import re
+import logging
+import configparser
+from typing import List
+from email.message import EmailMessage
+import constants as ct
+
+config = configparser.ConfigParser()
+config.read(ct.CONFIG_INI)
+
+done_str = f'{"*"*10} Done {"*"*10}\n'
+logger = logging.getLogger(__name__)
+
+
+def error_log(err):
+ trace = []
+ tb = err.__traceback__
+ while tb is not None:
+ path = os.path.normpath(tb.tb_frame.f_code.co_filename)
+ path_last_two_level = '/'.join(path.split(os.sep)[-2:])
+ trace.append({
+ "filename": path_last_two_level,
+ "name": tb.tb_frame.f_code.co_name,
+ "line": tb.tb_lineno
+ })
+ tb = tb.tb_next
+ last_trace = trace[-1]
+ msg = f'{type(err).__name__}\t{last_trace["filename"]}:{last_trace["line"]}\n\t{str(err)}'
+ logger.error(msg)
+
+
+def error_process(state, message, error):
+ logger.error(message)
+ error_log(error)
+ send_email(state, message)
+ sys.exit(1)
+
+
+def get_connection_string(config_db, db_name):
+ connect_string = 'mysql+pymysql://{}:{}@{}:{}/{}'.format(
+ config_db['DB_USER'],
+ config_db['DB_PASS'],
+ config_db['HOST'],
+ config_db['PORT'],
+ db_name)
+ return connect_string
+
+
+def create_directory(directory: str, delete=False) -> str:
+ exists = os.path.exists(directory)
+ if exists:
+ if delete:
+ delete_files(directory)
+ elif not exists:
+ os.makedirs(directory)
+ return directory
+
+
+def delete_files(directory: str) -> None:
+ files = os.listdir(directory)
+ if len(files) > 0:
+ for fname in os.listdir(directory):
+ fpath = os.path.join(directory, fname)
+ try:
+ shutil.rmtree(fpath)
+ except OSError:
+ os.remove(fpath)
+
+
+def cmd_subprocess(cmd: List[str]) -> None:
+ """
+ Runs CMD
+ Args:
+ cmd (List[str]): Commands in list format.
+ """
+ try:
+ proc = subprocess.Popen(
+ cmd,
+ stderr=subprocess.PIPE,
+ stdout=subprocess.PIPE
+ )
+ out, err = proc.communicate()
+ # logger.info(codecs.decode(out, 'UTF-8'))
+ rc = proc.returncode
+ except Exception as e:
+ error_log(logger, e)
+ else:
+ if rc:
+ error_log(logger, err)
+ logger.error(codecs.decode(err, 'UTF-8'))
+ logger.error('PROCESS INCOMPLETE')
+ sys.exit(1)
+
+
+def regex_find(regex: str, text: str) -> List[str]:
+ """
+ Perform regex pattern search "findall".
+ Args:
+ regex (str): Regex pattern
+ text (str): Text
+
+ Returns (List[str}): List of matched strings when there are matches, otherwise returns None.
+
+ """
+ pattern = re.compile(regex)
+ match = pattern.findall(text)
+ if len(match) > 0:
+ return match
+
+
+def list_grbs_not_today(file_dir: str) -> List[str]:
+ """
+ Finds dated GRB and other than GRB files.
+ Args:
+ file_dir (srt): File directory
+ """
+ files = []
+ for f in os.listdir(file_dir):
+ if f.endswith('grb'):
+ match = regex_find(ct.REG_PATTERN_TODAY, f)
+ if match is None: # GRB not today's data
+ files.append(f)
+ else: # File not GRB
+ files.append(f)
+ return files
+
+
+def delete_grbs(file_dir: str) -> None:
+ """
+ Deletes outdated GRB and other than GRB files.
+ Args:
+ file_dir (str): Directory for raw GRB files.
+ """
+ logger.info('[Delete GRB files other than today\'s data]')
+ files = list_grbs_not_today(file_dir)
+ if len(files) > 0:
+ for f in files:
+ fpath = os.path.join(file_dir, f)
+ if os.path.isdir(fpath):
+ shutil.rmtree(fpath)
+ logger.info(f'{f} directory deleted.')
+ elif os.path.isfile(fpath):
+ os.remove(fpath)
+ logger.info(f'{f} deleted.')
+ else:
+ logger.info(f'No data to delete.')
+ logger.info(done_str)
+
+
+def list_files(f_dir, ext):
+ files = [os.path.join(f_dir, f) for f in os.listdir(f_dir) if f.endswith(ext)]
+ return files
+
+
+def send_email(state, message):
+ try:
+ notif = config['Notification']
+ em = EmailMessage()
+ em['From'] = notif['EMAIL_SENDER']
+ em['To'] = notif['EMAIL_RECEIVER']
+ em['Subject'] = f'{state} {notif["EMAIL_SUBJECT"]}'
+ em.set_content(message)
+ context = ssl.create_default_context()
+ with smtplib.SMTP_SSL('smtp.gmail.com', 465, context=context) as smtp:
+ smtp.login(notif['EMAIL_SENDER'], notif['GMAIL_API_CREDENTIAL'])
+ smtp.sendmail(notif['EMAIL_SENDER'], notif['EMAIL_RECEIVER'], em.as_string())
+ except Exception as e:
+ error_log(logger, e)
+ exit(1)
+
+
+def calculate_duration(start, stop):
+ elapsed = stop - start
+ logger.info(f'Start:\t{start}')
+ logger.info(f'End:\t\t{stop}')
+ logger.info(f'Duration: {elapsed}')
+