diff --git a/.github/workflows/buildings-example-test.yaml b/.github/workflows/buildings-example-test.yaml index 724e1151..7cfd36e5 100644 --- a/.github/workflows/buildings-example-test.yaml +++ b/.github/workflows/buildings-example-test.yaml @@ -30,9 +30,7 @@ jobs: # https://dvc.org/doc/user-guide/setup-google-drive-remote#authorization GDRIVE_CREDENTIALS_DATA: ${{ secrets.GDRIVE_CREDENTIALS_DATA }} run: | - dvc pull $(openmapflow datapath PROCESSED_LABELS) -f - dvc pull $(openmapflow datapath COMPRESSED_FEATURES) -f - tar -xvzf $(openmapflow datapath COMPRESSED_FEATURES) -C data/ + dvc pull $(openmapflow datapath DATASETS) -f dvc pull $(openmapflow datapath MODELS) -f - name: Integration test - Project diff --git a/.github/workflows/crop-mask-example-test.yaml b/.github/workflows/crop-mask-example-test.yaml index 360317b3..d5b9c7d9 100644 --- a/.github/workflows/crop-mask-example-test.yaml +++ b/.github/workflows/crop-mask-example-test.yaml @@ -30,9 +30,7 @@ jobs: # https://dvc.org/doc/user-guide/setup-google-drive-remote#authorization GDRIVE_CREDENTIALS_DATA: ${{ secrets.GDRIVE_CREDENTIALS_DATA }} run: | - dvc pull $(openmapflow datapath PROCESSED_LABELS) -f - dvc pull $(openmapflow datapath COMPRESSED_FEATURES) -f - tar -xvzf $(openmapflow datapath COMPRESSED_FEATURES) -C data/ + dvc pull $(openmapflow datapath DATASETS) -f dvc pull $(openmapflow datapath MODELS) -f - name: Integration test - Project diff --git a/.github/workflows/maize-example-test.yaml b/.github/workflows/maize-example-test.yaml index 7e6f20e5..bf5c1f46 100644 --- a/.github/workflows/maize-example-test.yaml +++ b/.github/workflows/maize-example-test.yaml @@ -30,9 +30,7 @@ jobs: # https://dvc.org/doc/user-guide/setup-google-drive-remote#authorization GDRIVE_CREDENTIALS_DATA: ${{ secrets.GDRIVE_CREDENTIALS_DATA }} run: | - dvc pull $(openmapflow datapath PROCESSED_LABELS) -f - dvc pull $(openmapflow datapath COMPRESSED_FEATURES) -f - tar -xvzf $(openmapflow datapath COMPRESSED_FEATURES) -C data/ + dvc pull $(openmapflow datapath DATASETS) -f dvc pull $(openmapflow datapath MODELS) -f - name: Integration test - Project diff --git a/README.md b/README.md index a1ed974a..ca314821 100644 --- a/README.md +++ b/README.md @@ -88,19 +88,22 @@ After all configuration is set, the following project structure will be generate │ └─── data │ raw_labels/ # User added labels - │ processed_labels/ # Labels standardized to common format - │ features/ # Labels combined with satellite data - │ compressed_features.tar.gz # Allows faster features downloads - │ models/ # Models trained using features + │ datasets/ # ML ready datasets (labels + earth observation data) + │ models/ # Models trained using datasets | raw_labels.dvc # Reference to a version of raw_labels/ - | processed_labels.dvc # Reference to a version of processed_labels/ - │ compressed_features.tar.gz.dvc # Reference to a version of features/ + | datasets.dvc # Reference to a version of datasets/ │ models.dvc # Reference to a version of models/ ``` This project contains all the code necessary for: Adding data ➞ Training a model ➞ Creating a map. +**Important:** When code is pushed to the repository a Github action will be run to verify project configuration, data integrity, and script functionality. This action will pull data using dvc and thereby needs access to remote storage (your Google Drive). To allow the Github action to access the data add a new repository secret ([instructions](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository)). +- In step 5 of the instructions, name the secret: `GDRIVE_CREDENTIALS_DATA` +- In step 6, enter the value in .dvc/tmp/gdrive-user-creditnals.json (in your repository) + +After this the Github action should successfully run. + ## Adding data [![cb]](https://colab.research.google.com/github/nasaharvest/openmapflow/blob/main/openmapflow/notebooks/new_data.ipynb) @@ -134,25 +137,20 @@ datasets = [ ... ] ``` -Run feature creation: +Run dataset creation: ```bash earthengine authenticate # For getting new earth observation data gcloud auth login # For getting cached earth observation data -openmapflow create-features # Initiatiates or checks progress of features creation +openmapflow create-dataset # Initiatiates or checks progress of dataset creation openmapflow datasets # Shows the status of datasets dvc commit && dvc push # Push new data to data version control git add . -git commit -m'Created new features' +git commit -m'Created new dataset' git push ``` -**Important:** When new data is pushed to the repository a Github action will be run to verify data integrity. This action will pull data using dvc and thereby needs access to remote storage (your Google Drive). To allow the Github action to access the data add a new repository secret ([instructions](https://docs.github.com/en/actions/security-guides/encrypted-secrets#creating-encrypted-secrets-for-a-repository)). -- In step 5 of the instructions, name the secret: `GDRIVE_CREDENTIALS_DATA` -- In step 6, enter the value in .dvc/tmp/gdrive-user-creditnals.json (in your repository) - -After this the Github action should successfully run if the data is valid. ## Training a model [![cb]](https://colab.research.google.com/github/nasaharvest/openmapflow/blob/main/openmapflow/notebooks/train.ipynb) diff --git a/buildings-example/data/.gitignore b/buildings-example/data/.gitignore index ad0870f4..68ce2c1c 100644 --- a/buildings-example/data/.gitignore +++ b/buildings-example/data/.gitignore @@ -1,5 +1,3 @@ +/datasets /raw_labels -/processed_labels -/compressed_features.tar.gz /models -/features diff --git a/buildings-example/data/compressed_features.tar.gz.dvc b/buildings-example/data/compressed_features.tar.gz.dvc deleted file mode 100644 index 7762153a..00000000 --- a/buildings-example/data/compressed_features.tar.gz.dvc +++ /dev/null @@ -1,4 +0,0 @@ -outs: -- md5: 05edf263c796888177b0e820456639f4 - size: 32790215 - path: compressed_features.tar.gz diff --git a/buildings-example/data/datasets.dvc b/buildings-example/data/datasets.dvc new file mode 100644 index 00000000..e4a3924e --- /dev/null +++ b/buildings-example/data/datasets.dvc @@ -0,0 +1,5 @@ +outs: +- md5: db853058c80b597bb44bfc0ecf37866f.dir + size: 121467360 + nfiles: 2 + path: datasets diff --git a/buildings-example/data/duplicates.txt b/buildings-example/data/duplicates.txt deleted file mode 100644 index 06a2faba..00000000 --- a/buildings-example/data/duplicates.txt +++ /dev/null @@ -1,4 +0,0 @@ -lat=1.53637558_lon=30.17155066_date=2020-01-01_2021-12-31 -lat=0.72933228_lon=33.38485144_date=2020-01-01_2021-12-31 -lat=0.65960022_lon=34.29797232_date=2020-01-01_2021-12-31 -lat=0.07165738_lon=34.26872182_date=2020-01-01_2021-12-31 \ No newline at end of file diff --git a/buildings-example/data/missing.txt b/buildings-example/data/missing.txt deleted file mode 100644 index 61b5d7d5..00000000 --- a/buildings-example/data/missing.txt +++ /dev/null @@ -1,133 +0,0 @@ - -lat=-14.54761905_lon=47.75_date=2017-01-01_2018-12-31 -lat=-12.34821429_lon=26.55059524_date=2017-01-01_2018-12-31 -lat=2.25_lon=45.65178571_date=2017-01-01_2018-12-31 -lat=-4.34821429_lon=39.55059524_date=2017-01-01_2018-12-31 -lat=5.25_lon=-3.34821429_date=2017-01-01_2018-12-31 -lat=8.95238095_lon=16.75_date=2017-01-01_2018-12-31 -lat=35.65178571_lon=10.95238095_date=2017-01-01_2018-12-31 -lat=54.45238095_lon=-5.75_date=2017-01-01_2018-12-31 -lat=40.45238095_lon=27.25_date=2017-01-01_2018-12-31 -lat=18.45238095_lon=-92.75_date=2017-01-01_2018-12-31 -lat=37.45238095_lon=122.25_date=2017-01-01_2018-12-31 -lat=51.45238095_lon=4.25_date=2017-01-01_2018-12-31 -lat=18.95238095_lon=-73.25_date=2017-01-01_2018-12-31 -lat=13.95238095_lon=-91.25_date=2017-01-01_2018-12-31 -lat=15.95238095_lon=-61.25_date=2017-01-01_2018-12-31 -lat=16.45238095_lon=96.25_date=2017-01-01_2018-12-31 -lat=-33.54761905_lon=137.25_date=2017-01-01_2018-12-31 -lat=54.45238095_lon=11.25_date=2017-01-01_2018-12-31 -lat=-28.54761905_lon=-52.75_date=2017-01-01_2018-12-31 -lat=-0.54761905_lon=130.25_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=44.25_date=2017-01-01_2018-12-31 -lat=9.95238095_lon=-62.25_date=2017-01-01_2018-12-31 -lat=9.95238095_lon=122.75_date=2017-01-01_2018-12-31 -lat=4.95238095_lon=97.75_date=2017-01-01_2018-12-31 -lat=44.95238095_lon=14.75_date=2017-01-01_2018-12-31 -lat=37.95238095_lon=128.75_date=2017-01-01_2018-12-31 -lat=-10.04761905_lon=151.25_date=2017-01-01_2018-12-31 -lat=-2.04761905_lon=119.25_date=2017-01-01_2018-12-31 -lat=10.25_lon=124.952381_date=2017-01-01_2018-12-31 -lat=-5.75_lon=123.952381_date=2017-01-01_2018-12-31 -lat=54.95238095_lon=20.25_date=2017-01-01_2018-12-31 -lat=41.25_lon=140.952381_date=2017-01-01_2018-12-31 -lat=-41.75_lon=-73.04761905_date=2017-01-01_2018-12-31 -lat=41.25_lon=-70.04761905_date=2017-01-01_2018-12-31 -lat=37.25_lon=118.952381_date=2017-01-01_2018-12-31 -lat=7.65178571_lon=126.5505952_date=2017-01-01_2018-12-31 -lat=19.95238095_lon=109.75_date=2017-01-01_2018-12-31 -lat=-24.04761905_lon=151.75_date=2017-01-01_2018-12-31 -lat=22.95238095_lon=-83.25_date=2017-01-01_2018-12-31 -lat=37.95238095_lon=24.75_date=2017-01-01_2018-12-31 -lat=-43.04761905_lon=147.75_date=2017-01-01_2018-12-31 -lat=35.95238095_lon=27.75_date=2017-01-01_2018-12-31 -lat=35.95238095_lon=-76.25_date=2017-01-01_2018-12-31 -lat=-53.04761905_lon=-71.25_date=2017-01-01_2018-12-31 -lat=10.45238095_lon=124.75_date=2017-01-01_2018-12-31 -lat=-10.54761905_lon=121.75_date=2017-01-01_2018-12-31 -lat=-7.54761905_lon=112.75_date=2017-01-01_2018-12-31 -lat=56.45238095_lon=12.75_date=2017-01-01_2018-12-31 -lat=19.45238095_lon=110.75_date=2017-01-01_2018-12-31 -lat=49.45238095_lon=-1.25_date=2017-01-01_2018-12-31 -lat=-3.04761905_lon=-39.75_date=2017-01-01_2018-12-31 -lat=10.95238095_lon=123.25_date=2017-01-01_2018-12-31 -lat=-39.04761905_lon=174.25_date=2017-01-01_2018-12-31 -lat=-38.04761905_lon=177.25_date=2017-01-01_2018-12-31 -lat=54.95238095_lon=21.25_date=2017-01-01_2018-12-31 -lat=28.95238095_lon=-13.75_date=2017-01-01_2018-12-31 -lat=28.25_lon=-14.04761905_date=2017-01-01_2018-12-31 -lat=-8.75_lon=117.952381_date=2017-01-01_2018-12-31 -lat=20.25_lon=92.95238095_date=2017-01-01_2018-12-31 -lat=58.95238095_lon=-2.75_date=2017-01-01_2018-12-31 -lat=55.95238095_lon=10.25_date=2017-01-01_2018-12-31 -lat=29.25_lon=121.952381_date=2017-01-01_2018-12-31 -lat=29.25_lon=-95.04761905_date=2017-01-01_2018-12-31 -lat=-8.34821429_lon=115.5505952_date=2017-01-01_2018-12-31 -lat=26.65178571_lon=119.5505952_date=2017-01-01_2018-12-31 -lat=8.65178571_lon=-83.44940476_date=2017-01-01_2018-12-31 -lat=18.65178571_lon=-95.44940476_date=2017-01-01_2018-12-31 -lat=18.65178571_lon=-68.44940476_date=2017-01-01_2018-12-31 -lat=53.25_lon=6.95238095_date=2017-01-01_2018-12-31 -lat=54.25_lon=-10.04761905_date=2017-01-01_2018-12-31 -lat=57.25_lon=10.95238095_date=2017-01-01_2018-12-31 -lat=53.25_lon=124.952381_date=2017-01-01_2018-12-31 -lat=54.25_lon=-9.04761905_date=2017-01-01_2018-12-31 -lat=-2.84821429_lon=-40.54761905_date=2017-01-01_2018-12-31 -lat=-14.84821429_lon=128.452381_date=2017-01-01_2018-12-31 -lat=0.15178571_lon=117.452381_date=2017-01-01_2018-12-31 -lat=60.25_lon=16.95238095_date=2017-01-01_2018-12-31 -lat=60.25_lon=40.95238095_date=2017-01-01_2018-12-31 -lat=-8.34821429_lon=126.952381_date=2017-01-01_2018-12-31 -lat=3.65178571_lon=98.95238095_date=2017-01-01_2018-12-31 -lat=-8.34821429_lon=118.952381_date=2017-01-01_2018-12-31 -lat=37.15178571_lon=24.45238095_date=2017-01-01_2018-12-31 -lat=41.15178571_lon=-102.547619_date=2017-01-01_2018-12-31 -lat=46.15178571_lon=143.452381_date=2017-01-01_2018-12-31 -lat=50.15178571_lon=-5.54761905_date=2017-01-01_2018-12-31 -lat=23.65178571_lon=57.95238095_date=2017-01-01_2018-12-31 -lat=19.65178571_lon=-70.04761905_date=2017-01-01_2018-12-31 -lat=9.25_lon=105.6517857_date=2017-01-01_2018-12-31 -lat=37.65178571_lon=140.952381_date=2017-01-01_2018-12-31 -lat=41.65178571_lon=122.952381_date=2017-01-01_2018-12-31 -lat=-4.25_lon=120.3511905_date=2017-01-01_2018-12-31 -lat=24.75_lon=125.3511905_date=2017-01-01_2018-12-31 -lat=-14.84821429_lon=145.1517857_date=2017-01-01_2018-12-31 -lat=18.15178571_lon=-73.84821429_date=2017-01-01_2018-12-31 -lat=57.65178571_lon=-2.04761905_date=2017-01-01_2018-12-31 -lat=39.75_lon=119.3511905_date=2017-01-01_2018-12-31 -lat=26.75_lon=-109.6488095_date=2017-01-01_2018-12-31 -lat=13.45238095_lon=80.25_date=2017-01-01_2018-12-31 -lat=47.45238095_lon=36.25_date=2017-01-01_2018-12-31 -lat=11.95238095_lon=123.75_date=2017-01-01_2018-12-31 -lat=-28.04761905_lon=-54.25_date=2017-01-01_2018-12-31 -lat=7.95238095_lon=79.75_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=24.75_date=2017-01-01_2018-12-31 -lat=53.95238095_lon=-0.25_date=2017-01-01_2018-12-31 -lat=54.95238095_lon=11.75_date=2017-01-01_2018-12-31 -lat=54.95238095_lon=10.75_date=2017-01-01_2018-12-31 -lat=37.95238095_lon=13.75_date=2017-01-01_2018-12-31 -lat=54.95238095_lon=8.75_date=2017-01-01_2018-12-31 -lat=53.95238095_lon=10.75_date=2017-01-01_2018-12-31 -lat=18.45238095_lon=-66.25_date=2017-01-01_2018-12-31 -lat=22.45238095_lon=-84.25_date=2017-01-01_2018-12-31 -lat=53.45238095_lon=6.75_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=17.25_date=2017-01-01_2018-12-31 -lat=15.95238095_lon=108.25_date=2017-01-01_2018-12-31 -lat=-6.04761905_lon=106.25_date=2017-01-01_2018-12-31 -lat=2.95238095_lon=112.25_date=2017-01-01_2018-12-31 -lat=59.45238095_lon=16.75_date=2017-01-01_2018-12-31 -lat=39.95238095_lon=25.25_date=2017-01-01_2018-12-31 -lat=49.95238095_lon=1.25_date=2017-01-01_2018-12-31 -lat=54.95238095_lon=11.25_date=2017-01-01_2018-12-31 -lat=39.95238095_lon=26.25_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=-72.75_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=7.25_date=2017-01-01_2018-12-31 -lat=37.95238095_lon=21.25_date=2017-01-01_2018-12-31 -lat=-6.34821429_lon=39.55059524_date=2017-01-01_2018-12-31 -lat=14.65178571_lon=120.5505952_date=2017-01-01_2018-12-31 -lat=9.65178571_lon=106.5505952_date=2017-01-01_2018-12-31 -lat=8.95238095_lon=-76.25_date=2017-01-01_2018-12-31 -lat=-19.04761905_lon=-39.75_date=2017-01-01_2018-12-31 -lat=-2.34821429_lon=116.5505952_date=2017-01-01_2018-12-31 -lat=2.65178571_lon=99.95238095_date=2017-01-01_2018-12-31 -lat=13.25_lon=99.95238095_date=2017-01-01_2018-12-31 \ No newline at end of file diff --git a/buildings-example/data/processed_labels.dvc b/buildings-example/data/processed_labels.dvc deleted file mode 100644 index 08df1147..00000000 --- a/buildings-example/data/processed_labels.dvc +++ /dev/null @@ -1,5 +0,0 @@ -outs: -- md5: 5b52576e68a655cc8c02a3f95a93b55c.dir - size: 3837841 - nfiles: 3 - path: processed_labels diff --git a/buildings-example/data/datasets.txt b/buildings-example/data/report.txt similarity index 79% rename from buildings-example/data/datasets.txt rename to buildings-example/data/report.txt index adc2041c..00dae13a 100644 --- a/buildings-example/data/datasets.txt +++ b/buildings-example/data/report.txt @@ -2,18 +2,20 @@ DATASET REPORT (autogenerated, do not edit directly) Uganda_buildings_2020 (Timesteps: 24) ---------------------------------------------------------------------------- +eo_data_complete 8117 +eo_data_duplicate 4 ✔ training amount: 6445, positive class: 100.0% -✔ testing amount: 848, positive class: 100.0% ✔ validation amount: 824, positive class: 100.0% +✔ testing amount: 848, positive class: 100.0% + geowiki_landcover_2017 (Timesteps: 24) ---------------------------------------------------------------------------- +eo_data_complete 13993 +eo_data_export_failed 242 +eo_data_missing_values 132 ✔ training amount: 12582, positive class: 0.0% ✔ validation amount: 743, positive class: 0.0% ✔ testing amount: 668, positive class: 0.0% - -All data: -✔ Found no empty features -✔ No duplicates found \ No newline at end of file diff --git a/buildings-example/data/unexported.txt b/buildings-example/data/unexported.txt deleted file mode 100644 index 25d7889f..00000000 --- a/buildings-example/data/unexported.txt +++ /dev/null @@ -1,242 +0,0 @@ -lat=-15.04761905_lon=13.75_date=2017-01-01_2018-12-31 -lat=-14.54761905_lon=14.75_date=2017-01-01_2018-12-31 -lat=-14.75_lon=14.95238095_date=2017-01-01_2018-12-31 -lat=5.65178571_lon=-0.44940476_date=2017-01-01_2018-12-31 -lat=13.95238095_lon=34.75_date=2017-01-01_2018-12-31 -lat=13.95238095_lon=34.25_date=2017-01-01_2018-12-31 -lat=13.65178571_lon=33.95238095_date=2017-01-01_2018-12-31 -lat=13.65178571_lon=34.95238095_date=2017-01-01_2018-12-31 -lat=12.65178571_lon=33.95238095_date=2017-01-01_2018-12-31 -lat=14.25_lon=34.65178571_date=2017-01-01_2018-12-31 -lat=13.85119048_lon=34.05059524_date=2017-01-01_2018-12-31 -lat=13.65178571_lon=34.55059524_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=-120.75_date=2017-01-01_2018-12-31 -lat=45.45238095_lon=-108.75_date=2017-01-01_2018-12-31 -lat=49.45238095_lon=-107.75_date=2017-01-01_2018-12-31 -lat=-28.54761905_lon=148.25_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=127.25_date=2017-01-01_2018-12-31 -lat=46.45238095_lon=125.25_date=2017-01-01_2018-12-31 -lat=48.45238095_lon=-107.75_date=2017-01-01_2018-12-31 -lat=-26.54761905_lon=148.25_date=2017-01-01_2018-12-31 -lat=-20.54761905_lon=164.25_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=21.25_date=2017-01-01_2018-12-31 -lat=-28.54761905_lon=150.25_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=24.25_date=2017-01-01_2018-12-31 -lat=42.45238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=49.45238095_lon=126.25_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=24.25_date=2017-01-01_2018-12-31 -lat=39.45238095_lon=-110.75_date=2017-01-01_2018-12-31 -lat=65.45238095_lon=21.25_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=22.25_date=2017-01-01_2018-12-31 -lat=-29.04761905_lon=149.75_date=2017-01-01_2018-12-31 -lat=44.95238095_lon=124.75_date=2017-01-01_2018-12-31 -lat=42.45238095_lon=-88.75_date=2017-01-01_2018-12-31 -lat=53.45238095_lon=-105.75_date=2017-01-01_2018-12-31 -lat=-27.54761905_lon=151.25_date=2017-01-01_2018-12-31 -lat=-27.54761905_lon=152.25_date=2017-01-01_2018-12-31 -lat=48.45238095_lon=126.25_date=2017-01-01_2018-12-31 -lat=-27.54761905_lon=150.25_date=2017-01-01_2018-12-31 -lat=13.45238095_lon=34.25_date=2017-01-01_2018-12-31 -lat=5.45238095_lon=-0.75_date=2017-01-01_2018-12-31 -lat=-6.54761905_lon=-69.75_date=2017-01-01_2018-12-31 -lat=-4.04761905_lon=-66.25_date=2017-01-01_2018-12-31 -lat=30.95238095_lon=120.75_date=2017-01-01_2018-12-31 -lat=-16.04761905_lon=14.75_date=2017-01-01_2018-12-31 -lat=-14.04761905_lon=13.75_date=2017-01-01_2018-12-31 -lat=30.95238095_lon=61.75_date=2017-01-01_2018-12-31 -lat=35.95238095_lon=64.75_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=73.75_date=2017-01-01_2018-12-31 -lat=36.45238095_lon=63.75_date=2017-01-01_2018-12-31 -lat=-27.54761905_lon=148.75_date=2017-01-01_2018-12-31 -lat=36.45238095_lon=64.75_date=2017-01-01_2018-12-31 -lat=47.45238095_lon=-108.25_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=-111.75_date=2017-01-01_2018-12-31 -lat=12.95238095_lon=34.25_date=2017-01-01_2018-12-31 -lat=-15.04761905_lon=14.25_date=2017-01-01_2018-12-31 -lat=1.95238095_lon=101.25_date=2017-01-01_2018-12-31 -lat=-16.04761905_lon=14.25_date=2017-01-01_2018-12-31 -lat=-14.04761905_lon=13.25_date=2017-01-01_2018-12-31 -lat=44.95238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=33.95238095_lon=63.25_date=2017-01-01_2018-12-31 -lat=-28.75_lon=147.952381_date=2017-01-01_2018-12-31 -lat=32.25_lon=62.95238095_date=2017-01-01_2018-12-31 -lat=-15.75_lon=13.95238095_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=69.25_date=2017-01-01_2018-12-31 -lat=-28.75_lon=148.952381_date=2017-01-01_2018-12-31 -lat=40.25_lon=-111.047619_date=2017-01-01_2018-12-31 -lat=31.25_lon=61.95238095_date=2017-01-01_2018-12-31 -lat=-14.75_lon=13.95238095_date=2017-01-01_2018-12-31 -lat=-14.34821429_lon=13.55059524_date=2017-01-01_2018-12-31 -lat=-28.34821429_lon=150.5505952_date=2017-01-01_2018-12-31 -lat=52.95238095_lon=117.75_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=-101.25_date=2017-01-01_2018-12-31 -lat=-27.04761905_lon=150.75_date=2017-01-01_2018-12-31 -lat=45.95238095_lon=-109.25_date=2017-01-01_2018-12-31 -lat=65.95238095_lon=29.75_date=2017-01-01_2018-12-31 -lat=-26.04761905_lon=151.75_date=2017-01-01_2018-12-31 -lat=63.95238095_lon=24.75_date=2017-01-01_2018-12-31 -lat=63.95238095_lon=-145.25_date=2017-01-01_2018-12-31 -lat=50.95238095_lon=118.75_date=2017-01-01_2018-12-31 -lat=46.95238095_lon=125.75_date=2017-01-01_2018-12-31 -lat=64.95238095_lon=25.75_date=2017-01-01_2018-12-31 -lat=49.95238095_lon=-107.25_date=2017-01-01_2018-12-31 -lat=-17.54761905_lon=140.75_date=2017-01-01_2018-12-31 -lat=45.45238095_lon=124.75_date=2017-01-01_2018-12-31 -lat=-22.54761905_lon=-46.25_date=2017-01-01_2018-12-31 -lat=61.95238095_lon=21.75_date=2017-01-01_2018-12-31 -lat=51.45238095_lon=118.75_date=2017-01-01_2018-12-31 -lat=49.45238095_lon=-107.25_date=2017-01-01_2018-12-31 -lat=42.45238095_lon=123.75_date=2017-01-01_2018-12-31 -lat=-27.54761905_lon=149.75_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=25.75_date=2017-01-01_2018-12-31 -lat=30.45238095_lon=120.75_date=2017-01-01_2018-12-31 -lat=48.45238095_lon=-108.25_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=119.75_date=2017-01-01_2018-12-31 -lat=28.95238095_lon=121.25_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=40.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=24.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=29.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=23.75_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=26.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=25.75_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=22.75_date=2017-01-01_2018-12-31 -lat=48.95238095_lon=-107.75_date=2017-01-01_2018-12-31 -lat=46.95238095_lon=125.25_date=2017-01-01_2018-12-31 -lat=41.95238095_lon=-88.75_date=2017-01-01_2018-12-31 -lat=50.95238095_lon=127.25_date=2017-01-01_2018-12-31 -lat=-28.75_lon=152.952381_date=2017-01-01_2018-12-31 -lat=-28.75_lon=149.952381_date=2017-01-01_2018-12-31 -lat=-24.75_lon=149.952381_date=2017-01-01_2018-12-31 -lat=-25.75_lon=151.952381_date=2017-01-01_2018-12-31 -lat=-26.75_lon=150.952381_date=2017-01-01_2018-12-31 -lat=63.95238095_lon=25.25_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=50.25_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=25.25_date=2017-01-01_2018-12-31 -lat=47.95238095_lon=-56.75_date=2017-01-01_2018-12-31 -lat=-28.75_lon=150.952381_date=2017-01-01_2018-12-31 -lat=42.25_lon=123.952381_date=2017-01-01_2018-12-31 -lat=50.25_lon=119.952381_date=2017-01-01_2018-12-31 -lat=-28.75_lon=151.952381_date=2017-01-01_2018-12-31 -lat=-27.75_lon=149.952381_date=2017-01-01_2018-12-31 -lat=65.95238095_lon=21.25_date=2017-01-01_2018-12-31 -lat=50.25_lon=-107.047619_date=2017-01-01_2018-12-31 -lat=46.25_lon=-63.04761905_date=2017-01-01_2018-12-31 -lat=61.25_lon=23.95238095_date=2017-01-01_2018-12-31 -lat=52.25_lon=116.952381_date=2017-01-01_2018-12-31 -lat=51.25_lon=118.952381_date=2017-01-01_2018-12-31 -lat=46.25_lon=-109.047619_date=2017-01-01_2018-12-31 -lat=-27.34821429_lon=151.5505952_date=2017-01-01_2018-12-31 -lat=42.65178571_lon=-110.4494048_date=2017-01-01_2018-12-31 -lat=42.65178571_lon=124.5505952_date=2017-01-01_2018-12-31 -lat=31.65178571_lon=121.5505952_date=2017-01-01_2018-12-31 -lat=-27.34821429_lon=150.5505952_date=2017-01-01_2018-12-31 -lat=-5.84821429_lon=143.452381_date=2017-01-01_2018-12-31 -lat=-3.84821429_lon=136.452381_date=2017-01-01_2018-12-31 -lat=-26.84821429_lon=150.452381_date=2017-01-01_2018-12-31 -lat=64.25_lon=26.95238095_date=2017-01-01_2018-12-31 -lat=64.25_lon=24.95238095_date=2017-01-01_2018-12-31 -lat=63.25_lon=22.95238095_date=2017-01-01_2018-12-31 -lat=39.65178571_lon=-110.4494048_date=2017-01-01_2018-12-31 -lat=48.65178571_lon=-107.4494048_date=2017-01-01_2018-12-31 -lat=45.65178571_lon=124.5505952_date=2017-01-01_2018-12-31 -lat=-28.84821429_lon=150.452381_date=2017-01-01_2018-12-31 -lat=-26.84821429_lon=151.452381_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=41.55059524_date=2017-01-01_2018-12-31 -lat=61.65178571_lon=29.55059524_date=2017-01-01_2018-12-31 -lat=50.65178571_lon=119.5505952_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=27.55059524_date=2017-01-01_2018-12-31 -lat=61.65178571_lon=30.55059524_date=2017-01-01_2018-12-31 -lat=62.65178571_lon=23.55059524_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=25.55059524_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=23.55059524_date=2017-01-01_2018-12-31 -lat=63.65178571_lon=18.55059524_date=2017-01-01_2018-12-31 -lat=61.65178571_lon=22.55059524_date=2017-01-01_2018-12-31 -lat=42.15178571_lon=124.452381_date=2017-01-01_2018-12-31 -lat=31.65178571_lon=120.952381_date=2017-01-01_2018-12-31 -lat=63.15178571_lon=27.45238095_date=2017-01-01_2018-12-31 -lat=51.15178571_lon=127.452381_date=2017-01-01_2018-12-31 -lat=49.15178571_lon=126.452381_date=2017-01-01_2018-12-31 -lat=50.15178571_lon=119.452381_date=2017-01-01_2018-12-31 -lat=45.65178571_lon=124.952381_date=2017-01-01_2018-12-31 -lat=30.65178571_lon=120.952381_date=2017-01-01_2018-12-31 -lat=41.65178571_lon=-110.047619_date=2017-01-01_2018-12-31 -lat=-27.75_lon=152.6517857_date=2017-01-01_2018-12-31 -lat=-28.75_lon=150.6517857_date=2017-01-01_2018-12-31 -lat=-26.75_lon=148.6517857_date=2017-01-01_2018-12-31 -lat=60.15178571_lon=13.45238095_date=2017-01-01_2018-12-31 -lat=64.15178571_lon=26.45238095_date=2017-01-01_2018-12-31 -lat=62.15178571_lon=21.45238095_date=2017-01-01_2018-12-31 -lat=62.15178571_lon=30.45238095_date=2017-01-01_2018-12-31 -lat=61.15178571_lon=46.45238095_date=2017-01-01_2018-12-31 -lat=62.15178571_lon=25.45238095_date=2017-01-01_2018-12-31 -lat=48.65178571_lon=-54.04761905_date=2017-01-01_2018-12-31 -lat=42.25_lon=123.6517857_date=2017-01-01_2018-12-31 -lat=41.25_lon=-110.3482143_date=2017-01-01_2018-12-31 -lat=42.25_lon=-110.3482143_date=2017-01-01_2018-12-31 -lat=39.25_lon=-111.3482143_date=2017-01-01_2018-12-31 -lat=-27.25_lon=151.3511905_date=2017-01-01_2018-12-31 -lat=-25.25_lon=152.3511905_date=2017-01-01_2018-12-31 -lat=-29.25_lon=149.3511905_date=2017-01-01_2018-12-31 -lat=63.65178571_lon=22.95238095_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=22.95238095_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=25.95238095_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=21.95238095_date=2017-01-01_2018-12-31 -lat=46.25_lon=-63.34821429_date=2017-01-01_2018-12-31 -lat=50.25_lon=118.6517857_date=2017-01-01_2018-12-31 -lat=42.75_lon=-109.6488095_date=2017-01-01_2018-12-31 -lat=31.75_lon=121.3511905_date=2017-01-01_2018-12-31 -lat=37.75_lon=-25.64880952_date=2017-01-01_2018-12-31 -lat=-27.25_lon=150.3511905_date=2017-01-01_2018-12-31 -lat=39.75_lon=-110.6488095_date=2017-01-01_2018-12-31 -lat=-24.84821429_lon=151.1517857_date=2017-01-01_2018-12-31 -lat=30.15178571_lon=121.1517857_date=2017-01-01_2018-12-31 -lat=47.45238095_lon=126.25_date=2017-01-01_2018-12-31 -lat=41.45238095_lon=-88.75_date=2017-01-01_2018-12-31 -lat=43.45238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=51.45238095_lon=-106.75_date=2017-01-01_2018-12-31 -lat=42.95238095_lon=123.75_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=-88.25_date=2017-01-01_2018-12-31 -lat=-28.04761905_lon=150.75_date=2017-01-01_2018-12-31 -lat=31.95238095_lon=121.75_date=2017-01-01_2018-12-31 -lat=47.95238095_lon=125.75_date=2017-01-01_2018-12-31 -lat=48.95238095_lon=126.75_date=2017-01-01_2018-12-31 -lat=45.95238095_lon=124.75_date=2017-01-01_2018-12-31 -lat=43.95238095_lon=124.75_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=22.75_date=2017-01-01_2018-12-31 -lat=49.95238095_lon=117.75_date=2017-01-01_2018-12-31 -lat=51.95238095_lon=-106.25_date=2017-01-01_2018-12-31 -lat=13.45238095_lon=34.75_date=2017-01-01_2018-12-31 -lat=13.45238095_lon=33.75_date=2017-01-01_2018-12-31 -lat=-29.54761905_lon=148.75_date=2017-01-01_2018-12-31 -lat=43.45238095_lon=124.75_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=118.75_date=2017-01-01_2018-12-31 -lat=43.45238095_lon=123.75_date=2017-01-01_2018-12-31 -lat=-28.54761905_lon=148.75_date=2017-01-01_2018-12-31 -lat=47.45238095_lon=125.75_date=2017-01-01_2018-12-31 -lat=46.45238095_lon=125.75_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=-107.25_date=2017-01-01_2018-12-31 -lat=-27.04761905_lon=151.25_date=2017-01-01_2018-12-31 -lat=13.95238095_lon=35.25_date=2017-01-01_2018-12-31 -lat=52.45238095_lon=-106.25_date=2017-01-01_2018-12-31 -lat=44.95238095_lon=125.25_date=2017-01-01_2018-12-31 -lat=-27.04761905_lon=149.25_date=2017-01-01_2018-12-31 -lat=31.95238095_lon=121.25_date=2017-01-01_2018-12-31 -lat=41.95238095_lon=123.25_date=2017-01-01_2018-12-31 -lat=42.95238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=-87.75_date=2017-01-01_2018-12-31 -lat=-29.04761905_lon=150.25_date=2017-01-01_2018-12-31 -lat=-25.04761905_lon=152.25_date=2017-01-01_2018-12-31 -lat=43.95238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=46.95238095_lon=-108.75_date=2017-01-01_2018-12-31 -lat=14.25_lon=33.95238095_date=2017-01-01_2018-12-31 -lat=14.25_lon=34.95238095_date=2017-01-01_2018-12-31 -lat=-27.75_lon=151.952381_date=2017-01-01_2018-12-31 -lat=13.25_lon=33.95238095_date=2017-01-01_2018-12-31 -lat=42.95238095_lon=-88.75_date=2017-01-01_2018-12-31 -lat=50.95238095_lon=-106.75_date=2017-01-01_2018-12-31 -lat=45.95238095_lon=125.25_date=2017-01-01_2018-12-31 -lat=41.25_lon=-88.04761905_date=2017-01-01_2018-12-31 -lat=34.25_lon=62.95238095_date=2017-01-01_2018-12-31 -lat=43.25_lon=123.952381_date=2017-01-01_2018-12-31 -lat=45.25_lon=124.952381_date=2017-01-01_2018-12-31 -lat=12.65178571_lon=34.55059524_date=2017-01-01_2018-12-31 \ No newline at end of file diff --git a/buildings-example/datasets.py b/buildings-example/datasets.py index 163d56e2..205168b4 100644 --- a/buildings-example/datasets.py +++ b/buildings-example/datasets.py @@ -3,8 +3,7 @@ """ from typing import List -from openmapflow.features import create_features -from openmapflow.labeled_dataset import LabeledDataset +from openmapflow.labeled_dataset import LabeledDataset, create_datasets from openmapflow.raw_labels import RawLabels datasets: List[LabeledDataset] = [ @@ -42,4 +41,4 @@ ] if __name__ == "__main__": - create_features(datasets) + create_datasets(datasets) diff --git a/buildings-example/evaluate.py b/buildings-example/evaluate.py index 4678caf7..bb7ada51 100644 --- a/buildings-example/evaluate.py +++ b/buildings-example/evaluate.py @@ -40,7 +40,7 @@ model_path = model_path_from_name(model_name=model_name) # ------------ Dataloaders ------------------------------------- -df = pd.concat([d.load_labels() for d in datasets]) +df = pd.concat([d.load_df() for d in datasets]) test_data = PyTorchDataset( df=df[df[SUBSET] == "testing"], start_month=start_month, subset="testing" ) diff --git a/buildings-example/openmapflow.yaml b/buildings-example/openmapflow.yaml index cde7b8cd..2ee9550f 100644 --- a/buildings-example/openmapflow.yaml +++ b/buildings-example/openmapflow.yaml @@ -1,10 +1,10 @@ -version: 0.0.2 +version: 0.1.0 project: buildings-example description: OpenMapFlow buildings example gcloud: project_id: bsos-geog-harvest1 location: us-central1 - bucket_labeled_tifs: crop-mask-tifs2 - bucket_inference_tifs: buildings-example-inference-tifs + bucket_labeled_eo: crop-mask-tifs2 + bucket_inference_eo: buildings-example-inference-tifs bucket_preds: buildings-example-preds bucket_preds_merged: buildings-example-preds-merged \ No newline at end of file diff --git a/buildings-example/requirements.txt b/buildings-example/requirements.txt new file mode 100644 index 00000000..d8252b2c --- /dev/null +++ b/buildings-example/requirements.txt @@ -0,0 +1,3 @@ +matplotlib +openmapflow +tsai \ No newline at end of file diff --git a/buildings-example/train.py b/buildings-example/train.py index fae2cb89..b6622954 100644 --- a/buildings-example/train.py +++ b/buildings-example/train.py @@ -62,7 +62,7 @@ import wandb # ------------ Dataloaders ------------------------------------- -df = pd.concat([d.load_labels() for d in datasets]) +df = pd.concat([d.load_df() for d in tqdm(datasets, desc="Loading datasets")]) train_df = df[df[SUBSET] == "training"].copy() val_df = df[df[SUBSET] == "validation"].copy() train_data = PyTorchDataset( diff --git a/crop-mask-example/data/.gitignore b/crop-mask-example/data/.gitignore index 6715c2e5..90dc47ad 100644 --- a/crop-mask-example/data/.gitignore +++ b/crop-mask-example/data/.gitignore @@ -1,5 +1,4 @@ +/datasets /models -/features -/processed_labels /raw_labels -/compressed_features.tar.gz + diff --git a/crop-mask-example/data/compressed_features.tar.gz.dvc b/crop-mask-example/data/compressed_features.tar.gz.dvc deleted file mode 100644 index 5b9863a5..00000000 --- a/crop-mask-example/data/compressed_features.tar.gz.dvc +++ /dev/null @@ -1,4 +0,0 @@ -outs: -- md5: 2d1e54e8d431e7b8db8cb196f2bfd223 - size: 54560309 - path: compressed_features.tar.gz diff --git a/crop-mask-example/data/datasets.dvc b/crop-mask-example/data/datasets.dvc new file mode 100644 index 00000000..31e6ddb5 --- /dev/null +++ b/crop-mask-example/data/datasets.dvc @@ -0,0 +1,5 @@ +outs: +- md5: 2f02c3d6b122421548ab476a81d0df90.dir + size: 196862292 + nfiles: 2 + path: datasets diff --git a/crop-mask-example/data/datasets.txt b/crop-mask-example/data/datasets.txt deleted file mode 100644 index 12c9739d..00000000 --- a/crop-mask-example/data/datasets.txt +++ /dev/null @@ -1,17 +0,0 @@ -DATASET REPORT (autogenerated, do not edit directly) - -geowiki_landcover_2017 (Timesteps: 24) ----------------------------------------------------------------------------- -✔ training amount: 34270,positive class: 21.2% - - -Togo_2019 (Timesteps: 24) ----------------------------------------------------------------------------- -✔ training amount: 991,positive class: 53.0% -✔ testing amount: 309,positive class: 34.6% -✔ validation amount: 277,positive class: 56.7% - - -All data: -✔ Found no empty features -✔ No duplicates found \ No newline at end of file diff --git a/crop-mask-example/data/duplicates.txt b/crop-mask-example/data/duplicates.txt deleted file mode 100644 index c687a6a0..00000000 --- a/crop-mask-example/data/duplicates.txt +++ /dev/null @@ -1 +0,0 @@ -lat=10.87135717_lon=-0.04853292_date=2019-01-01_2020-12-31 \ No newline at end of file diff --git a/crop-mask-example/data/missing.txt b/crop-mask-example/data/missing.txt deleted file mode 100644 index dfd10fd5..00000000 --- a/crop-mask-example/data/missing.txt +++ /dev/null @@ -1,383 +0,0 @@ - -lat=6.221355_lon=1.54310013_date=2019-01-01_2020-12-31 -lat=6.22023255_lon=1.53933769_date=2019-01-01_2020-12-31 -lat=6.22040681_lon=1.53686519_date=2019-01-01_2020-12-31 -lat=21.65178571_lon=-97.44940476_date=2017-01-01_2018-12-31 -lat=10.65178571_lon=-62.44940476_date=2017-01-01_2018-12-31 -lat=-8.34821429_lon=115.5505952_date=2017-01-01_2018-12-31 -lat=19.65178571_lon=-96.44940476_date=2017-01-01_2018-12-31 -lat=26.65178571_lon=119.5505952_date=2017-01-01_2018-12-31 -lat=8.65178571_lon=-83.44940476_date=2017-01-01_2018-12-31 -lat=18.65178571_lon=-95.44940476_date=2017-01-01_2018-12-31 -lat=-22.34821429_lon=150.5505952_date=2017-01-01_2018-12-31 -lat=-0.34821429_lon=-48.44940476_date=2017-01-01_2018-12-31 -lat=18.65178571_lon=-68.44940476_date=2017-01-01_2018-12-31 -lat=53.25_lon=6.95238095_date=2017-01-01_2018-12-31 -lat=60.25_lon=14.95238095_date=2017-01-01_2018-12-31 -lat=54.25_lon=-10.04761905_date=2017-01-01_2018-12-31 -lat=40.25_lon=-74.04761905_date=2017-01-01_2018-12-31 -lat=60.25_lon=46.95238095_date=2017-01-01_2018-12-31 -lat=57.25_lon=10.95238095_date=2017-01-01_2018-12-31 -lat=53.25_lon=124.952381_date=2017-01-01_2018-12-31 -lat=54.25_lon=-9.04761905_date=2017-01-01_2018-12-31 -lat=44.25_lon=-69.04761905_date=2017-01-01_2018-12-31 -lat=39.25_lon=23.95238095_date=2017-01-01_2018-12-31 -lat=21.65178571_lon=-77.44940476_date=2017-01-01_2018-12-31 -lat=32.65178571_lon=130.5505952_date=2017-01-01_2018-12-31 -lat=33.65178571_lon=10.55059524_date=2017-01-01_2018-12-31 -lat=37.65178571_lon=-122.4494048_date=2017-01-01_2018-12-31 -lat=-2.84821429_lon=-40.54761905_date=2017-01-01_2018-12-31 -lat=-14.84821429_lon=128.452381_date=2017-01-01_2018-12-31 -lat=10.15178571_lon=-65.54761905_date=2017-01-01_2018-12-31 -lat=18.15178571_lon=-94.54761905_date=2017-01-01_2018-12-31 -lat=6.15178571_lon=120.452381_date=2017-01-01_2018-12-31 -lat=-21.84821429_lon=149.452381_date=2017-01-01_2018-12-31 -lat=0.15178571_lon=117.452381_date=2017-01-01_2018-12-31 -lat=5.15178571_lon=96.45238095_date=2017-01-01_2018-12-31 -lat=-0.84821429_lon=-48.54761905_date=2017-01-01_2018-12-31 -lat=60.25_lon=16.95238095_date=2017-01-01_2018-12-31 -lat=60.25_lon=-156.047619_date=2017-01-01_2018-12-31 -lat=60.25_lon=40.95238095_date=2017-01-01_2018-12-31 -lat=48.65178571_lon=-123.4494048_date=2017-01-01_2018-12-31 -lat=-8.34821429_lon=120.952381_date=2017-01-01_2018-12-31 -lat=19.65178571_lon=-155.047619_date=2017-01-01_2018-12-31 -lat=9.65178571_lon=-72.04761905_date=2017-01-01_2018-12-31 -lat=-12.34821429_lon=130.952381_date=2017-01-01_2018-12-31 -lat=10.65178571_lon=-63.04761905_date=2017-01-01_2018-12-31 -lat=-8.34821429_lon=126.952381_date=2017-01-01_2018-12-31 -lat=-8.34821429_lon=138.952381_date=2017-01-01_2018-12-31 -lat=3.65178571_lon=98.95238095_date=2017-01-01_2018-12-31 -lat=-15.34821429_lon=-39.04761905_date=2017-01-01_2018-12-31 -lat=12.65178571_lon=92.95238095_date=2017-01-01_2018-12-31 -lat=-9.34821429_lon=119.952381_date=2017-01-01_2018-12-31 -lat=-8.34821429_lon=118.952381_date=2017-01-01_2018-12-31 -lat=39.15178571_lon=23.45238095_date=2017-01-01_2018-12-31 -lat=44.15178571_lon=12.45238095_date=2017-01-01_2018-12-31 -lat=50.15178571_lon=140.452381_date=2017-01-01_2018-12-31 -lat=37.15178571_lon=24.45238095_date=2017-01-01_2018-12-31 -lat=41.15178571_lon=-102.547619_date=2017-01-01_2018-12-31 -lat=46.15178571_lon=143.452381_date=2017-01-01_2018-12-31 -lat=41.15178571_lon=29.45238095_date=2017-01-01_2018-12-31 -lat=50.15178571_lon=-5.54761905_date=2017-01-01_2018-12-31 -lat=-16.34821429_lon=-39.04761905_date=2017-01-01_2018-12-31 -lat=23.65178571_lon=57.95238095_date=2017-01-01_2018-12-31 -lat=19.65178571_lon=-70.04761905_date=2017-01-01_2018-12-31 -lat=9.25_lon=105.6517857_date=2017-01-01_2018-12-31 -lat=-12.75_lon=49.65178571_date=2017-01-01_2018-12-31 -lat=9.25_lon=123.6517857_date=2017-01-01_2018-12-31 -lat=54.15178571_lon=15.45238095_date=2017-01-01_2018-12-31 -lat=42.65178571_lon=2.95238095_date=2017-01-01_2018-12-31 -lat=37.65178571_lon=140.952381_date=2017-01-01_2018-12-31 -lat=38.65178571_lon=23.95238095_date=2017-01-01_2018-12-31 -lat=-38.34821429_lon=144.952381_date=2017-01-01_2018-12-31 -lat=41.65178571_lon=122.952381_date=2017-01-01_2018-12-31 -lat=23.25_lon=116.6517857_date=2017-01-01_2018-12-31 -lat=6.75_lon=125.3511905_date=2017-01-01_2018-12-31 -lat=-12.25_lon=132.3511905_date=2017-01-01_2018-12-31 -lat=-0.25_lon=-48.64880952_date=2017-01-01_2018-12-31 -lat=21.75_lon=112.3511905_date=2017-01-01_2018-12-31 -lat=-4.25_lon=120.3511905_date=2017-01-01_2018-12-31 -lat=60.15178571_lon=17.45238095_date=2017-01-01_2018-12-31 -lat=60.15178571_lon=46.45238095_date=2017-01-01_2018-12-31 -lat=51.65178571_lon=-10.04761905_date=2017-01-01_2018-12-31 -lat=38.25_lon=20.65178571_date=2017-01-01_2018-12-31 -lat=24.75_lon=125.3511905_date=2017-01-01_2018-12-31 -lat=17.75_lon=-64.64880952_date=2017-01-01_2018-12-31 -lat=10.75_lon=-71.64880952_date=2017-01-01_2018-12-31 -lat=21.15178571_lon=-86.84821429_date=2017-01-01_2018-12-31 -lat=-14.84821429_lon=145.1517857_date=2017-01-01_2018-12-31 -lat=-7.84821429_lon=-34.84821429_date=2017-01-01_2018-12-31 -lat=18.15178571_lon=-73.84821429_date=2017-01-01_2018-12-31 -lat=12.15178571_lon=-68.84821429_date=2017-01-01_2018-12-31 -lat=57.65178571_lon=-2.04761905_date=2017-01-01_2018-12-31 -lat=32.75_lon=130.3511905_date=2017-01-01_2018-12-31 -lat=39.75_lon=119.3511905_date=2017-01-01_2018-12-31 -lat=26.75_lon=-109.6488095_date=2017-01-01_2018-12-31 -lat=-8.14880952_lon=128.0505952_date=2017-01-01_2018-12-31 -lat=7.85119048_lon=117.0505952_date=2017-01-01_2018-12-31 -lat=13.85119048_lon=-60.94940476_date=2017-01-01_2018-12-31 -lat=8.45238095_lon=98.25_date=2017-01-01_2018-12-31 -lat=44.45238095_lon=12.25_date=2017-01-01_2018-12-31 -lat=13.45238095_lon=80.25_date=2017-01-01_2018-12-31 -lat=47.45238095_lon=36.25_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=8.75_date=2017-01-01_2018-12-31 -lat=43.95238095_lon=12.75_date=2017-01-01_2018-12-31 -lat=6.95238095_lon=116.75_date=2017-01-01_2018-12-31 -lat=11.95238095_lon=123.75_date=2017-01-01_2018-12-31 -lat=-28.04761905_lon=-54.25_date=2017-01-01_2018-12-31 -lat=7.95238095_lon=79.75_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=24.75_date=2017-01-01_2018-12-31 -lat=53.95238095_lon=-0.25_date=2017-01-01_2018-12-31 -lat=54.95238095_lon=11.75_date=2017-01-01_2018-12-31 -lat=-22.04761905_lon=-60.25_date=2017-01-01_2018-12-31 -lat=54.95238095_lon=10.75_date=2017-01-01_2018-12-31 -lat=37.95238095_lon=13.75_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=126.75_date=2017-01-01_2018-12-31 -lat=54.95238095_lon=8.75_date=2017-01-01_2018-12-31 -lat=31.95238095_lon=24.75_date=2017-01-01_2018-12-31 -lat=53.95238095_lon=10.75_date=2017-01-01_2018-12-31 -lat=18.45238095_lon=-66.25_date=2017-01-01_2018-12-31 -lat=22.45238095_lon=-84.25_date=2017-01-01_2018-12-31 -lat=13.45238095_lon=144.75_date=2017-01-01_2018-12-31 -lat=35.45238095_lon=23.75_date=2017-01-01_2018-12-31 -lat=8.45238095_lon=-13.25_date=2017-01-01_2018-12-31 -lat=-20.54761905_lon=31.75_date=2017-01-01_2018-12-31 -lat=18.45238095_lon=-77.25_date=2017-01-01_2018-12-31 -lat=-16.54761905_lon=31.75_date=2017-01-01_2018-12-31 -lat=53.45238095_lon=5.75_date=2017-01-01_2018-12-31 -lat=53.45238095_lon=6.75_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=17.25_date=2017-01-01_2018-12-31 -lat=15.95238095_lon=108.25_date=2017-01-01_2018-12-31 -lat=-6.04761905_lon=106.25_date=2017-01-01_2018-12-31 -lat=2.95238095_lon=112.25_date=2017-01-01_2018-12-31 -lat=57.45238095_lon=18.75_date=2017-01-01_2018-12-31 -lat=59.45238095_lon=16.75_date=2017-01-01_2018-12-31 -lat=38.95238095_lon=121.25_date=2017-01-01_2018-12-31 -lat=50.95238095_lon=142.25_date=2017-01-01_2018-12-31 -lat=39.95238095_lon=25.25_date=2017-01-01_2018-12-31 -lat=49.95238095_lon=1.25_date=2017-01-01_2018-12-31 -lat=54.95238095_lon=11.25_date=2017-01-01_2018-12-31 -lat=39.95238095_lon=26.25_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=-72.75_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=7.25_date=2017-01-01_2018-12-31 -lat=37.95238095_lon=21.25_date=2017-01-01_2018-12-31 -lat=4.25_lon=117.952381_date=2017-01-01_2018-12-31 -lat=41.25_lon=-73.04761905_date=2017-01-01_2018-12-31 -lat=-6.34821429_lon=39.55059524_date=2017-01-01_2018-12-31 -lat=14.65178571_lon=120.5505952_date=2017-01-01_2018-12-31 -lat=9.65178571_lon=106.5505952_date=2017-01-01_2018-12-31 -lat=-14.54761905_lon=47.75_date=2017-01-01_2018-12-31 -lat=-17.04761905_lon=44.25_date=2017-01-01_2018-12-31 -lat=-22.04761905_lon=43.25_date=2017-01-01_2018-12-31 -lat=-19.04761905_lon=44.25_date=2017-01-01_2018-12-31 -lat=-17.84821429_lon=49.45238095_date=2017-01-01_2018-12-31 -lat=-19.34821429_lon=48.95238095_date=2017-01-01_2018-12-31 -lat=-18.25_lon=49.35119048_date=2017-01-01_2018-12-31 -lat=-12.34821429_lon=26.55059524_date=2017-01-01_2018-12-31 -lat=2.25_lon=45.65178571_date=2017-01-01_2018-12-31 -lat=-13.34821429_lon=40.55059524_date=2017-01-01_2018-12-31 -lat=-4.34821429_lon=39.55059524_date=2017-01-01_2018-12-31 -lat=8.25_lon=-13.04761905_date=2017-01-01_2018-12-31 -lat=5.25_lon=-3.34821429_date=2017-01-01_2018-12-31 -lat=12.45238095_lon=-16.75_date=2017-01-01_2018-12-31 -lat=8.95238095_lon=16.75_date=2017-01-01_2018-12-31 -lat=31.45238095_lon=31.75_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=7.75_date=2017-01-01_2018-12-31 -lat=36.65178571_lon=5.55059524_date=2017-01-01_2018-12-31 -lat=35.65178571_lon=10.95238095_date=2017-01-01_2018-12-31 -lat=-3.54761905_lon=128.25_date=2017-01-01_2018-12-31 -lat=-3.54761905_lon=152.25_date=2017-01-01_2018-12-31 -lat=-42.54761905_lon=-72.75_date=2017-01-01_2018-12-31 -lat=30.45238095_lon=130.25_date=2017-01-01_2018-12-31 -lat=3.45238095_lon=117.25_date=2017-01-01_2018-12-31 -lat=37.45238095_lon=27.25_date=2017-01-01_2018-12-31 -lat=11.45238095_lon=123.25_date=2017-01-01_2018-12-31 -lat=-2.54761905_lon=-43.75_date=2017-01-01_2018-12-31 -lat=12.45238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=25.45238095_lon=-76.75_date=2017-01-01_2018-12-31 -lat=8.45238095_lon=123.25_date=2017-01-01_2018-12-31 -lat=9.45238095_lon=118.25_date=2017-01-01_2018-12-31 -lat=-16.54761905_lon=139.25_date=2017-01-01_2018-12-31 -lat=12.45238095_lon=-83.75_date=2017-01-01_2018-12-31 -lat=54.45238095_lon=-5.75_date=2017-01-01_2018-12-31 -lat=40.45238095_lon=27.25_date=2017-01-01_2018-12-31 -lat=18.45238095_lon=-92.75_date=2017-01-01_2018-12-31 -lat=18.45238095_lon=-66.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=65.25_date=2017-01-01_2018-12-31 -lat=37.45238095_lon=122.25_date=2017-01-01_2018-12-31 -lat=49.45238095_lon=142.25_date=2017-01-01_2018-12-31 -lat=51.45238095_lon=4.25_date=2017-01-01_2018-12-31 -lat=-18.54761905_lon=-39.75_date=2017-01-01_2018-12-31 -lat=59.45238095_lon=5.25_date=2017-01-01_2018-12-31 -lat=58.45238095_lon=22.25_date=2017-01-01_2018-12-31 -lat=18.95238095_lon=-73.25_date=2017-01-01_2018-12-31 -lat=-23.04761905_lon=150.75_date=2017-01-01_2018-12-31 -lat=13.95238095_lon=-91.25_date=2017-01-01_2018-12-31 -lat=15.95238095_lon=-61.25_date=2017-01-01_2018-12-31 -lat=16.45238095_lon=96.25_date=2017-01-01_2018-12-31 -lat=-33.54761905_lon=137.25_date=2017-01-01_2018-12-31 -lat=54.45238095_lon=11.25_date=2017-01-01_2018-12-31 -lat=-28.54761905_lon=-52.75_date=2017-01-01_2018-12-31 -lat=36.45238095_lon=1.25_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=-142.75_date=2017-01-01_2018-12-31 -lat=-0.54761905_lon=130.25_date=2017-01-01_2018-12-31 -lat=-48.54761905_lon=-74.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=8.25_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=-110.75_date=2017-01-01_2018-12-31 -lat=19.45238095_lon=-72.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=44.25_date=2017-01-01_2018-12-31 -lat=-8.54761905_lon=157.25_date=2017-01-01_2018-12-31 -lat=10.45238095_lon=-67.75_date=2017-01-01_2018-12-31 -lat=-10.54761905_lon=123.25_date=2017-01-01_2018-12-31 -lat=10.45238095_lon=-62.75_date=2017-01-01_2018-12-31 -lat=-8.54761905_lon=126.25_date=2017-01-01_2018-12-31 -lat=18.45238095_lon=-64.75_date=2017-01-01_2018-12-31 -lat=-0.54761905_lon=9.25_date=2017-01-01_2018-12-31 -lat=7.45238095_lon=-81.75_date=2017-01-01_2018-12-31 -lat=-2.54761905_lon=134.25_date=2017-01-01_2018-12-31 -lat=55.45238095_lon=-131.75_date=2017-01-01_2018-12-31 -lat=11.95238095_lon=-70.25_date=2017-01-01_2018-12-31 -lat=20.95238095_lon=72.75_date=2017-01-01_2018-12-31 -lat=3.95238095_lon=100.75_date=2017-01-01_2018-12-31 -lat=-21.04761905_lon=164.75_date=2017-01-01_2018-12-31 -lat=0.95238095_lon=120.75_date=2017-01-01_2018-12-31 -lat=41.95238095_lon=33.75_date=2017-01-01_2018-12-31 -lat=-6.04761905_lon=12.75_date=2017-01-01_2018-12-31 -lat=-7.04761905_lon=155.75_date=2017-01-01_2018-12-31 -lat=8.95238095_lon=-82.25_date=2017-01-01_2018-12-31 -lat=9.95238095_lon=-62.25_date=2017-01-01_2018-12-31 -lat=16.95238095_lon=-88.25_date=2017-01-01_2018-12-31 -lat=9.95238095_lon=122.75_date=2017-01-01_2018-12-31 -lat=-6.04761905_lon=38.75_date=2017-01-01_2018-12-31 -lat=-35.04761905_lon=173.75_date=2017-01-01_2018-12-31 -lat=9.95238095_lon=118.75_date=2017-01-01_2018-12-31 -lat=4.95238095_lon=97.75_date=2017-01-01_2018-12-31 -lat=10.95238095_lon=-74.25_date=2017-01-01_2018-12-31 -lat=6.95238095_lon=125.75_date=2017-01-01_2018-12-31 -lat=55.95238095_lon=11.75_date=2017-01-01_2018-12-31 -lat=55.95238095_lon=-161.25_date=2017-01-01_2018-12-31 -lat=44.95238095_lon=14.75_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=137.75_date=2017-01-01_2018-12-31 -lat=57.95238095_lon=-153.25_date=2017-01-01_2018-12-31 -lat=37.95238095_lon=128.75_date=2017-01-01_2018-12-31 -lat=10.45238095_lon=123.75_date=2017-01-01_2018-12-31 -lat=-8.54761905_lon=117.75_date=2017-01-01_2018-12-31 -lat=11.45238095_lon=49.75_date=2017-01-01_2018-12-31 -lat=-13.54761905_lon=-172.25_date=2017-01-01_2018-12-31 -lat=29.45238095_lon=-91.25_date=2017-01-01_2018-12-31 -lat=-8.54761905_lon=125.75_date=2017-01-01_2018-12-31 -lat=-8.54761905_lon=121.75_date=2017-01-01_2018-12-31 -lat=40.45238095_lon=27.75_date=2017-01-01_2018-12-31 -lat=-39.54761905_lon=-73.25_date=2017-01-01_2018-12-31 -lat=35.45238095_lon=133.75_date=2017-01-01_2018-12-31 -lat=44.45238095_lon=-1.25_date=2017-01-01_2018-12-31 -lat=13.95238095_lon=122.25_date=2017-01-01_2018-12-31 -lat=8.95238095_lon=125.25_date=2017-01-01_2018-12-31 -lat=-10.04761905_lon=151.25_date=2017-01-01_2018-12-31 -lat=15.95238095_lon=-85.75_date=2017-01-01_2018-12-31 -lat=11.95238095_lon=120.25_date=2017-01-01_2018-12-31 -lat=0.95238095_lon=123.25_date=2017-01-01_2018-12-31 -lat=5.95238095_lon=121.25_date=2017-01-01_2018-12-31 -lat=7.95238095_lon=122.25_date=2017-01-01_2018-12-31 -lat=33.95238095_lon=133.25_date=2017-01-01_2018-12-31 -lat=0.95238095_lon=-79.75_date=2017-01-01_2018-12-31 -lat=5.95238095_lon=-54.75_date=2017-01-01_2018-12-31 -lat=0.95238095_lon=120.25_date=2017-01-01_2018-12-31 -lat=-2.04761905_lon=119.25_date=2017-01-01_2018-12-31 -lat=0.95238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=15.95238095_lon=39.25_date=2017-01-01_2018-12-31 -lat=-51.54761905_lon=-75.25_date=2017-01-01_2018-12-31 -lat=55.45238095_lon=-160.25_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=141.25_date=2017-01-01_2018-12-31 -lat=-5.75_lon=132.952381_date=2017-01-01_2018-12-31 -lat=22.25_lon=113.952381_date=2017-01-01_2018-12-31 -lat=-4.75_lon=152.952381_date=2017-01-01_2018-12-31 -lat=8.25_lon=-82.04761905_date=2017-01-01_2018-12-31 -lat=12.25_lon=-69.04761905_date=2017-01-01_2018-12-31 -lat=-7.75_lon=130.952381_date=2017-01-01_2018-12-31 -lat=10.25_lon=124.952381_date=2017-01-01_2018-12-31 -lat=13.25_lon=123.952381_date=2017-01-01_2018-12-31 -lat=-0.75_lon=-48.04761905_date=2017-01-01_2018-12-31 -lat=5.25_lon=-60.04761905_date=2017-01-01_2018-12-31 -lat=-2.75_lon=151.952381_date=2017-01-01_2018-12-31 -lat=-0.75_lon=133.952381_date=2017-01-01_2018-12-31 -lat=2.25_lon=103.952381_date=2017-01-01_2018-12-31 -lat=11.25_lon=124.952381_date=2017-01-01_2018-12-31 -lat=-5.75_lon=123.952381_date=2017-01-01_2018-12-31 -lat=54.95238095_lon=20.25_date=2017-01-01_2018-12-31 -lat=41.25_lon=140.952381_date=2017-01-01_2018-12-31 -lat=-41.75_lon=-73.04761905_date=2017-01-01_2018-12-31 -lat=12.25_lon=119.952381_date=2017-01-01_2018-12-31 -lat=-40.75_lon=173.952381_date=2017-01-01_2018-12-31 -lat=-9.75_lon=161.952381_date=2017-01-01_2018-12-31 -lat=-46.75_lon=167.952381_date=2017-01-01_2018-12-31 -lat=41.25_lon=-70.04761905_date=2017-01-01_2018-12-31 -lat=37.25_lon=118.952381_date=2017-01-01_2018-12-31 -lat=-32.75_lon=-53.04761905_date=2017-01-01_2018-12-31 -lat=9.65178571_lon=125.5505952_date=2017-01-01_2018-12-31 -lat=8.65178571_lon=106.5505952_date=2017-01-01_2018-12-31 -lat=7.65178571_lon=126.5505952_date=2017-01-01_2018-12-31 -lat=-8.34821429_lon=117.5505952_date=2017-01-01_2018-12-31 -lat=10.65178571_lon=-63.44940476_date=2017-01-01_2018-12-31 -lat=-8.34821429_lon=118.5505952_date=2017-01-01_2018-12-31 -lat=0.65178571_lon=124.5505952_date=2017-01-01_2018-12-31 -lat=-3.34821429_lon=143.5505952_date=2017-01-01_2018-12-31 -lat=15.65178571_lon=121.5505952_date=2017-01-01_2018-12-31 -lat=10.65178571_lon=92.55059524_date=2017-01-01_2018-12-31 -lat=-7.34821429_lon=155.5505952_date=2017-01-01_2018-12-31 -lat=-8.34821429_lon=116.5505952_date=2017-01-01_2018-12-31 -lat=1.65178571_lon=98.55059524_date=2017-01-01_2018-12-31 -lat=52.95238095_lon=4.75_date=2017-01-01_2018-12-31 -lat=-9.04761905_lon=124.75_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=39.75_date=2017-01-01_2018-12-31 -lat=19.95238095_lon=109.75_date=2017-01-01_2018-12-31 -lat=-20.04761905_lon=34.75_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=6.75_date=2017-01-01_2018-12-31 -lat=-24.04761905_lon=151.75_date=2017-01-01_2018-12-31 -lat=-14.04761905_lon=136.75_date=2017-01-01_2018-12-31 -lat=22.95238095_lon=-83.25_date=2017-01-01_2018-12-31 -lat=37.95238095_lon=24.75_date=2017-01-01_2018-12-31 -lat=-43.04761905_lon=147.75_date=2017-01-01_2018-12-31 -lat=35.95238095_lon=27.75_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=38.75_date=2017-01-01_2018-12-31 -lat=34.95238095_lon=24.75_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=-72.25_date=2017-01-01_2018-12-31 -lat=35.95238095_lon=-76.25_date=2017-01-01_2018-12-31 -lat=42.95238095_lon=16.75_date=2017-01-01_2018-12-31 -lat=41.95238095_lon=8.75_date=2017-01-01_2018-12-31 -lat=-53.04761905_lon=-71.25_date=2017-01-01_2018-12-31 -lat=24.95238095_lon=66.75_date=2017-01-01_2018-12-31 -lat=45.95238095_lon=-1.25_date=2017-01-01_2018-12-31 -lat=56.95238095_lon=23.75_date=2017-01-01_2018-12-31 -lat=1.45238095_lon=124.75_date=2017-01-01_2018-12-31 -lat=-12.54761905_lon=130.75_date=2017-01-01_2018-12-31 -lat=25.45238095_lon=119.75_date=2017-01-01_2018-12-31 -lat=10.45238095_lon=124.75_date=2017-01-01_2018-12-31 -lat=11.45238095_lon=119.75_date=2017-01-01_2018-12-31 -lat=18.45238095_lon=-73.25_date=2017-01-01_2018-12-31 -lat=-6.54761905_lon=105.75_date=2017-01-01_2018-12-31 -lat=-1.54761905_lon=105.75_date=2017-01-01_2018-12-31 -lat=-10.54761905_lon=121.75_date=2017-01-01_2018-12-31 -lat=-7.54761905_lon=112.75_date=2017-01-01_2018-12-31 -lat=46.45238095_lon=30.75_date=2017-01-01_2018-12-31 -lat=56.45238095_lon=12.75_date=2017-01-01_2018-12-31 -lat=45.45238095_lon=29.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=46.75_date=2017-01-01_2018-12-31 -lat=19.45238095_lon=110.75_date=2017-01-01_2018-12-31 -lat=38.45238095_lon=-28.25_date=2017-01-01_2018-12-31 -lat=49.45238095_lon=-1.25_date=2017-01-01_2018-12-31 -lat=49.45238095_lon=154.75_date=2017-01-01_2018-12-31 -lat=54.45238095_lon=123.75_date=2017-01-01_2018-12-31 -lat=-51.54761905_lon=-60.25_date=2017-01-01_2018-12-31 -lat=-0.04761905_lon=-49.75_date=2017-01-01_2018-12-31 -lat=-17.04761905_lon=139.25_date=2017-01-01_2018-12-31 -lat=-9.04761905_lon=149.25_date=2017-01-01_2018-12-31 -lat=11.95238095_lon=109.25_date=2017-01-01_2018-12-31 -lat=-6.04761905_lon=107.25_date=2017-01-01_2018-12-31 -lat=-3.04761905_lon=-39.75_date=2017-01-01_2018-12-31 -lat=10.95238095_lon=123.25_date=2017-01-01_2018-12-31 -lat=-40.04761905_lon=148.25_date=2017-01-01_2018-12-31 -lat=-39.04761905_lon=174.25_date=2017-01-01_2018-12-31 -lat=41.95238095_lon=33.25_date=2017-01-01_2018-12-31 -lat=-38.04761905_lon=177.25_date=2017-01-01_2018-12-31 -lat=18.95238095_lon=-68.75_date=2017-01-01_2018-12-31 -lat=38.95238095_lon=1.25_date=2017-01-01_2018-12-31 -lat=54.95238095_lon=21.25_date=2017-01-01_2018-12-31 -lat=28.95238095_lon=-13.75_date=2017-01-01_2018-12-31 -lat=-36.04761905_lon=-72.75_date=2017-01-01_2018-12-31 -lat=33.95238095_lon=132.25_date=2017-01-01_2018-12-31 -lat=28.25_lon=-14.04761905_date=2017-01-01_2018-12-31 -lat=18.25_lon=121.952381_date=2017-01-01_2018-12-31 -lat=-29.75_lon=-50.04761905_date=2017-01-01_2018-12-31 -lat=-2.75_lon=-42.04761905_date=2017-01-01_2018-12-31 -lat=-8.75_lon=117.952381_date=2017-01-01_2018-12-31 -lat=1.25_lon=-50.04761905_date=2017-01-01_2018-12-31 -lat=20.25_lon=92.95238095_date=2017-01-01_2018-12-31 -lat=58.95238095_lon=-2.75_date=2017-01-01_2018-12-31 -lat=55.95238095_lon=10.25_date=2017-01-01_2018-12-31 -lat=-40.75_lon=147.952381_date=2017-01-01_2018-12-31 -lat=29.25_lon=121.952381_date=2017-01-01_2018-12-31 -lat=29.25_lon=-95.04761905_date=2017-01-01_2018-12-31 -lat=21.25_lon=-73.04761905_date=2017-01-01_2018-12-31 -lat=28.25_lon=-97.04761905_date=2017-01-01_2018-12-31 -lat=40.25_lon=14.95238095_date=2017-01-01_2018-12-31 diff --git a/crop-mask-example/data/processed_labels.dvc b/crop-mask-example/data/processed_labels.dvc deleted file mode 100644 index 9368a43c..00000000 --- a/crop-mask-example/data/processed_labels.dvc +++ /dev/null @@ -1,5 +0,0 @@ -outs: -- md5: c36b120d80fce1015ca6dd9b1f0277b4.dir - size: 6484412 - nfiles: 2 - path: processed_labels diff --git a/crop-mask-example/data/report.txt b/crop-mask-example/data/report.txt new file mode 100644 index 00000000..3f067ac4 --- /dev/null +++ b/crop-mask-example/data/report.txt @@ -0,0 +1,23 @@ +DATASET REPORT (autogenerated, do not edit directly) + +geowiki_landcover_2017 (Timesteps: 24) +---------------------------------------------------------------------------- +eo_data_complete 34270 +eo_data_export_failed 841 +eo_data_missing_values 379 +eo_data_skipped 376 +✔ training amount: 34270, positive class: 21.2% + + + +Togo_2019 (Timesteps: 24) +---------------------------------------------------------------------------- +eo_data_complete 1577 +eo_data_skipped 45 +eo_data_export_failed 5 +eo_data_missing_values 3 +eo_data_duplicate 1 +✔ training amount: 991, positive class: 53.0% +✔ validation amount: 277, positive class: 56.7% +✔ testing amount: 309, positive class: 34.6% + diff --git a/crop-mask-example/data/unexported.txt b/crop-mask-example/data/unexported.txt deleted file mode 100644 index 7cd09cb8..00000000 --- a/crop-mask-example/data/unexported.txt +++ /dev/null @@ -1,846 +0,0 @@ -lat=11.16392591_lon=-0.16385638_date=2019-01-01_2020-12-31 -lat=6.21947519_lon=1.53494818_date=2019-01-01_2020-12-31 -lat=6.21962165_lon=1.07359924_date=2019-01-01_2020-12-31 -lat=11.16190392_lon=-0.1660175_date=2019-01-01_2020-12-31 -lat=6.29996393_lon=1.75817259_date=2019-01-01_2020-12-31 -lat=-14.54761905_lon=14.25_date=2017-01-01_2018-12-31 -lat=-13.54761905_lon=13.25_date=2017-01-01_2018-12-31 -lat=-14.54761905_lon=13.25_date=2017-01-01_2018-12-31 -lat=-15.04761905_lon=13.75_date=2017-01-01_2018-12-31 -lat=-15.04761905_lon=14.75_date=2017-01-01_2018-12-31 -lat=-17.54761905_lon=13.75_date=2017-01-01_2018-12-31 -lat=-14.54761905_lon=14.75_date=2017-01-01_2018-12-31 -lat=-14.75_lon=14.95238095_date=2017-01-01_2018-12-31 -lat=-16.75_lon=13.95238095_date=2017-01-01_2018-12-31 -lat=-15.75_lon=14.65178571_date=2017-01-01_2018-12-31 -lat=-15.34821429_lon=13.55059524_date=2017-01-01_2018-12-31 -lat=5.45238095_lon=-1.25_date=2017-01-01_2018-12-31 -lat=5.25_lon=-1.04761905_date=2017-01-01_2018-12-31 -lat=5.65178571_lon=-0.44940476_date=2017-01-01_2018-12-31 -lat=5.65178571_lon=-1.04761905_date=2017-01-01_2018-12-31 -lat=5.25_lon=-1.34821429_date=2017-01-01_2018-12-31 -lat=5.75_lon=-0.64880952_date=2017-01-01_2018-12-31 -lat=5.85119048_lon=-0.94940476_date=2017-01-01_2018-12-31 -lat=14.45238095_lon=34.75_date=2017-01-01_2018-12-31 -lat=13.95238095_lon=33.75_date=2017-01-01_2018-12-31 -lat=13.95238095_lon=34.75_date=2017-01-01_2018-12-31 -lat=13.95238095_lon=34.25_date=2017-01-01_2018-12-31 -lat=13.65178571_lon=34.95238095_date=2017-01-01_2018-12-31 -lat=12.65178571_lon=33.95238095_date=2017-01-01_2018-12-31 -lat=14.25_lon=34.65178571_date=2017-01-01_2018-12-31 -lat=13.85119048_lon=34.05059524_date=2017-01-01_2018-12-31 -lat=12.95238095_lon=34.75_date=2017-01-01_2018-12-31 -lat=13.25_lon=34.95238095_date=2017-01-01_2018-12-31 -lat=13.65178571_lon=34.55059524_date=2017-01-01_2018-12-31 -lat=74.45238095_lon=-34.75_date=2017-01-01_2018-12-31 -lat=65.45238095_lon=-157.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=84.25_date=2017-01-01_2018-12-31 -lat=67.45238095_lon=139.25_date=2017-01-01_2018-12-31 -lat=79.45238095_lon=-56.75_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=122.25_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=44.25_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=-104.75_date=2017-01-01_2018-12-31 -lat=82.45238095_lon=-23.75_date=2017-01-01_2018-12-31 -lat=-13.54761905_lon=134.25_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=93.25_date=2017-01-01_2018-12-31 -lat=51.45238095_lon=-78.75_date=2017-01-01_2018-12-31 -lat=55.45238095_lon=-75.75_date=2017-01-01_2018-12-31 -lat=75.45238095_lon=-87.75_date=2017-01-01_2018-12-31 -lat=68.45238095_lon=113.25_date=2017-01-01_2018-12-31 -lat=71.45238095_lon=-179.75_date=2017-01-01_2018-12-31 -lat=75.45238095_lon=-26.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=50.25_date=2017-01-01_2018-12-31 -lat=68.45238095_lon=125.25_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=120.25_date=2017-01-01_2018-12-31 -lat=70.45238095_lon=-83.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=63.25_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=99.25_date=2017-01-01_2018-12-31 -lat=67.45238095_lon=157.25_date=2017-01-01_2018-12-31 -lat=67.45238095_lon=53.25_date=2017-01-01_2018-12-31 -lat=54.45238095_lon=-59.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=-120.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=-6.75_date=2017-01-01_2018-12-31 -lat=45.45238095_lon=-108.75_date=2017-01-01_2018-12-31 -lat=49.45238095_lon=-107.75_date=2017-01-01_2018-12-31 -lat=34.45238095_lon=64.25_date=2017-01-01_2018-12-31 -lat=-29.54761905_lon=147.25_date=2017-01-01_2018-12-31 -lat=-6.54761905_lon=144.25_date=2017-01-01_2018-12-31 -lat=-15.54761905_lon=14.25_date=2017-01-01_2018-12-31 -lat=-4.54761905_lon=136.25_date=2017-01-01_2018-12-31 -lat=-17.54761905_lon=14.25_date=2017-01-01_2018-12-31 -lat=-28.54761905_lon=148.25_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=95.25_date=2017-01-01_2018-12-31 -lat=-4.54761905_lon=145.25_date=2017-01-01_2018-12-31 -lat=-6.54761905_lon=143.25_date=2017-01-01_2018-12-31 -lat=47.45238095_lon=-53.75_date=2017-01-01_2018-12-31 -lat=-16.54761905_lon=13.25_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=-150.75_date=2017-01-01_2018-12-31 -lat=27.45238095_lon=84.25_date=2017-01-01_2018-12-31 -lat=-54.54761905_lon=-68.75_date=2017-01-01_2018-12-31 -lat=-16.54761905_lon=14.25_date=2017-01-01_2018-12-31 -lat=-5.54761905_lon=145.25_date=2017-01-01_2018-12-31 -lat=36.45238095_lon=64.25_date=2017-01-01_2018-12-31 -lat=36.45238095_lon=-112.75_date=2017-01-01_2018-12-31 -lat=28.45238095_lon=61.25_date=2017-01-01_2018-12-31 -lat=53.45238095_lon=-88.75_date=2017-01-01_2018-12-31 -lat=51.45238095_lon=119.25_date=2017-01-01_2018-12-31 -lat=27.45238095_lon=120.25_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=127.25_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=29.25_date=2017-01-01_2018-12-31 -lat=46.45238095_lon=125.25_date=2017-01-01_2018-12-31 -lat=48.45238095_lon=-107.75_date=2017-01-01_2018-12-31 -lat=-26.54761905_lon=148.25_date=2017-01-01_2018-12-31 -lat=47.45238095_lon=-108.75_date=2017-01-01_2018-12-31 -lat=-20.54761905_lon=164.25_date=2017-01-01_2018-12-31 -lat=51.45238095_lon=127.25_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=21.25_date=2017-01-01_2018-12-31 -lat=-28.54761905_lon=150.25_date=2017-01-01_2018-12-31 -lat=-24.54761905_lon=150.25_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=120.25_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=27.25_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=24.25_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=-150.75_date=2017-01-01_2018-12-31 -lat=39.45238095_lon=-111.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=43.25_date=2017-01-01_2018-12-31 -lat=42.45238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=49.45238095_lon=126.25_date=2017-01-01_2018-12-31 -lat=80.45238095_lon=-89.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=24.25_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=23.25_date=2017-01-01_2018-12-31 -lat=24.45238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=39.45238095_lon=-110.75_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=119.25_date=2017-01-01_2018-12-31 -lat=46.45238095_lon=-65.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=-144.75_date=2017-01-01_2018-12-31 -lat=51.45238095_lon=118.25_date=2017-01-01_2018-12-31 -lat=67.45238095_lon=-135.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=18.25_date=2017-01-01_2018-12-31 -lat=46.45238095_lon=-108.75_date=2017-01-01_2018-12-31 -lat=65.45238095_lon=21.25_date=2017-01-01_2018-12-31 -lat=35.45238095_lon=63.25_date=2017-01-01_2018-12-31 -lat=45.45238095_lon=125.25_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=25.25_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=22.25_date=2017-01-01_2018-12-31 -lat=52.45238095_lon=118.25_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=13.25_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=27.25_date=2017-01-01_2018-12-31 -lat=-29.04761905_lon=151.75_date=2017-01-01_2018-12-31 -lat=-5.04761905_lon=145.75_date=2017-01-01_2018-12-31 -lat=-29.04761905_lon=149.75_date=2017-01-01_2018-12-31 -lat=39.95238095_lon=-111.25_date=2017-01-01_2018-12-31 -lat=-29.04761905_lon=150.75_date=2017-01-01_2018-12-31 -lat=44.95238095_lon=124.75_date=2017-01-01_2018-12-31 -lat=41.95238095_lon=123.75_date=2017-01-01_2018-12-31 -lat=42.45238095_lon=-88.75_date=2017-01-01_2018-12-31 -lat=44.45238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=-27.54761905_lon=153.25_date=2017-01-01_2018-12-31 -lat=41.45238095_lon=-87.75_date=2017-01-01_2018-12-31 -lat=53.45238095_lon=-105.75_date=2017-01-01_2018-12-31 -lat=-27.54761905_lon=151.25_date=2017-01-01_2018-12-31 -lat=-27.54761905_lon=152.25_date=2017-01-01_2018-12-31 -lat=48.45238095_lon=126.25_date=2017-01-01_2018-12-31 -lat=-28.54761905_lon=149.25_date=2017-01-01_2018-12-31 -lat=-27.54761905_lon=150.25_date=2017-01-01_2018-12-31 -lat=13.45238095_lon=34.25_date=2017-01-01_2018-12-31 -lat=14.45238095_lon=35.25_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=118.25_date=2017-01-01_2018-12-31 -lat=5.45238095_lon=-0.75_date=2017-01-01_2018-12-31 -lat=66.45238095_lon=126.25_date=2017-01-01_2018-12-31 -lat=67.45238095_lon=-40.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=106.25_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=125.25_date=2017-01-01_2018-12-31 -lat=70.45238095_lon=-31.75_date=2017-01-01_2018-12-31 -lat=78.45238095_lon=-88.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=-108.75_date=2017-01-01_2018-12-31 -lat=66.45238095_lon=-44.75_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=136.25_date=2017-01-01_2018-12-31 -lat=66.45238095_lon=-43.75_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=-85.75_date=2017-01-01_2018-12-31 -lat=68.45238095_lon=-38.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=-106.75_date=2017-01-01_2018-12-31 -lat=52.45238095_lon=-71.75_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=67.25_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=-129.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=-101.75_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=101.25_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=-114.75_date=2017-01-01_2018-12-31 -lat=68.45238095_lon=-43.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=49.25_date=2017-01-01_2018-12-31 -lat=70.45238095_lon=-51.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=96.25_date=2017-01-01_2018-12-31 -lat=70.45238095_lon=79.25_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=40.25_date=2017-01-01_2018-12-31 -lat=57.45238095_lon=-107.75_date=2017-01-01_2018-12-31 -lat=65.45238095_lon=-64.75_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=-45.75_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=-66.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=-129.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=144.25_date=2017-01-01_2018-12-31 -lat=67.45238095_lon=-101.75_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=137.25_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=33.25_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=15.25_date=2017-01-01_2018-12-31 -lat=70.45238095_lon=-72.75_date=2017-01-01_2018-12-31 -lat=66.45238095_lon=74.25_date=2017-01-01_2018-12-31 -lat=68.45238095_lon=163.25_date=2017-01-01_2018-12-31 -lat=65.45238095_lon=95.25_date=2017-01-01_2018-12-31 -lat=-24.54761905_lon=151.25_date=2017-01-01_2018-12-31 -lat=68.45238095_lon=25.25_date=2017-01-01_2018-12-31 -lat=-31.54761905_lon=130.25_date=2017-01-01_2018-12-31 -lat=67.45238095_lon=-83.75_date=2017-01-01_2018-12-31 -lat=68.45238095_lon=32.25_date=2017-01-01_2018-12-31 -lat=69.45238095_lon=76.25_date=2017-01-01_2018-12-31 -lat=52.45238095_lon=-81.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=-73.75_date=2017-01-01_2018-12-31 -lat=67.45238095_lon=-152.75_date=2017-01-01_2018-12-31 -lat=-17.54761905_lon=135.25_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=-164.75_date=2017-01-01_2018-12-31 -lat=71.45238095_lon=118.25_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=80.25_date=2017-01-01_2018-12-31 -lat=68.45238095_lon=76.25_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=82.45238095_lon=-24.75_date=2017-01-01_2018-12-31 -lat=67.45238095_lon=49.25_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=60.25_date=2017-01-01_2018-12-31 -lat=51.45238095_lon=-60.75_date=2017-01-01_2018-12-31 -lat=32.45238095_lon=63.25_date=2017-01-01_2018-12-31 -lat=65.45238095_lon=-147.75_date=2017-01-01_2018-12-31 -lat=67.45238095_lon=-45.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=-159.75_date=2017-01-01_2018-12-31 -lat=73.45238095_lon=-42.75_date=2017-01-01_2018-12-31 -lat=65.45238095_lon=117.25_date=2017-01-01_2018-12-31 -lat=69.45238095_lon=153.25_date=2017-01-01_2018-12-31 -lat=65.45238095_lon=-140.75_date=2017-01-01_2018-12-31 -lat=68.45238095_lon=173.25_date=2017-01-01_2018-12-31 -lat=54.45238095_lon=-61.75_date=2017-01-01_2018-12-31 -lat=70.45238095_lon=134.25_date=2017-01-01_2018-12-31 -lat=69.45238095_lon=100.25_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=108.25_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=-159.75_date=2017-01-01_2018-12-31 -lat=53.45238095_lon=-74.75_date=2017-01-01_2018-12-31 -lat=67.45238095_lon=-156.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=25.25_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=-127.75_date=2017-01-01_2018-12-31 -lat=65.45238095_lon=-87.75_date=2017-01-01_2018-12-31 -lat=-15.54761905_lon=135.25_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=25.25_date=2017-01-01_2018-12-31 -lat=68.45238095_lon=154.25_date=2017-01-01_2018-12-31 -lat=67.45238095_lon=61.25_date=2017-01-01_2018-12-31 -lat=71.45238095_lon=-38.75_date=2017-01-01_2018-12-31 -lat=67.45238095_lon=165.25_date=2017-01-01_2018-12-31 -lat=65.45238095_lon=71.25_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=51.25_date=2017-01-01_2018-12-31 -lat=77.45238095_lon=-29.75_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=-136.75_date=2017-01-01_2018-12-31 -lat=70.45238095_lon=-42.75_date=2017-01-01_2018-12-31 -lat=79.45238095_lon=25.25_date=2017-01-01_2018-12-31 -lat=66.45238095_lon=25.25_date=2017-01-01_2018-12-31 -lat=68.45238095_lon=-42.75_date=2017-01-01_2018-12-31 -lat=68.45238095_lon=24.25_date=2017-01-01_2018-12-31 -lat=66.45238095_lon=128.25_date=2017-01-01_2018-12-31 -lat=65.45238095_lon=-116.75_date=2017-01-01_2018-12-31 -lat=66.45238095_lon=-94.75_date=2017-01-01_2018-12-31 -lat=29.45238095_lon=61.25_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=17.25_date=2017-01-01_2018-12-31 -lat=25.45238095_lon=60.25_date=2017-01-01_2018-12-31 -lat=76.45238095_lon=-91.75_date=2017-01-01_2018-12-31 -lat=68.45238095_lon=123.25_date=2017-01-01_2018-12-31 -lat=-4.54761905_lon=-64.75_date=2017-01-01_2018-12-31 -lat=-6.54761905_lon=-69.75_date=2017-01-01_2018-12-31 -lat=-4.54761905_lon=144.25_date=2017-01-01_2018-12-31 -lat=66.45238095_lon=17.25_date=2017-01-01_2018-12-31 -lat=29.45238095_lon=121.25_date=2017-01-01_2018-12-31 -lat=-2.54761905_lon=137.25_date=2017-01-01_2018-12-31 -lat=66.45238095_lon=42.25_date=2017-01-01_2018-12-31 -lat=-4.54761905_lon=137.25_date=2017-01-01_2018-12-31 -lat=-2.54761905_lon=138.25_date=2017-01-01_2018-12-31 -lat=-17.54761905_lon=133.25_date=2017-01-01_2018-12-31 -lat=33.45238095_lon=63.25_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=37.25_date=2017-01-01_2018-12-31 -lat=65.45238095_lon=30.25_date=2017-01-01_2018-12-31 -lat=65.45238095_lon=54.25_date=2017-01-01_2018-12-31 -lat=53.45238095_lon=-63.75_date=2017-01-01_2018-12-31 -lat=34.45238095_lon=63.25_date=2017-01-01_2018-12-31 -lat=74.45238095_lon=19.25_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=-81.75_date=2017-01-01_2018-12-31 -lat=28.45238095_lon=121.25_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=-69.75_date=2017-01-01_2018-12-31 -lat=35.45238095_lon=64.25_date=2017-01-01_2018-12-31 -lat=81.45238095_lon=-89.75_date=2017-01-01_2018-12-31 -lat=81.45238095_lon=-28.75_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=-112.25_date=2017-01-01_2018-12-31 -lat=51.95238095_lon=-68.25_date=2017-01-01_2018-12-31 -lat=32.95238095_lon=62.75_date=2017-01-01_2018-12-31 -lat=-4.04761905_lon=-66.25_date=2017-01-01_2018-12-31 -lat=-5.04761905_lon=137.75_date=2017-01-01_2018-12-31 -lat=34.95238095_lon=-112.25_date=2017-01-01_2018-12-31 -lat=33.95238095_lon=63.75_date=2017-01-01_2018-12-31 -lat=28.95238095_lon=120.75_date=2017-01-01_2018-12-31 -lat=-2.04761905_lon=138.75_date=2017-01-01_2018-12-31 -lat=30.95238095_lon=120.75_date=2017-01-01_2018-12-31 -lat=29.95238095_lon=120.75_date=2017-01-01_2018-12-31 -lat=-2.04761905_lon=137.75_date=2017-01-01_2018-12-31 -lat=-5.04761905_lon=143.75_date=2017-01-01_2018-12-31 -lat=-7.04761905_lon=144.75_date=2017-01-01_2018-12-31 -lat=-16.04761905_lon=13.75_date=2017-01-01_2018-12-31 -lat=34.95238095_lon=63.75_date=2017-01-01_2018-12-31 -lat=-1.04761905_lon=100.75_date=2017-01-01_2018-12-31 -lat=-4.04761905_lon=143.75_date=2017-01-01_2018-12-31 -lat=-5.04761905_lon=144.75_date=2017-01-01_2018-12-31 -lat=-16.04761905_lon=14.75_date=2017-01-01_2018-12-31 -lat=-14.04761905_lon=13.75_date=2017-01-01_2018-12-31 -lat=35.95238095_lon=-112.25_date=2017-01-01_2018-12-31 -lat=63.95238095_lon=41.75_date=2017-01-01_2018-12-31 -lat=64.95238095_lon=72.75_date=2017-01-01_2018-12-31 -lat=62.95238095_lon=8.75_date=2017-01-01_2018-12-31 -lat=30.95238095_lon=61.75_date=2017-01-01_2018-12-31 -lat=62.95238095_lon=9.75_date=2017-01-01_2018-12-31 -lat=62.95238095_lon=-162.25_date=2017-01-01_2018-12-31 -lat=47.95238095_lon=-108.25_date=2017-01-01_2018-12-31 -lat=35.95238095_lon=64.75_date=2017-01-01_2018-12-31 -lat=35.95238095_lon=63.75_date=2017-01-01_2018-12-31 -lat=61.95238095_lon=66.75_date=2017-01-01_2018-12-31 -lat=59.95238095_lon=-113.25_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=68.75_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=73.75_date=2017-01-01_2018-12-31 -lat=49.95238095_lon=-67.25_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=-111.25_date=2017-01-01_2018-12-31 -lat=66.95238095_lon=-143.25_date=2017-01-01_2018-12-31 -lat=-31.54761905_lon=130.75_date=2017-01-01_2018-12-31 -lat=35.45238095_lon=-113.25_date=2017-01-01_2018-12-31 -lat=-4.54761905_lon=137.75_date=2017-01-01_2018-12-31 -lat=-6.54761905_lon=144.75_date=2017-01-01_2018-12-31 -lat=-2.54761905_lon=138.75_date=2017-01-01_2018-12-31 -lat=-1.54761905_lon=100.75_date=2017-01-01_2018-12-31 -lat=-15.54761905_lon=14.75_date=2017-01-01_2018-12-31 -lat=-5.54761905_lon=143.75_date=2017-01-01_2018-12-31 -lat=-16.54761905_lon=13.75_date=2017-01-01_2018-12-31 -lat=-3.54761905_lon=137.75_date=2017-01-01_2018-12-31 -lat=-2.54761905_lon=136.75_date=2017-01-01_2018-12-31 -lat=-1.54761905_lon=137.75_date=2017-01-01_2018-12-31 -lat=-2.54761905_lon=137.75_date=2017-01-01_2018-12-31 -lat=36.45238095_lon=63.75_date=2017-01-01_2018-12-31 -lat=-4.54761905_lon=143.75_date=2017-01-01_2018-12-31 -lat=80.95238095_lon=-24.25_date=2017-01-01_2018-12-31 -lat=81.95238095_lon=-47.25_date=2017-01-01_2018-12-31 -lat=62.95238095_lon=43.75_date=2017-01-01_2018-12-31 -lat=81.95238095_lon=-52.25_date=2017-01-01_2018-12-31 -lat=33.45238095_lon=63.75_date=2017-01-01_2018-12-31 -lat=47.45238095_lon=-54.25_date=2017-01-01_2018-12-31 -lat=34.45238095_lon=62.75_date=2017-01-01_2018-12-31 -lat=-27.54761905_lon=148.75_date=2017-01-01_2018-12-31 -lat=46.45238095_lon=-108.25_date=2017-01-01_2018-12-31 -lat=36.45238095_lon=64.75_date=2017-01-01_2018-12-31 -lat=29.45238095_lon=120.75_date=2017-01-01_2018-12-31 -lat=32.45238095_lon=62.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=67.75_date=2017-01-01_2018-12-31 -lat=-28.54761905_lon=149.75_date=2017-01-01_2018-12-31 -lat=51.45238095_lon=-68.25_date=2017-01-01_2018-12-31 -lat=27.45238095_lon=84.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=11.75_date=2017-01-01_2018-12-31 -lat=35.45238095_lon=63.75_date=2017-01-01_2018-12-31 -lat=-15.54761905_lon=13.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=76.75_date=2017-01-01_2018-12-31 -lat=47.45238095_lon=-108.25_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=-163.25_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=-111.75_date=2017-01-01_2018-12-31 -lat=35.95238095_lon=64.25_date=2017-01-01_2018-12-31 -lat=-3.04761905_lon=138.25_date=2017-01-01_2018-12-31 -lat=28.95238095_lon=-113.75_date=2017-01-01_2018-12-31 -lat=-7.04761905_lon=144.25_date=2017-01-01_2018-12-31 -lat=12.95238095_lon=34.25_date=2017-01-01_2018-12-31 -lat=-17.04761905_lon=14.25_date=2017-01-01_2018-12-31 -lat=-4.04761905_lon=-65.75_date=2017-01-01_2018-12-31 -lat=-27.04761905_lon=148.25_date=2017-01-01_2018-12-31 -lat=-14.04761905_lon=14.25_date=2017-01-01_2018-12-31 -lat=-15.04761905_lon=14.25_date=2017-01-01_2018-12-31 -lat=1.95238095_lon=101.25_date=2017-01-01_2018-12-31 -lat=-16.04761905_lon=14.25_date=2017-01-01_2018-12-31 -lat=-5.04761905_lon=145.25_date=2017-01-01_2018-12-31 -lat=-14.04761905_lon=13.25_date=2017-01-01_2018-12-31 -lat=-5.04761905_lon=138.25_date=2017-01-01_2018-12-31 -lat=-7.04761905_lon=145.25_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=81.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=64.75_date=2017-01-01_2018-12-31 -lat=82.45238095_lon=-46.25_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=71.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=-19.25_date=2017-01-01_2018-12-31 -lat=69.45238095_lon=28.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=6.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=8.75_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=-162.25_date=2017-01-01_2018-12-31 -lat=41.95238095_lon=-110.75_date=2017-01-01_2018-12-31 -lat=-25.04761905_lon=151.25_date=2017-01-01_2018-12-31 -lat=32.95238095_lon=63.25_date=2017-01-01_2018-12-31 -lat=38.95238095_lon=-111.75_date=2017-01-01_2018-12-31 -lat=39.95238095_lon=-110.75_date=2017-01-01_2018-12-31 -lat=34.95238095_lon=64.25_date=2017-01-01_2018-12-31 -lat=39.95238095_lon=-111.75_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=-112.75_date=2017-01-01_2018-12-31 -lat=35.95238095_lon=63.25_date=2017-01-01_2018-12-31 -lat=-16.04761905_lon=13.25_date=2017-01-01_2018-12-31 -lat=34.95238095_lon=63.25_date=2017-01-01_2018-12-31 -lat=33.95238095_lon=63.25_date=2017-01-01_2018-12-31 -lat=35.95238095_lon=-112.75_date=2017-01-01_2018-12-31 -lat=-4.75_lon=144.952381_date=2017-01-01_2018-12-31 -lat=-2.75_lon=136.952381_date=2017-01-01_2018-12-31 -lat=-28.75_lon=147.952381_date=2017-01-01_2018-12-31 -lat=-2.75_lon=137.952381_date=2017-01-01_2018-12-31 -lat=-13.75_lon=14.95238095_date=2017-01-01_2018-12-31 -lat=32.25_lon=62.95238095_date=2017-01-01_2018-12-31 -lat=-13.75_lon=13.95238095_date=2017-01-01_2018-12-31 -lat=26.25_lon=61.95238095_date=2017-01-01_2018-12-31 -lat=-6.75_lon=144.952381_date=2017-01-01_2018-12-31 -lat=-14.75_lon=12.95238095_date=2017-01-01_2018-12-31 -lat=-5.75_lon=144.952381_date=2017-01-01_2018-12-31 -lat=-15.75_lon=13.95238095_date=2017-01-01_2018-12-31 -lat=-6.75_lon=143.952381_date=2017-01-01_2018-12-31 -lat=-4.75_lon=137.952381_date=2017-01-01_2018-12-31 -lat=82.45238095_lon=-43.25_date=2017-01-01_2018-12-31 -lat=83.45238095_lon=-30.25_date=2017-01-01_2018-12-31 -lat=65.95238095_lon=-144.75_date=2017-01-01_2018-12-31 -lat=63.95238095_lon=79.25_date=2017-01-01_2018-12-31 -lat=59.95238095_lon=121.25_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=11.25_date=2017-01-01_2018-12-31 -lat=61.95238095_lon=11.25_date=2017-01-01_2018-12-31 -lat=59.95238095_lon=117.25_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=29.25_date=2017-01-01_2018-12-31 -lat=61.95238095_lon=34.25_date=2017-01-01_2018-12-31 -lat=67.95238095_lon=24.25_date=2017-01-01_2018-12-31 -lat=61.95238095_lon=5.25_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=10.25_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=69.25_date=2017-01-01_2018-12-31 -lat=61.95238095_lon=-6.75_date=2017-01-01_2018-12-31 -lat=63.95238095_lon=-17.75_date=2017-01-01_2018-12-31 -lat=65.95238095_lon=26.25_date=2017-01-01_2018-12-31 -lat=62.95238095_lon=-162.75_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=59.25_date=2017-01-01_2018-12-31 -lat=63.95238095_lon=13.25_date=2017-01-01_2018-12-31 -lat=50.95238095_lon=-61.75_date=2017-01-01_2018-12-31 -lat=-28.75_lon=148.952381_date=2017-01-01_2018-12-31 -lat=30.25_lon=62.95238095_date=2017-01-01_2018-12-31 -lat=47.25_lon=-108.047619_date=2017-01-01_2018-12-31 -lat=37.25_lon=-112.047619_date=2017-01-01_2018-12-31 -lat=28.25_lon=120.952381_date=2017-01-01_2018-12-31 -lat=29.25_lon=-114.047619_date=2017-01-01_2018-12-31 -lat=38.25_lon=-112.047619_date=2017-01-01_2018-12-31 -lat=40.25_lon=-111.047619_date=2017-01-01_2018-12-31 -lat=35.25_lon=63.95238095_date=2017-01-01_2018-12-31 -lat=36.25_lon=63.95238095_date=2017-01-01_2018-12-31 -lat=31.25_lon=61.95238095_date=2017-01-01_2018-12-31 -lat=27.25_lon=84.95238095_date=2017-01-01_2018-12-31 -lat=35.25_lon=62.95238095_date=2017-01-01_2018-12-31 -lat=33.25_lon=63.95238095_date=2017-01-01_2018-12-31 -lat=28.65178571_lon=120.5505952_date=2017-01-01_2018-12-31 -lat=-7.34821429_lon=-69.44940476_date=2017-01-01_2018-12-31 -lat=-5.34821429_lon=145.5505952_date=2017-01-01_2018-12-31 -lat=-5.34821429_lon=144.5505952_date=2017-01-01_2018-12-31 -lat=27.65178571_lon=120.5505952_date=2017-01-01_2018-12-31 -lat=-6.34821429_lon=144.5505952_date=2017-01-01_2018-12-31 -lat=-2.34821429_lon=137.5505952_date=2017-01-01_2018-12-31 -lat=-4.34821429_lon=137.5505952_date=2017-01-01_2018-12-31 -lat=-2.34821429_lon=136.5505952_date=2017-01-01_2018-12-31 -lat=-3.34821429_lon=138.5505952_date=2017-01-01_2018-12-31 -lat=-14.34821429_lon=13.55059524_date=2017-01-01_2018-12-31 -lat=-4.34821429_lon=144.5505952_date=2017-01-01_2018-12-31 -lat=-14.34821429_lon=14.55059524_date=2017-01-01_2018-12-31 -lat=-28.34821429_lon=150.5505952_date=2017-01-01_2018-12-31 -lat=-16.34821429_lon=13.55059524_date=2017-01-01_2018-12-31 -lat=-16.34821429_lon=14.55059524_date=2017-01-01_2018-12-31 -lat=-3.34821429_lon=136.5505952_date=2017-01-01_2018-12-31 -lat=-28.04761905_lon=148.75_date=2017-01-01_2018-12-31 -lat=52.95238095_lon=117.75_date=2017-01-01_2018-12-31 -lat=-27.04761905_lon=151.75_date=2017-01-01_2018-12-31 -lat=27.95238095_lon=120.75_date=2017-01-01_2018-12-31 -lat=44.95238095_lon=133.75_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=-110.25_date=2017-01-01_2018-12-31 -lat=36.95238095_lon=-101.25_date=2017-01-01_2018-12-31 -lat=-27.04761905_lon=150.75_date=2017-01-01_2018-12-31 -lat=62.95238095_lon=22.75_date=2017-01-01_2018-12-31 -lat=-27.04761905_lon=152.75_date=2017-01-01_2018-12-31 -lat=47.95238095_lon=-66.25_date=2017-01-01_2018-12-31 -lat=45.95238095_lon=-109.25_date=2017-01-01_2018-12-31 -lat=49.95238095_lon=118.75_date=2017-01-01_2018-12-31 -lat=65.95238095_lon=29.75_date=2017-01-01_2018-12-31 -lat=63.95238095_lon=23.75_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=27.75_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=24.75_date=2017-01-01_2018-12-31 -lat=-28.04761905_lon=149.75_date=2017-01-01_2018-12-31 -lat=51.95238095_lon=127.75_date=2017-01-01_2018-12-31 -lat=80.95238095_lon=-92.25_date=2017-01-01_2018-12-31 -lat=46.95238095_lon=-108.25_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=23.75_date=2017-01-01_2018-12-31 -lat=-26.04761905_lon=151.75_date=2017-01-01_2018-12-31 -lat=50.95238095_lon=119.75_date=2017-01-01_2018-12-31 -lat=43.95238095_lon=-110.25_date=2017-01-01_2018-12-31 -lat=49.95238095_lon=-56.25_date=2017-01-01_2018-12-31 -lat=45.95238095_lon=-60.25_date=2017-01-01_2018-12-31 -lat=47.95238095_lon=-54.25_date=2017-01-01_2018-12-31 -lat=63.95238095_lon=24.75_date=2017-01-01_2018-12-31 -lat=51.95238095_lon=117.75_date=2017-01-01_2018-12-31 -lat=53.95238095_lon=118.75_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=63.75_date=2017-01-01_2018-12-31 -lat=52.95238095_lon=116.75_date=2017-01-01_2018-12-31 -lat=62.95238095_lon=21.75_date=2017-01-01_2018-12-31 -lat=63.95238095_lon=-145.25_date=2017-01-01_2018-12-31 -lat=47.95238095_lon=-57.25_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=21.75_date=2017-01-01_2018-12-31 -lat=63.95238095_lon=25.75_date=2017-01-01_2018-12-31 -lat=50.95238095_lon=118.75_date=2017-01-01_2018-12-31 -lat=49.95238095_lon=126.75_date=2017-01-01_2018-12-31 -lat=46.95238095_lon=125.75_date=2017-01-01_2018-12-31 -lat=61.95238095_lon=27.75_date=2017-01-01_2018-12-31 -lat=64.95238095_lon=25.75_date=2017-01-01_2018-12-31 -lat=61.95238095_lon=22.75_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=-111.25_date=2017-01-01_2018-12-31 -lat=49.95238095_lon=-107.25_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=163.75_date=2017-01-01_2018-12-31 -lat=62.95238095_lon=23.75_date=2017-01-01_2018-12-31 -lat=-17.54761905_lon=140.75_date=2017-01-01_2018-12-31 -lat=45.45238095_lon=124.75_date=2017-01-01_2018-12-31 -lat=38.45238095_lon=-112.25_date=2017-01-01_2018-12-31 -lat=-26.54761905_lon=150.75_date=2017-01-01_2018-12-31 -lat=-26.54761905_lon=152.75_date=2017-01-01_2018-12-31 -lat=-22.54761905_lon=-46.25_date=2017-01-01_2018-12-31 -lat=61.95238095_lon=25.75_date=2017-01-01_2018-12-31 -lat=61.95238095_lon=21.75_date=2017-01-01_2018-12-31 -lat=70.95238095_lon=178.75_date=2017-01-01_2018-12-31 -lat=80.95238095_lon=-67.25_date=2017-01-01_2018-12-31 -lat=62.95238095_lon=24.75_date=2017-01-01_2018-12-31 -lat=48.45238095_lon=-65.25_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=41.75_date=2017-01-01_2018-12-31 -lat=51.45238095_lon=118.75_date=2017-01-01_2018-12-31 -lat=47.45238095_lon=-53.25_date=2017-01-01_2018-12-31 -lat=39.45238095_lon=-111.25_date=2017-01-01_2018-12-31 -lat=37.45238095_lon=-112.25_date=2017-01-01_2018-12-31 -lat=48.45238095_lon=-54.25_date=2017-01-01_2018-12-31 -lat=42.45238095_lon=-88.25_date=2017-01-01_2018-12-31 -lat=49.45238095_lon=-107.25_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=41.75_date=2017-01-01_2018-12-31 -lat=54.45238095_lon=119.75_date=2017-01-01_2018-12-31 -lat=42.45238095_lon=123.75_date=2017-01-01_2018-12-31 -lat=45.45238095_lon=133.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=43.75_date=2017-01-01_2018-12-31 -lat=44.45238095_lon=-109.25_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=126.75_date=2017-01-01_2018-12-31 -lat=-27.54761905_lon=149.75_date=2017-01-01_2018-12-31 -lat=45.45238095_lon=-109.25_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=25.75_date=2017-01-01_2018-12-31 -lat=52.45238095_lon=117.75_date=2017-01-01_2018-12-31 -lat=30.45238095_lon=120.75_date=2017-01-01_2018-12-31 -lat=-26.54761905_lon=149.75_date=2017-01-01_2018-12-31 -lat=-27.54761905_lon=151.75_date=2017-01-01_2018-12-31 -lat=48.45238095_lon=-108.25_date=2017-01-01_2018-12-31 -lat=43.45238095_lon=-110.25_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=119.75_date=2017-01-01_2018-12-31 -lat=-28.04761905_lon=150.25_date=2017-01-01_2018-12-31 -lat=28.95238095_lon=121.25_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=-149.25_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=22.75_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=40.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=24.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=29.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=25.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=23.75_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=120.75_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=17.75_date=2017-01-01_2018-12-31 -lat=64.45238095_lon=26.75_date=2017-01-01_2018-12-31 -lat=51.45238095_lon=117.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=27.75_date=2017-01-01_2018-12-31 -lat=63.45238095_lon=26.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=49.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=25.75_date=2017-01-01_2018-12-31 -lat=62.45238095_lon=22.75_date=2017-01-01_2018-12-31 -lat=47.95238095_lon=-66.75_date=2017-01-01_2018-12-31 -lat=48.95238095_lon=-107.75_date=2017-01-01_2018-12-31 -lat=46.95238095_lon=125.25_date=2017-01-01_2018-12-31 -lat=-28.04761905_lon=151.25_date=2017-01-01_2018-12-31 -lat=41.95238095_lon=-88.75_date=2017-01-01_2018-12-31 -lat=54.95238095_lon=116.25_date=2017-01-01_2018-12-31 -lat=41.95238095_lon=-109.75_date=2017-01-01_2018-12-31 -lat=52.95238095_lon=-105.75_date=2017-01-01_2018-12-31 -lat=50.95238095_lon=127.25_date=2017-01-01_2018-12-31 -lat=45.95238095_lon=-108.75_date=2017-01-01_2018-12-31 -lat=52.95238095_lon=117.25_date=2017-01-01_2018-12-31 -lat=-28.75_lon=152.952381_date=2017-01-01_2018-12-31 -lat=-28.75_lon=149.952381_date=2017-01-01_2018-12-31 -lat=29.25_lon=120.952381_date=2017-01-01_2018-12-31 -lat=-24.75_lon=149.952381_date=2017-01-01_2018-12-31 -lat=-25.75_lon=151.952381_date=2017-01-01_2018-12-31 -lat=-26.75_lon=152.952381_date=2017-01-01_2018-12-31 -lat=-26.75_lon=150.952381_date=2017-01-01_2018-12-31 -lat=45.95238095_lon=-60.75_date=2017-01-01_2018-12-31 -lat=56.95238095_lon=121.25_date=2017-01-01_2018-12-31 -lat=63.95238095_lon=-149.75_date=2017-01-01_2018-12-31 -lat=61.95238095_lon=23.25_date=2017-01-01_2018-12-31 -lat=63.95238095_lon=25.25_date=2017-01-01_2018-12-31 -lat=59.95238095_lon=13.25_date=2017-01-01_2018-12-31 -lat=61.95238095_lon=22.25_date=2017-01-01_2018-12-31 -lat=52.95238095_lon=128.25_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=50.25_date=2017-01-01_2018-12-31 -lat=50.95238095_lon=118.25_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=25.25_date=2017-01-01_2018-12-31 -lat=55.95238095_lon=-107.75_date=2017-01-01_2018-12-31 -lat=62.95238095_lon=18.25_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=5.25_date=2017-01-01_2018-12-31 -lat=61.95238095_lon=24.25_date=2017-01-01_2018-12-31 -lat=47.95238095_lon=-56.75_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=23.25_date=2017-01-01_2018-12-31 -lat=52.95238095_lon=118.25_date=2017-01-01_2018-12-31 -lat=44.25_lon=-109.047619_date=2017-01-01_2018-12-31 -lat=-28.75_lon=150.952381_date=2017-01-01_2018-12-31 -lat=-19.75_lon=-175.047619_date=2017-01-01_2018-12-31 -lat=42.25_lon=123.952381_date=2017-01-01_2018-12-31 -lat=50.25_lon=119.952381_date=2017-01-01_2018-12-31 -lat=-28.75_lon=151.952381_date=2017-01-01_2018-12-31 -lat=-27.75_lon=149.952381_date=2017-01-01_2018-12-31 -lat=-29.34821429_lon=147.5505952_date=2017-01-01_2018-12-31 -lat=-26.34821429_lon=149.5505952_date=2017-01-01_2018-12-31 -lat=-11.34821429_lon=136.5505952_date=2017-01-01_2018-12-31 -lat=80.95238095_lon=-79.75_date=2017-01-01_2018-12-31 -lat=78.95238095_lon=-85.75_date=2017-01-01_2018-12-31 -lat=65.95238095_lon=21.25_date=2017-01-01_2018-12-31 -lat=52.25_lon=127.952381_date=2017-01-01_2018-12-31 -lat=48.25_lon=125.952381_date=2017-01-01_2018-12-31 -lat=50.25_lon=-107.047619_date=2017-01-01_2018-12-31 -lat=54.25_lon=128.952381_date=2017-01-01_2018-12-31 -lat=46.25_lon=-63.04761905_date=2017-01-01_2018-12-31 -lat=55.25_lon=118.952381_date=2017-01-01_2018-12-31 -lat=61.25_lon=23.95238095_date=2017-01-01_2018-12-31 -lat=60.25_lon=43.95238095_date=2017-01-01_2018-12-31 -lat=45.25_lon=-109.047619_date=2017-01-01_2018-12-31 -lat=52.25_lon=116.952381_date=2017-01-01_2018-12-31 -lat=51.25_lon=118.952381_date=2017-01-01_2018-12-31 -lat=46.25_lon=-109.047619_date=2017-01-01_2018-12-31 -lat=51.25_lon=119.952381_date=2017-01-01_2018-12-31 -lat=-27.34821429_lon=151.5505952_date=2017-01-01_2018-12-31 -lat=42.65178571_lon=-110.4494048_date=2017-01-01_2018-12-31 -lat=42.65178571_lon=124.5505952_date=2017-01-01_2018-12-31 -lat=-26.34821429_lon=152.5505952_date=2017-01-01_2018-12-31 -lat=31.65178571_lon=121.5505952_date=2017-01-01_2018-12-31 -lat=-27.34821429_lon=150.5505952_date=2017-01-01_2018-12-31 -lat=-5.84821429_lon=143.452381_date=2017-01-01_2018-12-31 -lat=-3.84821429_lon=136.452381_date=2017-01-01_2018-12-31 -lat=-26.84821429_lon=150.452381_date=2017-01-01_2018-12-31 -lat=-27.84821429_lon=149.452381_date=2017-01-01_2018-12-31 -lat=64.25_lon=26.95238095_date=2017-01-01_2018-12-31 -lat=61.25_lon=28.95238095_date=2017-01-01_2018-12-31 -lat=61.25_lon=22.95238095_date=2017-01-01_2018-12-31 -lat=64.25_lon=24.95238095_date=2017-01-01_2018-12-31 -lat=63.25_lon=22.95238095_date=2017-01-01_2018-12-31 -lat=67.25_lon=179.952381_date=2017-01-01_2018-12-31 -lat=64.25_lon=23.95238095_date=2017-01-01_2018-12-31 -lat=61.25_lon=159.952381_date=2017-01-01_2018-12-31 -lat=63.25_lon=8.95238095_date=2017-01-01_2018-12-31 -lat=62.25_lon=27.95238095_date=2017-01-01_2018-12-31 -lat=66.25_lon=27.95238095_date=2017-01-01_2018-12-31 -lat=68.25_lon=-114.047619_date=2017-01-01_2018-12-31 -lat=48.65178571_lon=-55.44940476_date=2017-01-01_2018-12-31 -lat=51.65178571_lon=127.5505952_date=2017-01-01_2018-12-31 -lat=39.65178571_lon=-110.4494048_date=2017-01-01_2018-12-31 -lat=45.65178571_lon=133.5505952_date=2017-01-01_2018-12-31 -lat=48.65178571_lon=-107.4494048_date=2017-01-01_2018-12-31 -lat=50.65178571_lon=120.5505952_date=2017-01-01_2018-12-31 -lat=50.65178571_lon=117.5505952_date=2017-01-01_2018-12-31 -lat=44.65178571_lon=135.5505952_date=2017-01-01_2018-12-31 -lat=45.65178571_lon=124.5505952_date=2017-01-01_2018-12-31 -lat=45.65178571_lon=-109.4494048_date=2017-01-01_2018-12-31 -lat=-28.84821429_lon=150.452381_date=2017-01-01_2018-12-31 -lat=-26.84821429_lon=151.452381_date=2017-01-01_2018-12-31 -lat=-27.84821429_lon=150.452381_date=2017-01-01_2018-12-31 -lat=37.15178571_lon=-112.547619_date=2017-01-01_2018-12-31 -lat=-28.84821429_lon=149.452381_date=2017-01-01_2018-12-31 -lat=-3.34821429_lon=137.952381_date=2017-01-01_2018-12-31 -lat=80.25_lon=-88.04761905_date=2017-01-01_2018-12-31 -lat=80.25_lon=-86.04761905_date=2017-01-01_2018-12-31 -lat=81.25_lon=55.95238095_date=2017-01-01_2018-12-31 -lat=51.65178571_lon=117.5505952_date=2017-01-01_2018-12-31 -lat=61.65178571_lon=-158.4494048_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=41.55059524_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=29.55059524_date=2017-01-01_2018-12-31 -lat=61.65178571_lon=29.55059524_date=2017-01-01_2018-12-31 -lat=53.65178571_lon=116.5505952_date=2017-01-01_2018-12-31 -lat=64.65178571_lon=-147.4494048_date=2017-01-01_2018-12-31 -lat=50.65178571_lon=119.5505952_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=27.55059524_date=2017-01-01_2018-12-31 -lat=61.65178571_lon=30.55059524_date=2017-01-01_2018-12-31 -lat=62.65178571_lon=23.55059524_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=22.55059524_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=25.55059524_date=2017-01-01_2018-12-31 -lat=63.65178571_lon=27.55059524_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=57.55059524_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=23.55059524_date=2017-01-01_2018-12-31 -lat=63.65178571_lon=18.55059524_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=21.55059524_date=2017-01-01_2018-12-31 -lat=61.65178571_lon=22.55059524_date=2017-01-01_2018-12-31 -lat=42.15178571_lon=124.452381_date=2017-01-01_2018-12-31 -lat=34.15178571_lon=63.45238095_date=2017-01-01_2018-12-31 -lat=39.15178571_lon=-111.547619_date=2017-01-01_2018-12-31 -lat=-28.34821429_lon=148.952381_date=2017-01-01_2018-12-31 -lat=31.65178571_lon=120.952381_date=2017-01-01_2018-12-31 -lat=-14.34821429_lon=-72.04761905_date=2017-01-01_2018-12-31 -lat=37.65178571_lon=-112.047619_date=2017-01-01_2018-12-31 -lat=-4.75_lon=145.6517857_date=2017-01-01_2018-12-31 -lat=82.25_lon=-84.04761905_date=2017-01-01_2018-12-31 -lat=69.65178571_lon=-141.4494048_date=2017-01-01_2018-12-31 -lat=63.65178571_lon=23.55059524_date=2017-01-01_2018-12-31 -lat=61.65178571_lon=23.55059524_date=2017-01-01_2018-12-31 -lat=71.65178571_lon=-104.4494048_date=2017-01-01_2018-12-31 -lat=60.15178571_lon=24.45238095_date=2017-01-01_2018-12-31 -lat=63.15178571_lon=27.45238095_date=2017-01-01_2018-12-31 -lat=53.15178571_lon=117.452381_date=2017-01-01_2018-12-31 -lat=49.15178571_lon=126.452381_date=2017-01-01_2018-12-31 -lat=50.15178571_lon=119.452381_date=2017-01-01_2018-12-31 -lat=43.65178571_lon=-110.047619_date=2017-01-01_2018-12-31 -lat=42.65178571_lon=-110.047619_date=2017-01-01_2018-12-31 -lat=45.65178571_lon=124.952381_date=2017-01-01_2018-12-31 -lat=30.65178571_lon=120.952381_date=2017-01-01_2018-12-31 -lat=41.65178571_lon=-110.047619_date=2017-01-01_2018-12-31 -lat=41.65178571_lon=-88.04761905_date=2017-01-01_2018-12-31 -lat=-27.75_lon=152.6517857_date=2017-01-01_2018-12-31 -lat=-28.75_lon=149.6517857_date=2017-01-01_2018-12-31 -lat=-27.75_lon=151.6517857_date=2017-01-01_2018-12-31 -lat=29.25_lon=120.6517857_date=2017-01-01_2018-12-31 -lat=-28.75_lon=150.6517857_date=2017-01-01_2018-12-31 -lat=-26.75_lon=148.6517857_date=2017-01-01_2018-12-31 -lat=-26.75_lon=150.6517857_date=2017-01-01_2018-12-31 -lat=80.65178571_lon=-87.44940476_date=2017-01-01_2018-12-31 -lat=77.65178571_lon=-83.44940476_date=2017-01-01_2018-12-31 -lat=60.15178571_lon=13.45238095_date=2017-01-01_2018-12-31 -lat=64.15178571_lon=26.45238095_date=2017-01-01_2018-12-31 -lat=62.15178571_lon=21.45238095_date=2017-01-01_2018-12-31 -lat=64.15178571_lon=29.45238095_date=2017-01-01_2018-12-31 -lat=62.15178571_lon=26.45238095_date=2017-01-01_2018-12-31 -lat=62.15178571_lon=30.45238095_date=2017-01-01_2018-12-31 -lat=60.15178571_lon=78.45238095_date=2017-01-01_2018-12-31 -lat=62.15178571_lon=-157.547619_date=2017-01-01_2018-12-31 -lat=65.15178571_lon=-151.547619_date=2017-01-01_2018-12-31 -lat=61.15178571_lon=46.45238095_date=2017-01-01_2018-12-31 -lat=63.15178571_lon=14.45238095_date=2017-01-01_2018-12-31 -lat=62.15178571_lon=25.45238095_date=2017-01-01_2018-12-31 -lat=46.65178571_lon=-65.04761905_date=2017-01-01_2018-12-31 -lat=48.65178571_lon=-54.04761905_date=2017-01-01_2018-12-31 -lat=51.65178571_lon=119.952381_date=2017-01-01_2018-12-31 -lat=49.65178571_lon=126.952381_date=2017-01-01_2018-12-31 -lat=50.65178571_lon=126.952381_date=2017-01-01_2018-12-31 -lat=50.65178571_lon=-107.047619_date=2017-01-01_2018-12-31 -lat=53.65178571_lon=117.952381_date=2017-01-01_2018-12-31 -lat=51.65178571_lon=117.952381_date=2017-01-01_2018-12-31 -lat=50.65178571_lon=119.952381_date=2017-01-01_2018-12-31 -lat=38.25_lon=-111.3482143_date=2017-01-01_2018-12-31 -lat=42.25_lon=123.6517857_date=2017-01-01_2018-12-31 -lat=41.25_lon=-110.3482143_date=2017-01-01_2018-12-31 -lat=43.25_lon=124.6517857_date=2017-01-01_2018-12-31 -lat=42.25_lon=-110.3482143_date=2017-01-01_2018-12-31 -lat=39.25_lon=-111.3482143_date=2017-01-01_2018-12-31 -lat=36.25_lon=64.65178571_date=2017-01-01_2018-12-31 -lat=-28.75_lon=151.6517857_date=2017-01-01_2018-12-31 -lat=-27.25_lon=152.3511905_date=2017-01-01_2018-12-31 -lat=-27.25_lon=151.3511905_date=2017-01-01_2018-12-31 -lat=-25.25_lon=152.3511905_date=2017-01-01_2018-12-31 -lat=28.75_lon=121.3511905_date=2017-01-01_2018-12-31 -lat=-29.25_lon=149.3511905_date=2017-01-01_2018-12-31 -lat=65.15178571_lon=25.45238095_date=2017-01-01_2018-12-31 -lat=69.15178571_lon=-101.547619_date=2017-01-01_2018-12-31 -lat=63.65178571_lon=22.95238095_date=2017-01-01_2018-12-31 -lat=64.65178571_lon=20.95238095_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=22.95238095_date=2017-01-01_2018-12-31 -lat=61.65178571_lon=22.95238095_date=2017-01-01_2018-12-31 -lat=63.65178571_lon=-84.04761905_date=2017-01-01_2018-12-31 -lat=62.65178571_lon=22.95238095_date=2017-01-01_2018-12-31 -lat=62.65178571_lon=21.95238095_date=2017-01-01_2018-12-31 -lat=62.65178571_lon=25.95238095_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=25.95238095_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=21.95238095_date=2017-01-01_2018-12-31 -lat=60.65178571_lon=76.95238095_date=2017-01-01_2018-12-31 -lat=46.25_lon=-60.34821429_date=2017-01-01_2018-12-31 -lat=52.25_lon=127.6517857_date=2017-01-01_2018-12-31 -lat=40.25_lon=-111.3482143_date=2017-01-01_2018-12-31 -lat=51.25_lon=119.6517857_date=2017-01-01_2018-12-31 -lat=43.25_lon=-110.3482143_date=2017-01-01_2018-12-31 -lat=45.25_lon=133.6517857_date=2017-01-01_2018-12-31 -lat=50.25_lon=119.6517857_date=2017-01-01_2018-12-31 -lat=51.25_lon=127.6517857_date=2017-01-01_2018-12-31 -lat=50.25_lon=118.6517857_date=2017-01-01_2018-12-31 -lat=42.75_lon=-109.6488095_date=2017-01-01_2018-12-31 -lat=41.75_lon=-110.6488095_date=2017-01-01_2018-12-31 -lat=31.75_lon=121.3511905_date=2017-01-01_2018-12-31 -lat=37.75_lon=-25.64880952_date=2017-01-01_2018-12-31 -lat=-28.25_lon=153.3511905_date=2017-01-01_2018-12-31 -lat=-27.25_lon=150.3511905_date=2017-01-01_2018-12-31 -lat=39.75_lon=-110.6488095_date=2017-01-01_2018-12-31 -lat=-27.84821429_lon=153.1517857_date=2017-01-01_2018-12-31 -lat=-24.84821429_lon=151.1517857_date=2017-01-01_2018-12-31 -lat=30.15178571_lon=121.1517857_date=2017-01-01_2018-12-31 -lat=-26.84821429_lon=152.1517857_date=2017-01-01_2018-12-31 -lat=-27.84821429_lon=152.1517857_date=2017-01-01_2018-12-31 -lat=-6.14880952_lon=144.0505952_date=2017-01-01_2018-12-31 -lat=-6.14880952_lon=145.0505952_date=2017-01-01_2018-12-31 -lat=60.45238095_lon=23.25_date=2017-01-01_2018-12-31 -lat=47.45238095_lon=126.25_date=2017-01-01_2018-12-31 -lat=41.45238095_lon=-88.75_date=2017-01-01_2018-12-31 -lat=43.45238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=51.45238095_lon=-106.75_date=2017-01-01_2018-12-31 -lat=42.95238095_lon=123.75_date=2017-01-01_2018-12-31 -lat=42.95238095_lon=-110.25_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=-88.25_date=2017-01-01_2018-12-31 -lat=-28.04761905_lon=150.75_date=2017-01-01_2018-12-31 -lat=31.95238095_lon=121.75_date=2017-01-01_2018-12-31 -lat=47.95238095_lon=125.75_date=2017-01-01_2018-12-31 -lat=50.95238095_lon=117.75_date=2017-01-01_2018-12-31 -lat=48.95238095_lon=126.75_date=2017-01-01_2018-12-31 -lat=38.95238095_lon=-111.25_date=2017-01-01_2018-12-31 -lat=45.95238095_lon=124.75_date=2017-01-01_2018-12-31 -lat=60.95238095_lon=22.75_date=2017-01-01_2018-12-31 -lat=42.95238095_lon=-88.25_date=2017-01-01_2018-12-31 -lat=49.95238095_lon=117.75_date=2017-01-01_2018-12-31 -lat=41.95238095_lon=-88.25_date=2017-01-01_2018-12-31 -lat=51.95238095_lon=-106.25_date=2017-01-01_2018-12-31 -lat=-13.54761905_lon=13.75_date=2017-01-01_2018-12-31 -lat=41.45238095_lon=-88.25_date=2017-01-01_2018-12-31 -lat=13.45238095_lon=34.75_date=2017-01-01_2018-12-31 -lat=-29.54761905_lon=148.75_date=2017-01-01_2018-12-31 -lat=43.45238095_lon=124.75_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=117.75_date=2017-01-01_2018-12-31 -lat=43.45238095_lon=123.75_date=2017-01-01_2018-12-31 -lat=-28.54761905_lon=148.75_date=2017-01-01_2018-12-31 -lat=47.45238095_lon=125.75_date=2017-01-01_2018-12-31 -lat=46.45238095_lon=125.75_date=2017-01-01_2018-12-31 -lat=50.45238095_lon=-107.25_date=2017-01-01_2018-12-31 -lat=-27.04761905_lon=151.25_date=2017-01-01_2018-12-31 -lat=13.95238095_lon=35.25_date=2017-01-01_2018-12-31 -lat=5.95238095_lon=-0.75_date=2017-01-01_2018-12-31 -lat=61.45238095_lon=21.75_date=2017-01-01_2018-12-31 -lat=52.45238095_lon=-106.25_date=2017-01-01_2018-12-31 -lat=47.95238095_lon=126.25_date=2017-01-01_2018-12-31 -lat=48.95238095_lon=126.25_date=2017-01-01_2018-12-31 -lat=41.95238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=-29.04761905_lon=149.25_date=2017-01-01_2018-12-31 -lat=-27.04761905_lon=149.25_date=2017-01-01_2018-12-31 -lat=31.95238095_lon=121.25_date=2017-01-01_2018-12-31 -lat=41.95238095_lon=123.25_date=2017-01-01_2018-12-31 -lat=42.95238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=40.95238095_lon=-87.75_date=2017-01-01_2018-12-31 -lat=-29.04761905_lon=150.25_date=2017-01-01_2018-12-31 -lat=-28.04761905_lon=152.25_date=2017-01-01_2018-12-31 -lat=-25.04761905_lon=152.25_date=2017-01-01_2018-12-31 -lat=43.95238095_lon=124.25_date=2017-01-01_2018-12-31 -lat=46.95238095_lon=-108.75_date=2017-01-01_2018-12-31 -lat=49.95238095_lon=118.25_date=2017-01-01_2018-12-31 -lat=14.25_lon=33.95238095_date=2017-01-01_2018-12-31 -lat=14.25_lon=34.95238095_date=2017-01-01_2018-12-31 -lat=-27.75_lon=151.952381_date=2017-01-01_2018-12-31 -lat=-17.75_lon=13.95238095_date=2017-01-01_2018-12-31 -lat=13.25_lon=33.95238095_date=2017-01-01_2018-12-31 -lat=42.95238095_lon=-88.75_date=2017-01-01_2018-12-31 -lat=50.95238095_lon=119.25_date=2017-01-01_2018-12-31 -lat=50.95238095_lon=-106.75_date=2017-01-01_2018-12-31 -lat=45.95238095_lon=125.25_date=2017-01-01_2018-12-31 -lat=42.25_lon=-88.04761905_date=2017-01-01_2018-12-31 -lat=41.25_lon=-88.04761905_date=2017-01-01_2018-12-31 -lat=34.25_lon=62.95238095_date=2017-01-01_2018-12-31 -lat=39.25_lon=-111.047619_date=2017-01-01_2018-12-31 -lat=43.25_lon=123.952381_date=2017-01-01_2018-12-31 -lat=45.25_lon=124.952381_date=2017-01-01_2018-12-31 -lat=-26.75_lon=151.952381_date=2017-01-01_2018-12-31 -lat=12.65178571_lon=34.55059524_date=2017-01-01_2018-12-31 \ No newline at end of file diff --git a/crop-mask-example/datasets.py b/crop-mask-example/datasets.py index 04cd696f..e282a259 100644 --- a/crop-mask-example/datasets.py +++ b/crop-mask-example/datasets.py @@ -1,6 +1,6 @@ from typing import List -from openmapflow.labeled_dataset import LabeledDataset +from openmapflow.labeled_dataset import LabeledDataset, create_datasets from openmapflow.raw_labels import RawLabels datasets: List[LabeledDataset] = [ @@ -62,3 +62,6 @@ ), ), ] + +if __name__ == "__main__": + create_datasets(datasets) diff --git a/crop-mask-example/evaluate.py b/crop-mask-example/evaluate.py index 4678caf7..bb7ada51 100644 --- a/crop-mask-example/evaluate.py +++ b/crop-mask-example/evaluate.py @@ -40,7 +40,7 @@ model_path = model_path_from_name(model_name=model_name) # ------------ Dataloaders ------------------------------------- -df = pd.concat([d.load_labels() for d in datasets]) +df = pd.concat([d.load_df() for d in datasets]) test_data = PyTorchDataset( df=df[df[SUBSET] == "testing"], start_month=start_month, subset="testing" ) diff --git a/crop-mask-example/openmapflow.yaml b/crop-mask-example/openmapflow.yaml index 85741e4a..4ca6bc37 100644 --- a/crop-mask-example/openmapflow.yaml +++ b/crop-mask-example/openmapflow.yaml @@ -1,10 +1,10 @@ -version: 0.0.2 +version: 0.1.0 project: crop-mask-example description: OpenMapFlow crop mask example gcloud: project_id: bsos-geog-harvest1 location: us-central1 - bucket_labeled_tifs: crop-mask-tifs2 - bucket_inference_tifs: crop-mask-example-inference-tifs + bucket_labeled_eo: crop-mask-tifs2 + bucket_inference_eo: crop-mask-example-inference-tifs bucket_preds: crop-mask-example-preds bucket_preds_merged: crop-mask-example-preds-merged \ No newline at end of file diff --git a/crop-mask-example/requirements.txt b/crop-mask-example/requirements.txt new file mode 100644 index 00000000..d8252b2c --- /dev/null +++ b/crop-mask-example/requirements.txt @@ -0,0 +1,3 @@ +matplotlib +openmapflow +tsai \ No newline at end of file diff --git a/crop-mask-example/train.py b/crop-mask-example/train.py index fae2cb89..b6622954 100644 --- a/crop-mask-example/train.py +++ b/crop-mask-example/train.py @@ -62,7 +62,7 @@ import wandb # ------------ Dataloaders ------------------------------------- -df = pd.concat([d.load_labels() for d in datasets]) +df = pd.concat([d.load_df() for d in tqdm(datasets, desc="Loading datasets")]) train_df = df[df[SUBSET] == "training"].copy() val_df = df[df[SUBSET] == "validation"].copy() train_data = PyTorchDataset( diff --git a/crop-mask-example/tutorial.ipynb b/crop-mask-example/tutorial.ipynb deleted file mode 100644 index 97ed72dc..00000000 --- a/crop-mask-example/tutorial.ipynb +++ /dev/null @@ -1,1647 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "id": "ZJ2Sgm2z9Opu" - }, - "source": [ - "# OpenMapFlow Tutorial\n", - "\n", - "\n", - "\n", - "### Sections\n", - "1. Installing OpenMapFlow\n", - "2. Exploring labeled earth observation data\n", - "3. Training a cropland model\n", - "4. Doing inference over small region\n", - "5. [OPTIONAL] Deploying of best model\n", - "\n", - "### Prerequisites:\n", - "- Github account\n", - "- Github access token (obtained [here](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token))\n", - "- Forked OpenMapFlow repository \n", - "- Basic Python knowledge \n", - "\n", - "### Editable Google Doc for Q&A:\n", - "https://docs.google.com/document/d/1Kp6MphER1G5tdLYeAzl4n19S10TweIxiYT64rXsjKm4/edit?usp=sharing" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "Bnb3NmfxSQyo" - }, - "source": [ - "## 1. Clone Github repo and install OpenMapFlow\n", - "\n", - "" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "id": "zxD8Zbzr8lyu" - }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "263eda8fd9334c9787722690ce28eb46", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "VBox(children=(Password(description='Github Token:'), Text(value='', description='Github Email:'), Text(value=…" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "from ipywidgets import HTML, Password, Text, Textarea, VBox\n", - "inputs = [\n", - " Password(description=\"Github Token:\"),\n", - " Text(description='Github Email:'),\n", - " Text(description='Github User:'),\n", - "]\n", - "VBox(inputs)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "FPx50syXx0aP" - }, - "source": [ - "The OpenMapFlow repository will be cloned to allow access to already available data. \n", - "\n", - "Ensure you have created a fork of the repository. " - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "id": "16CaMAzNxokf" - }, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "a3da0cd530de4bc491d0fceb25e48336", - "version_major": 2, - "version_minor": 0 - }, - "text/plain": [ - "VBox(children=(HTML(value='Github Clone URL'), Textarea(value='https://github.com/ivanzvonkov/openmapfl…" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "token = inputs[0].value\n", - "email = inputs[1].value\n", - "username = inputs[2].value\n", - "\n", - "github_url_input = Textarea(value=f'https://github.com/{username}/openmapflow.git')\n", - "VBox([HTML(value=\"Github Clone URL\"), github_url_input])" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "id": "CdFlxgOX9Mit" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[33mWARNING: You are using pip version 20.1.1; however, version 22.1.2 is available.\n", - "You should consider upgrading via the '/Users/izvonkov/nasaharvest/openmapflow/venv/bin/python -m pip install --upgrade pip' command.\u001b[0m\n", - "\u001b[31mERROR: python-benedict 0.25.1 has requirement pyyaml<7.0,>=6.0, but you'll have pyyaml 5.4.1 which is incompatible.\u001b[0m\n", - "\u001b[31mERROR: openmapflow 0.0.1rc1 has requirement pyyaml>=6.0, but you'll have pyyaml 5.4.1 which is incompatible.\u001b[0m\n", - "\u001b[33mWARNING: You are using pip version 20.1.1; however, version 22.1.2 is available.\n", - "You should consider upgrading via the '/Users/izvonkov/nasaharvest/openmapflow/venv/bin/python -m pip install --upgrade pip' command.\u001b[0m\n" - ] - } - ], - "source": [ - "from pathlib import Path\n", - "\n", - "github_url = github_url_input.value\n", - "project_name = \"crop-mask-example\"\n", - "\n", - "for input_value in [token, email, username, github_url]:\n", - " if input_value.strip() == \"\":\n", - " raise ValueError(\"Found input with blank value.\") \n", - "\n", - "path_to_project = f\"{Path(github_url).stem}/{project_name}\"\n", - "\n", - "#!git config --global user.email $username\n", - "#!git config --global user.name $email\n", - "#!git clone {github_url.replace(\"https://\", f\"https://{username}:{token}@\")}\n", - "\n", - "!pip install openmapflow -q\n", - "!pip install wandb pyyaml==5.4.1 -q\n", - "\n", - "#%cd {path_to_project}" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "id": "ckKKdRZW-06Q" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "---------------------------------------------------------------------------------\r\n", - " OpenMapFlow CLI\r\n", - "---------------------------------------------------------------------------------\r\n", - "openmapflow cp - copy a file or directory from the library\r\n", - "openmapflow create-features - creates features for all datasets in datasets.py\r\n", - "openmapflow datapath - outputs a relative path to the data directory\r\n", - "openmapflow datasets - outputs a list of all datasets\r\n", - "openmapflow deploy - deploys Google Cloud Architecture for project\r\n", - "openmapflow dir - outputs openmapflow library directory\r\n", - "openmapflow generate - generates an openmapflow project\r\n", - "openmapflow help - outputs this message\r\n", - "openmapflow ls - lists files in openmapflow library directory\r\n", - "openmapflow version - package version\r\n" - ] - } - ], - "source": [ - "# CLI\n", - "!openmapflow" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "vT5oQHkeBDIg" - }, - "source": [ - "## 2. Exploring labeled earth observation data 🛰️\n", - "\n", - "" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "id": "rR9cC92EIKC6" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[0m" - ] - } - ], - "source": [ - "# Pull in data already available\n", - "!dvc pull -q\n", - "!tar -xzf $(openmapflow datapath COMPRESSED_FEATURES) -C data" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "id": "1tc1Hblc-7vf" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "DATASET REPORT (autogenerated, do not edit directly)\r\n", - "\r\n", - "geowiki_landcover_2017 (Timesteps: 24)\r\n", - "----------------------------------------------------------------------------\r\n", - "✔ training amount: 34270,positive class: 21.2%\r\n", - "\r\n", - "\r\n", - "Togo_2019 (Timesteps: 24)\r\n", - "----------------------------------------------------------------------------\r\n", - "✔ training amount: 991,positive class: 53.0%\r\n", - "✔ testing amount: 309,positive class: 34.6%\r\n", - "✔ validation amount: 277,positive class: 56.7%\r\n", - "\r\n", - "\r\n", - "All data:\r\n", - "✔ Found no empty features\r\n", - "✔ No duplicates found" - ] - } - ], - "source": [ - "# See report of data already available\n", - "!openmapflow datasets" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "IzHcMQV1S0pS" - }, - "source": [ - "### Exploring labels" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "id": "swxLRI8B_4iY" - }, - "outputs": [], - "source": [ - "import pandas as pd\n", - "import geopandas as gpd\n", - "from shapely.geometry import Point\n", - "from datasets import datasets\n", - "from openmapflow.constants import LAT, LON, DATASET, SUBSET" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "id": "bXff9QLi_8DZ" - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
lonlatstart_dateend_datesourceclass_probabilitynum_labelerssubsetanalysis_durationemailcountrydatasetfilenamefeature_dirsave_pathalready_exists
046.25-16.5476192017-01-012018-12-31loc_all_2.txt0.0000005training,,,,,,,,globalgeowiki_landcover_2017lat=-16.54761905_lon=46.25_date=2017-01-01_201...data/featuresdata/features/lat=-16.54761905_lon=46.25_date=...True
148.25-18.5476192017-01-012018-12-31loc_all_2.txt0.1360005training,,,,,,,,globalgeowiki_landcover_2017lat=-18.54761905_lon=48.25_date=2017-01-01_201...data/featuresdata/features/lat=-18.54761905_lon=48.25_date=...True
244.25-21.5476192017-01-012018-12-31loc_all_2.txt0.0000005training,,,,,,,,globalgeowiki_landcover_2017lat=-21.54761905_lon=44.25_date=2017-01-01_201...data/featuresdata/features/lat=-21.54761905_lon=44.25_date=...True
345.25-17.5476192017-01-012018-12-31loc_all_2.txt0.07333312training,,,,,,,,,,,,,,,,,,,,,,globalgeowiki_landcover_2017lat=-17.54761905_lon=45.25_date=2017-01-01_201...data/featuresdata/features/lat=-17.54761905_lon=45.25_date=...True
446.25-21.5476192017-01-012018-12-31loc_all_2.txt0.0000005training,,,,,,,,globalgeowiki_landcover_2017lat=-21.54761905_lon=46.25_date=2017-01-01_201...data/featuresdata/features/lat=-21.54761905_lon=46.25_date=...True
\n", - "
" - ], - "text/plain": [ - " lon lat start_date end_date source class_probability \\\n", - "0 46.25 -16.547619 2017-01-01 2018-12-31 loc_all_2.txt 0.000000 \n", - "1 48.25 -18.547619 2017-01-01 2018-12-31 loc_all_2.txt 0.136000 \n", - "2 44.25 -21.547619 2017-01-01 2018-12-31 loc_all_2.txt 0.000000 \n", - "3 45.25 -17.547619 2017-01-01 2018-12-31 loc_all_2.txt 0.073333 \n", - "4 46.25 -21.547619 2017-01-01 2018-12-31 loc_all_2.txt 0.000000 \n", - "\n", - " num_labelers subset analysis_duration email country \\\n", - "0 5 training ,,,, ,,,, global \n", - "1 5 training ,,,, ,,,, global \n", - "2 5 training ,,,, ,,,, global \n", - "3 12 training ,,,,,,,,,,, ,,,,,,,,,,, global \n", - "4 5 training ,,,, ,,,, global \n", - "\n", - " dataset filename \\\n", - "0 geowiki_landcover_2017 lat=-16.54761905_lon=46.25_date=2017-01-01_201... \n", - "1 geowiki_landcover_2017 lat=-18.54761905_lon=48.25_date=2017-01-01_201... \n", - "2 geowiki_landcover_2017 lat=-21.54761905_lon=44.25_date=2017-01-01_201... \n", - "3 geowiki_landcover_2017 lat=-17.54761905_lon=45.25_date=2017-01-01_201... \n", - "4 geowiki_landcover_2017 lat=-21.54761905_lon=46.25_date=2017-01-01_201... \n", - "\n", - " feature_dir save_path \\\n", - "0 data/features data/features/lat=-16.54761905_lon=46.25_date=... \n", - "1 data/features data/features/lat=-18.54761905_lon=48.25_date=... \n", - "2 data/features data/features/lat=-21.54761905_lon=44.25_date=... \n", - "3 data/features data/features/lat=-17.54761905_lon=45.25_date=... \n", - "4 data/features data/features/lat=-21.54761905_lon=46.25_date=... \n", - "\n", - " already_exists \n", - "0 True \n", - "1 True \n", - "2 True \n", - "3 True \n", - "4 True " - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Load labels as csv\n", - "df = pd.concat([d.load_labels() for d in datasets])\n", - "df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "id": "dipJRY6MZUqf" - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "# Plot map where labels should go\n", - "world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))\n", - "world.plot(facecolor=\"lightgray\", figsize=(15, 15));" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "id": "umWD778JQ4Jf" - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
pop_estcontinentnameiso_a3gdp_md_estgeometry
0920938OceaniaFijiFJI8374.0MULTIPOLYGON (((180.00000 -16.06713, 180.00000...
153950935AfricaTanzaniaTZA150600.0POLYGON ((33.90371 -0.95000, 34.07262 -1.05982...
2603253AfricaW. SaharaESH906.5POLYGON ((-8.66559 27.65643, -8.66512 27.58948...
335623680North AmericaCanadaCAN1674000.0MULTIPOLYGON (((-122.84000 49.00000, -122.9742...
4326625791North AmericaUnited States of AmericaUSA18560000.0MULTIPOLYGON (((-122.84000 49.00000, -120.0000...
.....................
1727111024EuropeSerbiaSRB101800.0POLYGON ((18.82982 45.90887, 18.82984 45.90888...
173642550EuropeMontenegroMNE10610.0POLYGON ((20.07070 42.58863, 19.80161 42.50009...
1741895250EuropeKosovo-9918490.0POLYGON ((20.59025 41.85541, 20.52295 42.21787...
1751218208North AmericaTrinidad and TobagoTTO43570.0POLYGON ((-61.68000 10.76000, -61.10500 10.890...
17613026129AfricaS. SudanSSD20880.0POLYGON ((30.83385 3.50917, 29.95350 4.17370, ...
\n", - "

177 rows × 6 columns

\n", - "
" - ], - "text/plain": [ - " pop_est continent name iso_a3 gdp_md_est \\\n", - "0 920938 Oceania Fiji FJI 8374.0 \n", - "1 53950935 Africa Tanzania TZA 150600.0 \n", - "2 603253 Africa W. Sahara ESH 906.5 \n", - "3 35623680 North America Canada CAN 1674000.0 \n", - "4 326625791 North America United States of America USA 18560000.0 \n", - ".. ... ... ... ... ... \n", - "172 7111024 Europe Serbia SRB 101800.0 \n", - "173 642550 Europe Montenegro MNE 10610.0 \n", - "174 1895250 Europe Kosovo -99 18490.0 \n", - "175 1218208 North America Trinidad and Tobago TTO 43570.0 \n", - "176 13026129 Africa S. Sudan SSD 20880.0 \n", - "\n", - " geometry \n", - "0 MULTIPOLYGON (((180.00000 -16.06713, 180.00000... \n", - "1 POLYGON ((33.90371 -0.95000, 34.07262 -1.05982... \n", - "2 POLYGON ((-8.66559 27.65643, -8.66512 27.58948... \n", - "3 MULTIPOLYGON (((-122.84000 49.00000, -122.9742... \n", - "4 MULTIPOLYGON (((-122.84000 49.00000, -120.0000... \n", - ".. ... \n", - "172 POLYGON ((18.82982 45.90887, 18.82984 45.90888... \n", - "173 POLYGON ((20.07070 42.58863, 19.80161 42.50009... \n", - "174 POLYGON ((20.59025 41.85541, 20.52295 42.21787... \n", - "175 POLYGON ((-61.68000 10.76000, -61.10500 10.890... \n", - "176 POLYGON ((30.83385 3.50917, 29.95350 4.17370, ... \n", - "\n", - "[177 rows x 6 columns]" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "world" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "id": "Zoi8t0A0YfsM" - }, - "outputs": [], - "source": [ - "# Convert pandas dataframe to geopandas dataframe\n", - "gdf = gpd.GeoDataFrame(df)\n", - "gdf[\"geometry\"] = [Point(xy) for xy in zip(gdf[LON], gdf[LAT])]" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "id": "KLd5xf29ZHdm" - }, - "outputs": [ - { - "data": { - "image/png": "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apbVNOZseC1YXt2wUettyDPPPFM8evToMSNGjBhz0kknDa+vr/cAHn/88T477rjjWGPMyEsvvZTjjz8egIqKCr75zW8yadIkDjzwQD744IN2t7333nvTr5+LJ02aNInFixcD8P7777Pzzjuz4447kpuby4knnshzzz0HQGlpKcOGDfvKtubNm8dBBx0EwMiRI/nss89YtmxZR3wEIiIiIiIiItINdEqgZnBxXvPGrLdN7/yNWm99Ghoa/PPOO2/Hxx9//OOFCxfOTSQS3HTTTYPq6uq8iy++eNjzzz//obV2QfoUpOuuu44JEybw7rvvcs0113DOOeds1Hs9+OCDfO1rXwNgyZIlDB3aUoJn6NChLFmyZL2vHzduHM888wwA7733Hp9//vnawI+IiIiIiIiISKcEao6fuN3q/Bw/WN86+Tl+cMLuQ1dv6Xslk0m22267xvHjxzcCnHnmmaveeOON4rKysvztt9++cdSoUU0AJ5100trXvPXWW3znO98B4KCDDqKiooLq6ur1vs+0adN48MEHue666zZ7rJdddhmVlZXstdde3H333UyYMIFYLLbZ2xMRERERERGR7qVTuj71K8xNnjF5+NK2uj6lnDF5+NK+hbnrDeZkiw8++IALLriAp59+mgEDBgAwZMiQdbJhFi9ezJAhQ9a7nd69e3PvvfcCEIYho0ePZscdd+y8gYuIiIiIiIhIl9IpGTXgWm+fd8BOi1tn1uTn+MF5B+y0uKNac8diMRYvXpxrrc0DeOihhwbsv//+NePHj2/44osv8hYsWJAL8OSTT659zb777stjjz0GwGuvvcaAAQPo3bt3m9v/4osv+Pa3v80DDzzArrvuuvbxiRMn8tFHH7Fo0SKampp44oknOOqoo9Y71srKSpqamgD44x//yH777dfu+4qIiIiIiIhIz9MpGTUpVx45uvz8g3Ze/uSMxf2WVzfkbNM7v/mE3Yeu7shMmvz8/ODuu+9edNJJJ+2cTCaZMGFC3WWXXbaioKAgvOWWWz474ogjdi0sLAwnT5689jVXX3013//+95k0aRIFBQXcd9997W7/+uuvp6KigosvvhiAeDzOm2++STwe55ZbbuGYY44hmUxy+umnM2bMGADuvPNObrnlFpYtW8akSZM4/PDDueuuu1iwYAHnnnsunucxevRo7rrrro76GERERERERESkG/DCcNM6Ws+aNWvRhAkTVm54zcyrqqry+/TpEySTydj5559fussuu3DhhRdmeliymRYuXKiaPiIiIiIiIj3XVcaYX2d6EJ2tUzNqMu13v/vdwEcffXRgc3OzN378+DW/+c1vVuTk5GxaZEqySW/ggkwPQkRERERERDLCZnoAW0O3zqjZFL///e8H3HXXXYPTH9tzzz3X/PnPf/48U2OSdc2aNWvghAkThmd6HCIiIiIiIiKdRYEa6TIUqBEREREREZHurtO6PomIiIiIiIiIyKbp9Bo1q5sTsb+WV/Rb1pjIGZwXb/5mSf/V/XLiyc5+XxERERERERGRrqZTAzXXfryk5IEvV2zbEIRrM3d+/cnS7c/ebtDSn+08pLwz31tEREREREREpKvptKlP1368pOSOz5cPTQ/SADQEoX/H58uHXvvxkpLOeu+O8vDDD/e56qqrSgBOOOGE4X/84x/7tV7n5JNPHjZ9+vT89rYxdOjQcUuXLu2QgFhhYeFuHbGdjvC///u/g3feeeexI0aMGDN58uQRCxcuzE09d9tttw0YNmyYGTZsmLntttsGpB6/8MILh5aUlIxvvR9nn3329qNGjRozatSoMcOHDzfFxcWlW3FXRERERERERLJGpwRqVjcnYg98uWLb9a3zwJcrtq1sTmR1jZxTTjml6vrrr19v5s/jjz/+2cSJExu21pi2tubm5jYfnzhxYl1ZWdm8hQsXzj3uuONWX3LJJdsBLFu2LHbjjTcOeffdd+e9//7782688cYhK1asiAEcd9xxlf/973/ntd7WAw888MX8+fPnzp8/f+655567/IgjjqjszH0SERERERERyVadEij5a3lFv9aZNK01BKH/1/KKr2SobKzLL7982+HDh5uJEyeOPProo3f8+c9/PnjOnDl5+++//65jx44dPXHixJEzZ87MB1iwYEHu3nvvPSKV/fHhhx/mJhIJhg4dOi4IAlauXBmLxWITn3/++SKAPfbYY+QHH3yQd+uttw44/fTTd2j93hdffPGQE044YXgikWDSpEkjX3vttcKNGfOhhx6689ixY0fvsssuY2+++eaBqccLCwt3u/DCC4eOHDlyzIQJE0Z98cUXcYD58+fnlpaWjhoxYsSYiy66aEj6tq6++uqSESNGjBk5cuSYCy64YCjAW2+9VTBhwoRRI0aMGHPYYYftvGLFitjMmTPzx40bNzr1ugULFuSOGDFiDMDrr79euOeee44cO3bs6P3222/Xzz77LAdg0qRJI88666ztjTGjr7vuunValqccffTRNcXFxQHAfvvtt2bp0qW5AE8//XSfAw44oHrw4MHJQYMGJQ844IDqp556qg/AIYccUjts2LC2Iz+RJ554ov93vvOdio35PEVERERERES6m04J1CxrTORs1HpNG7dea9OmTSt89tln+82dO3fOyy+//OHs2bN7AZxzzjnD7rzzzs/nzJkz76abbvry/PPP3wHg/PPP3+GUU05ZtXDhwrknn3zyqvPPP3/7eDzOTjvt1DBjxoz8l156qWj06NF1r776alF9fb23dOnS3HHjxjW29d7nnXfeditWrIj/7W9/WxSPb9qMpocffnjRnDlz5pWVlc295557BpeXl8cA6uvr/cmTJ69ZsGDB3MmTJ6+57bbbBgFccMEFO5xzzjkrFi5cOHfbbbddG+D461//2vtf//pX3+nTp89fsGDB3F/84hflAGeeeeaO119//ZcLFy6cO3bs2PorrrhiyG677dbQ3NzszZ8/PxfgoYce6n/cccetbmxs9C666KIdnnnmmY/nzJkz74wzzlh52WWXDU29R1NTk2etnXfNNdcs29B+3XPPPYMOPfTQKoDFixfnbLfddk2p54YOHdq0ePHijfp3XrhwYe6XX36Ze/TRR1dv3CcqIiIiIiIi0r10SqBmcF58vVkTa9fL3bj1Wps2bVrR17/+9crCwsKwX79+wWGHHVbZ0NDgz5w5s+ikk07aedSoUWMuuOCCYcuXL88BmDlzZq/vfe97FQDnn39+xfTp04sA9tlnn5pXXnmleNq0acWXX3750rfffrv4tdde6zVhwoTatt73hhtu2La6ujr2yCOPfO77m/7R3XjjjYNHjhw5ZuLEiaPLy8tz5syZkw+Qk5MTfutb36oCmDhxYu1nn32WCzBjxoyic889twLgvPPOW5XazksvvdT71FNPXZnKaBk8eHBy1apVsZqamthRRx21BuDcc89d9c477xQBHHfccRUPPfRQf4C///3v/U477bSK2bNn53344YcFBx988IhRo0aNuemmm7ZdsmTJ2oDKt7/97Y3Karnzzjv7z5o1q/Caa67Z4uLQDz74YP8jjzxy9aYGwERERERERES6i04J1HyzpP/qfN8L1rdOvu8F3yzpv7qj3jMIAoqLixOpWifz58+f+8knn8xZ32umTJmy5o033iiaMWNGr5NOOqmquro69sorrxTvu+++a9pav7S0tHb27NmFy5Yti23q+J577rniadOmFb///vvzFyxYMHf06NH19fX1PkA8Hg9TgZ94PE4ikfBSr/N9P9zU92rttNNOW/3000/3mz17dp7neYwbN64xDENvl112qU99VgsXLpz75ptvfph6TSoItD5PP/108c0337ztv/71r48KCgpCgKFDhzZ/+eWXawsLL168OHfo0KEbFZB76qmn+p966qma9iQiIiIiIiI9VqcEavrlxJNnbzdo6frWOXu7QUv75sQ3GAxoy4EHHrjmhRde6FNXV+dVVVX5L7/8ct/CwsJgu+22a/rDH/7QD1zg5u233y4A2G233Wrvv//+fgD33HNP/z322GNNtJ3aGTNmFPm+HxYWFoZjx46te+ihhwYdfPDBNW297xFHHFF96aWXlh9++OG7rl69epM+u8rKylifPn2SxcXFwcyZM/NnzZrVa0Ov2X333dfcd999/QHuu+++td2TDj/88Oq//OUvA2tqanxwBXwHDBiQ7N27d/Lf//53EcADDzwwYPLkyWsAxo4d2+j7Pj//+c+HfOMb36gAGD9+fENFRUX85Zdf7gXQ2Njovf/+++12r2rtzTffLLjwwguHPfPMMx8NHTo0kXr8uOOOq5o2bVrvFStWxFasWBGbNm1a7+OOO65qQ9ubOXNmfnV1deyQQw5pM5tJREREREREpCfotK5LP9t5SPkPdthmcevMmnzfC36wwzaLf7bzkM2eKnPggQfWHXHEEVVjxowZe/DBB+86cuTI+j59+iQfffTRT/74xz8OHDly5Jhdd9117JNPPtkX4O677/78z3/+88ARI0aMefTRRwfceeedXwAUFBSEJSUlTXvssUctwP7777+mtrbWnzRpUn17733WWWetPvPMM1ccccQRu6xZs8Zrb73WTjjhhKpEIuHttNNOYy+//PKh7U2vSnfnnXd+fu+9924zYsSIMel1Xk488cTqr3/965WlpaWjR40aNebaa68tAfjjH//46RVXXLHdiBEjxsyePbvghhtuWJJ6zfHHH1/xzDPP9D/ttNNWA+Tn54ePPfbYxz/5yU+2Gzly5JixY8eOmTZtWtHG7s/ll1++fV1dXSw11ezggw/eBdw0rMsvv3zJxIkTR0+cOHH0j3/84yWDBw9OAnz/+9/fbvDgweMbGhr8wYMHj//Rj360tkDyn//85/7HHntsxeZMKRMRERERERHpLrww3LSZNbNmzVo0YcKElRu7fmVzwv9reUW/ZU2JnMG58eZvlvRfvbmZNOmqqqr8Pn36BDU1Nf7kyZNH3n333Z/tt99+dVu6Xcles2bNGjhhwoThmR6HiIiIiIiISGfp9KqtfXPiwfe232bVhtfcNKeeeuqwDz/8sKCxsdH71re+tUpBGhERERERERHp6rpse51nn33200yPId348eNHNTU1rTNv56GHHvp0fdOouoIrrrii5Jlnnumf/tixxx5bceONN25xlycRERERERERWVenT30S6Sia+iQiIiIiIiLd3eZUbg2CINjoIroiHSH6P7fFtY1EREREREREstnmBGrsihUr+ihYI1tLEATeihUr+gA202MRERERERER6UybXKMmkUicU15efn95ebmhE9t7i6QJAJtIJM7J9EBEREREREREOtMm16gREREREREREZHOoYwYEREREREREZEsoUCNiIiIiIiIiEiWUKBGRERERERERCRLKFAjIiIiIiIiIpIlFKgREREREREREckSCtSIiIiIiIiIiGQJBWpERERERERERLKEAjUiIiIiIiIiIllCgRoRERERERERkSyhQI2IiIiIiIiISJb4/1YA2DgNN3LCAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = world.plot(figsize=(20,20), facecolor=\"lightgray\")\n", - "ax.set_title(\"Label Locations\")\n", - "ax.axis('off')\n", - "gdf.plot(\n", - " ax=ax, \n", - " marker='o', \n", - " categorical=True,\n", - " markersize=1,\n", - " column=DATASET,\n", - " legend=True,\n", - " legend_kwds={'loc': 'lower left'});" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "id": "Dis0wx1t1lKH" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "Index(['lon', 'lat', 'start_date', 'end_date', 'source', 'class_probability',\n", - " 'num_labelers', 'subset', 'analysis_duration', 'email', 'country',\n", - " 'dataset', 'filename', 'feature_dir', 'save_path', 'already_exists',\n", - " 'geometry'],\n", - " dtype='object')" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "gdf.columns" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "id": "lSzLeUIxPp1i" - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def get_bounds(gdf):\n", - " minx = gdf.bounds.minx.min()\n", - " miny = gdf.bounds.miny.min()\n", - " maxx = gdf.bounds.maxx.max()\n", - " maxy = gdf.bounds.maxy.max() \n", - " return minx, miny, maxx, maxy\n", - "togo_country = world[world[\"name\"] == \"Togo\"]\n", - "ax = togo_country.plot(figsize=(10,10), facecolor=\"lightgray\")\n", - "\n", - "minx, miny, maxx, maxy = get_bounds(togo_country)\n", - "assert -1 < minx < 0, f\"Country minx: {minx} is incorrect\"\n", - "assert 5 < miny < 6, f\"Country miny: {miny} is incorrect\"\n", - "assert 0 < maxx < 2, f\"Country maxx: {maxx} is incorrect\"\n", - "assert 11 < maxy < 12, f\"Country maxy: {maxy} is incorrect\"\n", - "\n", - "togo_points = gdf[gdf[\"country\"] == \"Togo\"]\n", - "minx, miny, maxx, maxy = get_bounds(togo_points)\n", - "assert -1 < minx, f\"Points minx: {minx} is incorrect\"\n", - "assert 5 < miny, f\"Points miny: {miny} is incorrect\"\n", - "assert maxx < 2, f\"Points maxx: {maxx} is incorrect\"\n", - "assert maxy < 12, f\"Points maxy: {maxy} is incorrect\"\n", - "\n", - "ax.set_title(\"Togo Label Locations by subset\")\n", - "ax.axis('off')\n", - "\n", - "togo_points.plot(\n", - " ax=ax, \n", - " marker='o', \n", - " categorical=True,\n", - " markersize=1,\n", - " column=\"subset\",\n", - " legend=True,\n", - " legend_kwds={'loc': 'lower left'});" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ImE0eM9vS7aD" - }, - "source": [ - "### Exploring earth observation data" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "id": "TEf-aqU3dEOu" - }, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "from openmapflow.constants import FEATURE_PATH, CLASS_PROB, MONTHS\n", - "from openmapflow.features import load_feature\n", - "from cropharvest.engineer import BANDS" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "id": "nL_G7Mu6dNv_" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "lon 1.412409\n", - "lat 7.584598\n", - "start_date 2019-01-01\n", - "end_date 2020-12-31\n", - "source crop_merged_v2.zip\n", - "class_probability 1.0\n", - "num_labelers 1\n", - "subset validation\n", - "analysis_duration NaN\n", - "email NaN\n", - "country Togo\n", - "dataset Togo_2019\n", - "filename lat=7.5845981_lon=1.41240946_date=2019-01-01_2...\n", - "feature_dir data/features\n", - "save_path data/features/lat=7.5845981_lon=1.41240946_dat...\n", - "already_exists True\n", - "geometry POINT (1.41240946 7.5845981)\n", - "Name: 4, dtype: object" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Get a label with postive class\n", - "crop_label = df[(df[CLASS_PROB] == 1.0) & (df[SUBSET] == \"validation\")].iloc[0]\n", - "crop_label" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "id": "BCODv9Vgc_Y7" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "'data/features/lat=7.5845981_lon=1.41240946_date=2019-01-01_2020-12-31.pkl'" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# pkl file contains earth observation data\n", - "crop_label[FEATURE_PATH]" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": { - "id": "xevZ-AWgdbM-" - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(24, 18)" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Load earth observation data for label\n", - "feature_instance = load_feature(crop_label[FEATURE_PATH])\n", - "crop_earth_observation_data = feature_instance.labelled_array\n", - "crop_earth_observation_data.shape" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "LlIVJNUEfV1a" - }, - "source": [ - "**Available earth observation bands**\n", - "\n", - "" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "id": "xhjsbD0NbhS9" - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3MAAAF8CAYAAABlgOKGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAA+AUlEQVR4nO3dedyt9bz/8de7gaIotUtSdsgQh7BVxkNpxjYVmTJmKI7h8CvDSYiOmUORI8qUjEWRxDnkKBUZMm6USrKJSET1+f3x/d5ZbXu493Dfa117v56Px/2417qua631Wdda97rX+/p+r+83VYUkSZIkaVjWGncBkiRJkqTlZ5iTJEmSpAEyzEmSJEnSABnmJEmSJGmADHOSJEmSNECGOUmSJEkaIMOcJGnGJJmbpJKsswru6ylJzlgVdc2mJO9O8soZuN9XJfnQqr7fcT+WJGn6DHOStAZLckGSvyS5cuTnnSt5fw9ZlTUOyeICZ1U9u6peM66aJEmrr5U+UipJGryHVdWXVuYOkqxTVdesqoLGZXV5HpKkNYMtc5KkxUpyuyRfTvK7JL9N8uEkG42svyDJ/0vyXeDPST4KbA18trfwvXTk7p6Q5Jf9fl6+lMe8eZLjkixMcmGSVyRZ64ab5J1JrkjyoyS7jKx4SpKfJ/lTkl8kecLIuqcl+WGS3yc5NcltRtZVkgOT/BT4aZKjkrxpkbpOTPKifvngJD/rj/ODJI/sy+8MvBu4T3/+f+jLP5DktSP39cwkC5JcnuSkJLdapJZnJ/lpkj8keVeSLOVlWi/Jx3ot30py95H7WmydI/vqjCRv6vvkF0n2HFm/TZL/7bc9Ddh0ZN16ST7U3xd/SHJ2ks2XUqMkaYYY5iRJSxLg9cCtgDsDWwGvWmSb/YC9gY2qaj/gl7SWvg2q6g0j290fuCOwC/AfPfgszn8BNwduC/wr8GTgqSPrdwR+RgsXhwKfSnKLJDcF3gHsWVUbAvcFzgNIMh94GfAoYA7wNeCjizzuI/p9b9fXPXYqRCXZGNgNOL5v+zPgAb3Ow4APJdmiqn4IPBv4Rn/+Gy365JLsTNun+wJbABeO3O+UhwL3Bu7Wt9t9CfsKYD7wceAWwEeAzyRZd2l1jtx2R+DHtH35BuB9I8HxI8C5fd1rgP1Hbrd/v8+tgE36c/7LUmqUJM0Qw5wk6TO9hWXq55kAVbWgqk6rqquraiHwFlrAGvWOqrqoqpb1Zf6wqvpLVX0H+A5w90U3SLI28DjgkKr6U1VdALwZeNLIZr8B3lZVf6+qj9HCyN593XXAXZOsX1WXVtX5ffmzgddX1Q97F8rXAduPts719Zf35/E1oGhBCOAxtID2q75fPl5Vv6qq63oNPwV2WMbzn/IE4Jiq+lZVXQ0cQmvJmzuyzRFV9Yeq+iXwFWD7pdzfuVX1iar6O+31WQ/YaZp1XlhV762qa4FjaeFy8yRb08LkK/tr/1XgsyO3+zstxN2+qq6tqnOr6o/TfP6SpFXIMCdJekRVbTTy816AJJsnOT7JJUn+CHyIke523UXTfIxfj1y+CthgMdtsCqxLa62aciGw5cj1S6qqFll/q6r6M/BYWnC7NMnJSe7Ut7kN8PapsApcTmt1HL3f659Hv//jaa2OAI8HPjy1PsmTk5w3cn935Z/3y5LcavT5VdWVwO8WqWU6+2pxdV8HXNwfYzp1/nrktlf1ixv02/++79Mpo6/JB4FTgeOT/CrJG0ZaAyVJs8gwJ0laktfRWqj+papuBjyRFoJG1TKuL4/f0lp9RlvMtgYuGbm+5SLnkG0NTLWYnVpVu9JamH4EvLdvcxHwrEUC6/pV9X9LqfujwGN6692OwCcB+vX3AgcBm/SulN/nH/tlWc//V6PPr3cP3WSR57g8thq5r7WAWwO/mkadS3MpsHGvbcrWUxd6q+hhVbUdrTvrQ2ndYSVJs8wwJ0lakg2BK4ErkmwJvGQat7mMdr7bcuvd/U4ADk+yYQ8kL6K1CE7ZDHh+knWT7EM7l++U3oo4vweQq3vd1/XbvBs4JMld4PpBVvZZRi3fpoXL/wZOrao/9FU3pQW2hf2+nkpr8Rp9/rdOcqMl3PVHgacm2T7JjWmB+azepXRF3CvJo9Lm8XsB7bmfOY06l6iqLgTOAQ5LcqMk9wceNrU+yYOT/EvvFvtHWgC/bvH3JkmaSYY5SdLU6JNTP5/uyw8D7glcAZwMfGoa9/V64BW9a9+/r0AtzwP+DPwcOIM2EMcxI+vPAralBa3DgcdU1e9o/89eRGv5upx2bt9zAKrq08B/0roF/pHWQrUny/YR4CH9N/2+fkA7j+8btOD2L8DXR27zZeB84NdJfrvoHfYpIF5Ja+m7FLgd7TzBFXUirXvp72nnFj6qt5wtq85leTytRfJy2kAzx42suyXwCVqQ+yHwv7Sul5KkWZYbnnogSZIkSRoCW+YkSZIkaYAMc5IkSZI0QIY5SZIkSRogw5wkSZIkDdA6y9ogyXrAV4Eb9+0/UVWHJvkAbbSwK/qmT6mq8/r8P28H9qJNdvqUqvpWv6/9gVf07V9bVccu7bE33XTTmjt37nI/KUmSJElaHZx77rm/rao5i1u3zDBHm7Nm56q6Msm6wBlJPt/XvaSqPrHI9nvSho3eljas8VHAjkluQRveeB5t7ptzk5xUVb9f0gPPnTuXc845ZxolSpIkSdLqJ8mFS1q3zG6W1VzZr67bf5Y2n8F84Lh+uzOBjZJsAewOnFZVl/cAdxqwx3SfhCRJkiTpH6Z1zlyStZOcB/yGFsjO6qsOT/LdJG9NcuO+bEvgopGbX9yXLWn5oo91QJJzkpyzcOHC5Xs2kiRJkrSGmFaYq6prq2p74NbADknuChwC3Am4N3AL4P+tioKq6uiqmldV8+bMWWzXUEmSJEla4y3XaJZV9QfgK8AeVXVp70p5NfB+YIe+2SXAViM3u3VftqTlkiRJkqTltMwwl2ROko365fWBXYEf9fPg6KNXPgL4fr/JScCT0+wEXFFVlwKnArsl2TjJxsBufZkkSZIkaTlNZzTLLYBjk6xNC38nVNXnknw5yRwgwHnAs/v2p9CmJVhAm5rgqQBVdXmS1wBn9+1eXVWXr7JnIkmSJElrkFQtbWDK8Zo3b145NYEkSZKkNVWSc6tq3uLWLdc5c5IkSZKkyWCYkyRJkqQBMsxJkiRJ0gAZ5iRJkiRpgKYzmqUkSermHnzyuEsA4IIj9h53CZKkMbNlTpIkSZIGyDAnSZIkSQNkmJMkSZKkATLMSZIkSdIAGeYkSZIkaYAMc5IkSZI0QIY5SZIkSRogw5wkSZIkDZBhTpIkSZIGyDAnSZIkSQNkmJMkSZKkATLMSZIkSdIAGeYkSZIkaYAMc5IkSZI0QIY5SZIkSRogw5wkSZIkDZBhTpIkSZIGyDAnSZIkSQNkmJMkSZKkATLMSZIkSdIAGeYkSZIkaYAMc5IkSZI0QIY5SZIkSRqgZYa5JOsl+WaS7yQ5P8lhffk2Sc5KsiDJx5LcqC+/cb++oK+fO3Jfh/TlP06y+4w9K0mSJElaza0zjW2uBnauqiuTrAuckeTzwIuAt1bV8UneDTwdOKr//n1V3T7J44D/BB6bZDvgccBdgFsBX0pyh6q6dgaelyQJmHvwyeMuAYALjth73CVIkrTaWWbLXDVX9qvr9p8CdgY+0ZcfCzyiX57fr9PX75IkffnxVXV1Vf0CWADssCqehCRJkiStaaZ1zlyStZOcB/wGOA34GfCHqrqmb3IxsGW/vCVwEUBffwWwyejyxdxm9LEOSHJOknMWLly43E9IkiRJktYE0wpzVXVtVW0P3JrWmnanmSqoqo6uqnlVNW/OnDkz9TCSJEmSNGjLNZplVf0B+ApwH2CjJFPn3N0auKRfvgTYCqCvvznwu9Hli7mNJEmSJGk5TGc0yzlJNuqX1wd2BX5IC3WP6ZvtD5zYL5/Ur9PXf7mqqi9/XB/tchtgW+Cbq+h5SJIkSdIaZTqjWW4BHJtkbVr4O6GqPpfkB8DxSV4LfBt4X9/+fcAHkywALqeNYElVnZ/kBOAHwDXAgY5kKUmSJEkrZplhrqq+C9xjMct/zmJGo6yqvwL7LOG+DgcOX/4yJUmSJEmjluucOUmSJEnSZDDMSZIkSdIATeecOUmSZtTcg08edwnXu+CIvcddgiRJ02LLnCRJkiQNkGFOkiRJkgbIMCdJkiRJA2SYkyRJkqQBMsxJkiRJ0gAZ5iRJkiRpgAxzkiRJkjRAhjlJkiRJGiDDnCRJkiQNkGFOkiRJkgbIMCdJkiRJA2SYkyRJkqQBMsxJkiRJ0gAZ5iRJkiRpgAxzkiRJkjRAhjlJkiRJGiDDnCRJkiQNkGFOkiRJkgbIMCdJkiRJA2SYkyRJkqQBMsxJkiRJ0gCtM+4CJGlo5h588rhLAOCCI/YedwmSJGmMbJmTJEmSpAEyzEmSJEnSAC0zzCXZKslXkvwgyflJ/q0vf1WSS5Kc13/2GrnNIUkWJPlxkt1Hlu/Rly1IcvDMPCVJkiRJWv1N55y5a4AXV9W3kmwInJvktL7urVX1ptGNk2wHPA64C3Ar4EtJ7tBXvwvYFbgYODvJSVX1g1XxRCRJkiRpTbLMMFdVlwKX9st/SvJDYMul3GQ+cHxVXQ38IskCYIe+bkFV/RwgyfF9W8OcJEmSJC2n5TpnLslc4B7AWX3RQUm+m+SYJBv3ZVsCF43c7OK+bEnLF32MA5Kck+SchQsXLk95kiRJkrTGmHaYS7IB8EngBVX1R+Ao4HbA9rSWuzevioKq6uiqmldV8+bMmbMq7lKSJEmSVjvTmmcuybq0IPfhqvoUQFVdNrL+vcDn+tVLgK1Gbn7rvoylLJckSZIkLYfpjGYZ4H3AD6vqLSPLtxjZ7JHA9/vlk4DHJblxkm2AbYFvAmcD2ybZJsmNaIOknLRqnoYkSZIkrVmm0zJ3P+BJwPeSnNeXvQzYL8n2QAEXAM8CqKrzk5xAG9jkGuDAqroWIMlBwKnA2sAxVXX+KnsmkiRJkrQGmc5olmcAWcyqU5Zym8OBwxez/JSl3U6SJEmSND3LNZqlJEmSJGkyGOYkSZIkaYAMc5IkSZI0QIY5SZIkSRogw5wkSZIkDZBhTpIkSZIGyDAnSZIkSQNkmJMkSZKkATLMSZIkSdIAGeYkSZIkaYAMc5IkSZI0QIY5SZIkSRogw5wkSZIkDZBhTpIkSZIGyDAnSZIkSQNkmJMkSZKkATLMSZIkSdIAGeYkSZIkaYAMc5IkSZI0QIY5SZIkSRogw5wkSZIkDZBhTpIkSZIGyDAnSZIkSQNkmJMkSZKkATLMSZIkSdIAGeYkSZIkaYAMc5IkSZI0QIY5SZIkSRqgdZa1QZKtgOOAzYECjq6qtye5BfAxYC5wAbBvVf0+SYC3A3sBVwFPqapv9fvaH3hFv+vXVtWxq/bpSJKkIZp78MnjLgGAC47Ye9wlSNK0Tadl7hrgxVW1HbATcGCS7YCDgdOralvg9H4dYE9g2/5zAHAUQA9/hwI7AjsAhybZeBU+F0mSJElaYywzzFXVpVMta1X1J+CHwJbAfGCqZe1Y4BH98nzguGrOBDZKsgWwO3BaVV1eVb8HTgP2WJVPRpIkSZLWFMt1zlySucA9gLOAzavq0r7q17RumNCC3kUjN7u4L1vS8kUf44Ak5yQ5Z+HChctTniRJkiStMaYd5pJsAHwSeEFV/XF0XVUV7Xy6lVZVR1fVvKqaN2fOnFVxl5IkSZK02plWmEuyLi3IfbiqPtUXX9a7T9J//6YvvwTYauTmt+7LlrRckiRJkrSclhnm+uiU7wN+WFVvGVl1ErB/v7w/cOLI8ien2Qm4onfHPBXYLcnGfeCT3foySZIkSdJyWubUBMD9gCcB30tyXl/2MuAI4IQkTwcuBPbt606hTUuwgDY1wVMBquryJK8Bzu7bvbqqLl8VT0KSJEmS1jTLDHNVdQaQJazeZTHbF3DgEu7rGOCY5SlQkiRJkvTPlms0S0mSJEnSZDDMSZIkSdIAGeYkSZIkaYAMc5IkSZI0QIY5SZIkSRogw5wkSZIkDZBhTpIkSZIGyDAnSZIkSQNkmJMkSZKkATLMSZIkSdIAGeYkSZIkaYAMc5IkSZI0QIY5SZIkSRogw5wkSZIkDZBhTpIkSZIGyDAnSZIkSQNkmJMkSZKkATLMSZIkSdIAGeYkSZIkaYAMc5IkSZI0QIY5SZIkSRogw5wkSZIkDZBhTpIkSZIGyDAnSZIkSQNkmJMkSZKkATLMSZIkSdIAGeYkSZIkaYCWGeaSHJPkN0m+P7LsVUkuSXJe/9lrZN0hSRYk+XGS3UeW79GXLUhy8Kp/KpIkSZK05phOy9wHgD0Ws/ytVbV9/zkFIMl2wOOAu/TbHJlk7SRrA+8C9gS2A/br20qSJEmSVsA6y9qgqr6aZO40728+cHxVXQ38IskCYIe+bkFV/RwgyfF92x8sf8mSJEmSpJU5Z+6gJN/t3TA37su2BC4a2ebivmxJy/9JkgOSnJPknIULF65EeZIkSZK0+lrRMHcUcDtge+BS4M2rqqCqOrqq5lXVvDlz5qyqu5UkSZKk1coyu1kuTlVdNnU5yXuBz/WrlwBbjWx6676MpSyXJEmSJC2nFWqZS7LFyNVHAlMjXZ4EPC7JjZNsA2wLfBM4G9g2yTZJbkQbJOWkFS9bkiRJktZsy2yZS/JR4EHApkkuBg4FHpRke6CAC4BnAVTV+UlOoA1scg1wYFVd2+/nIOBUYG3gmKo6f1U/GUmSJElaU0xnNMv9FrP4fUvZ/nDg8MUsPwU4ZbmqkyRJkiQt1sqMZilJkiRJGhPDnCRJkiQNkGFOkiRJkgbIMCdJkiRJA2SYkyRJkqQBMsxJkiRJ0gAZ5iRJkiRpgAxzkiRJkjRAhjlJkiRJGiDDnCRJkiQNkGFOkiRJkgbIMCdJkiRJA7TOuAuQJIC5B5887hIAuOCIvcddgiRJ0rTYMidJkiRJA2SYkyRJkqQBMsxJkiRJ0gAZ5iRJkiRpgAxzkiRJkjRAhjlJkiRJGiDDnCRJkiQNkGFOkiRJkgbIMCdJkiRJA2SYkyRJkqQBMsxJkiRJ0gCtM+4CpCGae/DJ4y4BgAuO2HvcJUiSJGlMbJmTJEmSpAGyZU4Tw9YuSdKkm5T/VeD/K0m2zEmSJEnSIC0zzCU5Jslvknx/ZNktkpyW5Kf998Z9eZK8I8mCJN9Ncs+R2+zft/9pkv1n5ulIkiRJ0pphOi1zHwD2WGTZwcDpVbUtcHq/DrAnsG3/OQA4Clr4Aw4FdgR2AA6dCoCSJEmSpOW3zDBXVV8FLl9k8Xzg2H75WOARI8uPq+ZMYKMkWwC7A6dV1eVV9XvgNP45IEqSJEmSpmlFz5nbvKou7Zd/DWzeL28JXDSy3cV92ZKW/5MkByQ5J8k5CxcuXMHyJEmSJGn1ttIDoFRVAbUKapm6v6Oral5VzZszZ86qultJkiRJWq2saJi7rHefpP/+TV9+CbDVyHa37suWtFySJEmStAJWNMydBEyNSLk/cOLI8if3US13Aq7o3TFPBXZLsnEf+GS3vkySJEmStAKWOWl4ko8CDwI2TXIxbVTKI4ATkjwduBDYt29+CrAXsAC4CngqQFVdnuQ1wNl9u1dX1aKDqkiSJEmSpmmZYa6q9lvCql0Ws20BBy7hfo4Bjlmu6iRJkiRJi7XSA6BIkiRJkmafYU6SJEmSBsgwJ0mSJEkDZJiTJEmSpAEyzEmSJEnSABnmJEmSJGmADHOSJEmSNECGOUmSJEkaIMOcJEmSJA3QOuMuQNLMmXvwyeMu4XoXHLH3uEuQJElardgyJ0mSJEkDZJiTJEmSpAEyzEmSJEnSABnmJEmSJGmADHOSJEmSNECGOUmSJEkaIMOcJEmSJA2QYU6SJEmSBsgwJ0mSJEkDZJiTJEmSpAEyzEmSJEnSABnmJEmSJGmADHOSJEmSNECGOUmSJEkaIMOcJEmSJA2QYU6SJEmSBsgwJ0mSJEkDtFJhLskFSb6X5Lwk5/Rlt0hyWpKf9t8b9+VJ8o4kC5J8N8k9V8UTkCRJkqQ10apomXtwVW1fVfP69YOB06tqW+D0fh1gT2Db/nMAcNQqeGxJkiRJWiOtMwP3OR94UL98LPA/wP/ry4+rqgLOTLJRki2q6tIZqEGSpDXe3INPHncJAFxwxN7jLkGSVksr2zJXwBeTnJvkgL5s85GA9mtg8355S+Cikdte3JfdQJIDkpyT5JyFCxeuZHmSJEmStHpa2Za5+1fVJUk2A05L8qPRlVVVSWp57rCqjgaOBpg3b95y3VaSJEmS1hQr1TJXVZf0378BPg3sAFyWZAuA/vs3ffNLgK1Gbn7rvkySJEmStJxWOMwluWmSDacuA7sB3wdOAvbvm+0PnNgvnwQ8uY9quRNwhefLSZIkSdKKWZlulpsDn04ydT8fqaovJDkbOCHJ04ELgX379qcAewELgKuAp67EY0uSJEnSGm2Fw1xV/Ry4+2KW/w7YZTHLCzhwRR9PkiRJkvQPq2KeOUmSJEnSLDPMSZIkSdIAGeYkSZIkaYAMc5IkSZI0QIY5SZIkSRogw5wkSZIkDZBhTpIkSZIGyDAnSZIkSQNkmJMkSZKkAVpn3AVIkiRp1Zt78MnjLgGAC47Ye9wlSKstW+YkSZIkaYAMc5IkSZI0QIY5SZIkSRogw5wkSZIkDZBhTpIkSZIGyDAnSZIkSQNkmJMkSZKkAXKeOUmSJGmanL9Pk8SWOUmSJEkaIMOcJEmSJA2QYU6SJEmSBsgwJ0mSJEkDZJiTJEmSpAEyzEmSJEnSABnmJEmSJGmADHOSJEmSNECGOUmSJEkaIMOcJEmSJA3QrIe5JHsk+XGSBUkOnu3HlyRJkqTVwayGuSRrA+8C9gS2A/ZLst1s1iBJkiRJq4N1ZvnxdgAWVNXPAZIcD8wHfjDLdUiSJEmrrbkHnzzuEq53wRF7L3X9pNS6rDonUapq9h4seQywR1U9o19/ErBjVR00ss0BwAEAW2+99b0uvPDCWatvdeQfhyRJkjRcSc6tqnmLWzfbLXPLVFVHA0cDzJs3b/aS5mrKECVJkiStnmZ7AJRLgK1Grt+6L5MkSZIkLYfZDnNnA9sm2SbJjYDHASfNcg2SJEmSNHiz2s2yqq5JchBwKrA2cExVnT+bNUiSJEnS6mDWz5mrqlOAU2b7cSVJkiRpdTLrk4ZLkiRJklaeYU6SJEmSBsgwJ0mSJEkDZJiTJEmSpAEyzEmSJEnSABnmJEmSJGmADHOSJEmSNECpqnHXsERJFgIXjruOGbQp8NtxFzENQ6kTrHWmDKXWodQJ1jpThlLrUOoEa50pQ6l1KHWCtc6UodQ6lDpXxG2qas7iVkx0mFvdJTmnquaNu45lGUqdYK0zZSi1DqVOsNaZMpRah1InWOtMGUqtQ6kTrHWmDKXWodS5qtnNUpIkSZIGyDAnSZIkSQNkmBuvo8ddwDQNpU6w1pkylFqHUidY60wZSq1DqROsdaYMpdah1AnWOlOGUutQ6lylPGdOkiRJkgbIljlJkiRJGiDD3JglybhrkCRJkjQ8hrkxSbJ1krVrIP1cDZ0aAt+nkiRpTWKYG4MkWwKHAlv26xP7BTTJLadC5yTXuagh1Trpkqzdfw9hn95o3AVMV5JNxl3DdCS57VBq1cwayGfAoLhPpZmTZOckdxx3HTPNMDcevwfuADwdYFJb55JsBbwMePwQAl2SeyTZK8l2k7pPAZLskOQJSe417lqWJclDgP9IsskAXv89gPckudEk1wmQZD7w2SS3ngrLkyjJnsC3gJ369Yndr0kemOQ1SeYnuem461leSSby/3GSe/bP1duOu5blMcnv1UXcHCb39dd4DeF9PKk1JrkRcDvgu0m2HXc9M8kPj1mWJFV1FfBs4D5JJnmm+t8CFwJ3BR6TZK1J/ULfv3SeAOwNfDHJbn35RNWaZHfgg8Ddga8mmcgvySP1HATsBbwoyS376z9xnxt9vx4KfLiq/jbhYf4+wOHAq6rq4qq6dtw1LU7fpy8HTgRekWSzSd2v/e//GKCA1wGT/LkKtIMPSf4jyX0Bquq6vnxiPgv6AZJPAfcH3g28OMkdxlvV0iXZLcmuk/peHdX370eSHAkcmGT9cdc0DpP0np8k/fti9cv7JTkkyXbjfJ9MvVb9QOTGIwf6J+p7QZJtgE9X1Xtp/8e+vjoHunXGXcCaIslc4NdV9de+6NfAD4FtgXN6ULpuXPUtTlX9BXhzklcATwauTfLpqrp29ENm3JLcFXgz8PSq+mqSs4C3Jdmxqv405vKul+RuwLuAZ1bVV5JcBdwxyYVVdemYy1uSLwJ3BP5AC3Qvo31hnhhJ7gx8Hti1qk5Pcktgc+CvwIIJDEs3A46rqi8m2RrYE7gEuKSqvj3e0pok96a9V59aVV9L8l5aQDql//OemH2aZEPgqcBz+z79E7BjkiuAS6vqsvFWuEQPBJ4D7JHk+8B/AT+rqqvG/fnav7BtADyF9rl6epJdgPcAmyc5tqq+P676liTJA4AvAH9Ksk9VfXHcNS1JP+D4dtoBs62AewB3AibiM2A29TBwX2Bd4IqqOm/MJU1Lkh1ojSJXzsTfw0iQezzwQuAHwPbAp5OcUlV/XNWPOZ2akuwFvAb4ErBTkp0n6X9CF+CKJP9SVW/qAfiMJPevqp+Ou7hVbaKS9OqqHyH4GvDuJIcnWaeqfgf8D/CfSeZOSpBLskuSY5Os26/PAR4GXE3rarVPJq/L5ZXAK3qQW6uqjgN+xuS9vy8A9ulBbmvgpcAuwCeSPDfJBmOtbsTIF8mzgfWAs4CrgA8AxyRZf1KOxFXVD2mtRy9NchvgY8CLgc8Az05ykzGWtzibAQ9Ksiltf94NeAzw3KlWmgnwN+AxVfW1fv13wAEAk/ZPux+w+TXwhH5g5+XAdrQDPM9Lcvtx1rcUn6V9GXoU7W9rP+BD/T081nM/q/kT7SDO9n3Z6cA3aCFvqkfBRHwGwPXn9t4B2AN4Au3/7R593cTUCZDkxsA+wKur6jTa58BGtF4Qa5wkOwKfBJ4EvDzJE8Zc0hKNtEw9ADgJeCbwhiSPmqHH2wV4LrB7Ve0PnA48CNgzyUYz8ZjLqOduwGHAY4EFwCbAhiPrJ+J7YVX9HLiU1qOAqnoN8DZW0xa6ifqAW42tTXtT/Qq4Ke3N9ETgHOCNtH/mY/+H0wPGc4FbAcelnTN3AnBMVT0K+DmwA/CkTMBInEk2TXLzqroAOBX+0VWJ1vqxed9um7S+02PR69y4qv5YVd/uXzruCLy0qp5M+/L5DNpR2bFKskmSjUcW/RbYsKq+Snv/PpIW7q4d9wGIXutmAFX1SOBPwC+Aj/X9+lzgaUzOfr0FQFV9kLYv/xs4paoOpHURvQKYO7Yiuf69erOq+k5VnTfyd/MKYLMkTxtnfaP6Pt20X303cA3wWuBdVfUUWqC/E+2ciYlTVd8Abgy8oKpeAHwfeATwXuCofvR71vX9OjXgzeeB2yY5MslbaSHz08Dzk2w67s+AUf0gw8eBb1XV54BDgCOT7DXShXUieiNV1dW0v6mpA5DX0XpB3Hxqm3F/H5hpI6FoU+D2wL5V9Qzgw8Bje2vUxOkHsu8D7Aw8sqqeDryPduDokSt7/6NhqH9X2Ih2kOKZ/fGPBs4FHg7sMobw9Bdar43tek0Pr6o/JPnXCehRsGmS6/+GqurFwMVJHtuvv572nftHSSby/8KKWq0/LCZFVS0APgo8uP/TfjdwZ9oRlkfTzvNiAv4xbkjr5vAC4GLa+XKfqqr39PXH0rqD3ZEWSsemf9E5BfjvJK+uqj/35ev1f4LrA1cl2Y92Ls16Y67zPUleC9d/6fhSVb2zX/8fWgvYZuOocUqv9fPcsNZfABckeQlwMK1rxc+Bl43zi9FIre9M8p+91sfQ/rke2a9/hTZ4x5xx1Qk3qPXdSV7fF3+A9kX+4QBVdSGtNWy7fptZP7q5yN/U4b2uvyVZt6quoZ3rebtx1TdqZJ8eleSwqvpB/1L1BVr3GnpXrUvp+3TccsMBWqa+cLy4rcrTaX9buwDPA/6X1qVqtmscfa++oqpOpLV0/xK4DHhi77r4TSbkNI200aEB6AfMftsvf4w2gNc70wZxeSRw8Djfu4vUellVXTTyf/8v/OPvax9aF9fV0tSX/iQPo32uvIL2nQjagdn3AU9P8uRx1bg4IwH7QNrBwimn0LpJH9JfuxW9/9Fz5DYHNq6qT9JC045JngHQzwM7Dfj6TIenkdA99Xfzd9o53+8Adqqqnye5H+2zbMvF38vM6+HsHbS/951GVn2LkXOoq+qNtFonduCxFVJV/szAD3ALYIOR6xvQjsTfr19fC3gAreXrAmDLcdfc63oFcCawNe0D9SOLrF+P9gEzzhr3AM4A5tO6AB0HrL/INkf2n68Bd5vUOvt2T6Adlb/NhO3TDfu6lwA/Afbq1+8DbD5htd5sCfv1fGDrCar1g8A6fd29+vWTaF/gfwzcYYLqXPRvajtgIe3cxLHsz6XUetO+7va085BeTmuV/TFw+3HW2+vak9Yl6dX9PfmgvnwT2oG+vwAPHNk+E7BfPwysvWhNfb9+d5yfASM1Pay/xoeMLFuLFuin6n0wrdX2EuAuk1hrv7w7LRDsBZw3Ce/bGd4fOwAnAzvSWtRPBO7Z161P67E0b9x19nqmXqObjSx7Jy143nik5n1oAWeFH6NffgktrP2Idq7cvWkH/T9FOzd4tp//Xv1z9j/667UDrWv7vsD+wHeA+RPwOt2dFrQvpPV2eSitl9YFwEPHXd+MPvdxF7A6/tCaxb9MO2dj/sjy1wEfXWTbDelfmsdU6+JC53toJ+ffpP9D/8Q4vlwspd7raC0wU/8QLqU1+79nZLvPAZczvi/Hy6yT1jLzWNpAONtN4D49EnhTX7/tuF/75Xz9H0H74jSJ+/Uo4J0j2z2b9gX5zhNW5w32aV/3xHH9TU2j1nf1z6/H9M+wExjjl/eRmjfstezWr7+Edr7sPWmtW7ejdbm/7QTu1yOB945stwdwEXDXCdivt+l/44cB7wcOHlk3GpJ2oXUXH+dnwdJqXbv/vhPt/O+vTcL+neH9sQktmJw2suwwWhfeHfv1SfnOMfU+2o0WOI8Ent2XvZcWSNdfVTXTvnudSft+MI8W8F/cP9v2pR38ufls7R/+0YvsQOD5tAMND6cd1H1/r2/3cb1mtJF2n0frgfUQWlfwOwLPonVHfSOtV9k7gHXH/X6asf0w7gJW15/+D/pJtKOBhwO79n/cXwIeP+76eo0bsUjopB3RfD1tiHdoLXGfAT447npH6t6bNuLX3WlHrw6jjQZ2JnBC32ZXxvjlaBp1Tu3f7Rlji9wyat2a1v3zgyPbjf0f7DL260f6NndgjC1y09ivZ9HO7RtrfdPcpx8dd33T3KffpJ3fO7XdP7WCj7Hmd/QvFHelDSrygf7Z+3paa+I7aOfNrj3GGqf1HgC2GPf+HKllF2BT2hfgE7hhSArttIGnMqYDJdOtta/fmnYu7dgPQMzAc78DrSXrZcCeI++37wAvHNnuCFqXxX/qaTGGmkdbpe9FO71gT9rI3u8E3tDXfZrWvXutFXyceYt8bu0JfG7k+l1pPWPuT/sOucGKPM4K1rY9rXv180aWPZAW7jaZgNdoT9pBkoNoYe7DtAN5d+3rNwTeAHyV9l181vbdrO+LcRewuv/0D7FDaIHo87Tz5d407rpG6ltS6DydHjppR4RuNe5aF6l7D9qR5NF/3hv0usfW0rmcdd583PVNs9YvTcIH93Ls143GXd9y7NdNx13favj6z+nXx3rggdb6sGm/vB2t2/pngMP7su1pvR4eSDvqv9UE79cvAZuNu75F9+vIsnX4x2kLh/Rld6AdjBzb+2A5ar1z/73euPfvDOyDO9MOEhxGa0E5g390p9yVNorl80e2H3svENogcPPpLTm0IP7GfvlGtCmlPgLcsS+75yp4vAf3y5vSTh3YGbhJX/ZmYO8x7YvTgZ+MXF8b+BBj7KHR69id1qvp7iPL5tG67B5JP5hPa6W/CRN0EGomfhwAZYZV1U9oR3AeQWvy/RfgKWlzI41dVf2s2uh6D6Z18TiQNmT2T2lHo6iqK6vqV+Or8p9V1Rdof8xPHRmedx9av/WJsYw6xz3gzQ0spdab0AbnmBjL2K+TNnT+0vbr1eOqa1Gr0ev/175Njae65Rqg5TJg+6r6YlVdNK56pyzjPfCXcdU1ZWS/Hjk1SA9AtQF6zqa1mNw+yZdoIWGDcb0PlrPWj/fRQf+6+HsbprRpYV4IHFlVh9IOZn+d1uILLdgdCeyV5EV92YJZL/Sf3Z5WxwZ9tM3fAY9Lcr+q+lu1ecqKPmhLVX1reR8gbXoK+u1/BbwkyZnVBvD5Oq27+GuTPI92/uCMD4g0MtjJnfvolBtW1S7Az5J8PW3alO1pB6DGOXH5hsDTafvp+v1SVefQzkHfhD6aeVVdV1VX1eTO5btqjDtNrgk/3PDE1s2YgBPHl1DnVN/919L+SKaGpR97bUupeU/a4CHPpTWlT+S5BkOp01qtdSh1TmqtDHCAloHu1yUNKPUWWk+TsQx8NbRaZ2FfPGT0Ow/wSuDoketr0w4g3GsCah3tWnkzWuvbQbTRu59Emz5iPu1812+zggO09Pt7GW30x32AF/XlJwNf6JfvQxtw5G3MYjdh2vnm36IdePoI8Jy+/BRaF/E3Afcd42u0Fa11+4G9lpewSK8G4HjgzeN+P83mz9SJnZph455/YzoWGRZ3M1oIvWzMZS1TkofSTqa+R1WdP+56lmQodYK1zpSh1DqUOmGyak2bS/C3wKOr6tNJdqANmvCpvsn/o33R3xXYGDhs3DUvyYD26zpV9ay+3fa07ouPrqrvWev4LOk7T58u6IFV9Zwk96Z9z/jm7Ff4T3WtB9yD1nVvHvBnWvfHh9EOaPxvX/982uv7war69Eo83mNor/8PaKHwr33552n7ZGrC+3WqtebOiN56+requqa3eH2MNgfu95PsSnv+n62q05J8htZt+P79trP6vbZP1/BKWqvpfwH3pYXhX9LGS/hl3+5QYEFVfXi2ahs3w5xuYAihc3GS3KSqrhp3HcsylDrBWmfKUGodSp0wWbUm2ZvWu+EptCPH/0c7X+4TwPer6ml9u/WrauxdF5dmAPv1v2kThf+iqvbr221WVb8ZV529hsHUOltG5pZ7MK1V5eO0FpQXVtXp463u+q57B9KmAZgHPLaqzkwyn9bl8Su0FtZrgRtV1dXL+31pMQfMP0YLiPesqp+PbPdl4LqqeshMfidLcjPaYEzH0kYAX582MNNLq+p/kqxPOwB1s6p6Ub/NOcDF1U4dmlV9nr/H016fHwNHc8NA93bawDqH0wb1m4Quu7NiIib91OQYYpADmJQvHMsylDrBWmfKUGodSp0wWbVW1clJrqV1w3pZVR0BkGRn4MQkc6pqIf3cvkk2kP36EOAzU8FoEsLRkGqdLSPfLQr4d1pAOngSghxAVf0pyVdo3Sq/QpurjKo6Mcl1tFFR1wGOraqr+7oVDXI376/9g9MmRj83yW5VdXaSu1XVzklutbyPsbyq6o9JTqFNj/O3qvp8kvfTzg/8fVV9J8nZwD79/Lk/VdW8JFvPVE2Lk2Rb2mihP07yYeAKWlfwZ9ECHbTuryfQBvXbd00KcoADoEiStCrVhA/QMlRL2a8TMUDLqCHVOst+T/sy/m9VdfK4ixkZ9GPdqjqL9ppdBjwvyT0BquqztNars6aC3PIaCXIvBo5O8pkk21fVcbTzvk5P8irgI0luWTM86FyStfvFz9DmuXxRkj1oXUp/Cnyw1/Mu2jQ6f0qyTn8uv5zJ2hapcxNaK9zXkhxIC3An01q7N6UF0TNoLYu/Bx437m7h42A3S0mSZkCSPWmT1h4JPA54blV9f7xVDd+Q9uuQal0Zi+sOmGTtqvqn0YWT/EtVfW8qSI3rwMZI18/daN33/o92btxCWjfZhcAfgUfTuu0tXMnHey6tRXJXWoD6K3BoVX2xd+fcgXYu3o9W5nGWo55H0AZZmQ/8K7A/be7Lc2mjmW9B6xb8f7NRz5L0Xg1fAv6NNiL8xrTR1/8G3AL4UlW9J8mNVzRsD51hTpKkGTJJA4msToa0X4dU64oYCUW7AnNp86O9fTHbrVVV1y16eZyS7E47r/FlwAF98ZtoE5o/kzYa6Ser6lOLvYPle6wX0iYZfxTwIOBMWvfNF1bV52Zzn6QNwPMBWkvWj3qr21uAW9K6ko691XRUf2+9A7g7bdqBnWkHR3agtaTep6quGF+F42WYkyRpBk3SQCKrkyHt1yHVuiL6oC+vAQ6hzaF3QlW9fJFt1q6qa/vAG88E3lWzPLfeIoHy5rQujsfRQugbgA/TBtV4W1X9b5IbVdXfVmYgkt6ytE1VvS/JNsB7qmq3vu7btFa6f5vN90eSO9MGN/kGbcqsB9JaIrfom+y7si2Rq1p/j70V2KmqLk+yMbAu7eDBBWMtbswcAEWSpBm0On+JH6ch7dch1bqC9qJ1IbwrraXkqNGV6UPs9/MHP0sbMXG2g9z6wF2TfIfWonMV7Zyw0OZ+fChtSoLH0s6Z+1H16ZlWIsitDWwN3KEvWghcl+QZtC6cPwNeO4b3x0W0ELk/rSXyk8ADgF8A3520IAfXDyx0HXBmkvtU1e/GXdOkcAAUSZIkLbckOyfZF7gOeAHtvKanVdXFSR6d5JG9VWsqyH2CNsLnN2a5zhvTRtLckzZVyEcAqupS2qA0a1XVxbS55X7Za1ypeXZ7a+y1tOH+90zylKq6EjiGdt7cIbRz5i5cmcdZEVV1ZVW9E3hQ70J6U9prd21V/Xq265muqvo8rTX1S32qAmGYkyRJ0nJKclfaQCFfpQWW5wJvqqqfJNmpr7usn0+3Pm1EyNdU1ddmuc5bAP/eWwLPorXAfR74CUAfxv43Sc6iTfD+war6yUo+5gOANyeZ10d//DdgXu8a+ClgP+AhE3AO5bVJ7kXrGntITchUEUtTVScCD5iEcy4nhefMSZIkadr63F+vpc1P9qS+7CDgxbSh4+8H/Ecf1p8+b9pNq+qnY6h1a1pXymtoA2hcBjyd1tXwxKr6Qd9ue+DKqlqwvOfILbp9D0g70gLue2inNW0DHD1po5kmuSmwWVX9YmXODdT4GOYkSZI0LUk2B35LG/DknrRQ939VdV2SHWnnna1VVd/t0w9k3K0ovZvlC2hD27+CFu4OBb4HXE3rfvnkFTkPazQAJXkSsBVtrraTgTsCOwEPAR4JfLaq5q/s85FGGeYkSZK0TEk2o40o+AXayI+HA+sBHwO+Oe7QNmoxrWWb0lrkbkcb9OPvtKkB7gm8v6o+uZKP93zanHRHAy8F3l1VR/V1G9DC5Akr24VTWpRhTpIkSYu1SMvTJrTBO/YATqGd//UqYFPgA1V15rjqXJwkDwf2AdamBbiLaIFuLnBUVX0nyU2r6s8r0LXytlX183755rSWyhf2+38MbYTPtYD11+Q50DTzHABFkiRJi9UHMHlwkq16N8Qv0gYKeRgt1B1GG2b/j2Ms858k2Y7WpfKTwLnACbQpAt4JXEqbfmCjqvozTH/6gTTrAScneU2/7VRYOwOYX1W7VdU1wJNpXTulGeM8c5IkSbre1GTZ/fK6wL2Ak5LcuU87cAZtgI9XADeuqpeOsVzg+i6gW1XVuUnuBhwBfKWqPtPXXwocT5tj7kO0/PaHFXmoqvprkvnA8UmurapXAafRgtv7++M9kdZS9/CVemLSMhjmJEmSBECfv2u/JL+jDWby4qp6aB9W/8wkO1bVJUm+BdyMNvH1WCVZB5gPfDnJjWg1XQncLcltgEuq6iNJdqaN3PidFXyc0cFcfkY7R+6LSX4LHEebIPw5SZ7cL+9bVWPfP1q9ec6cJEmSrteH8/82baTHR09N8p3kcGB/4C3AQbQRIM8YW6Ej+lx2GwIvpwWrHwIfAC6mtZr9Efg4sHdVfXslH+sgYG/gVNqUAw8D/quq3tonR78l8LuqWrgyjyNNh+fMSZIkCYAka/eJrj9KG/Hx9lPrqurlwEtoQ/s/ZxKCXJ/+ANqomn8DrgIeSxu18mnAZsDraBN1P62qvj1ymxV5vEcA+wKPpw108htgN+BpSQ6vqj9U1Y8McpottsxJkiSt4aZGc+wTfP++qv6S5La0aQjeWVXv6BNrX97D3j8N/z8uSXanTdC9HzCH1np4c1rL3ALgvbS58V4OXLUyNSfZH/gTrYvp44FHVNVVSR5KO4fwoVX12xV/NtLyMcxJkiSJPqjHi4DfAacD7wbuRBu98kRaeHl8VX1lbEUuIsn9aYOOHDBVVz9P7knArWjzvl1AG9XyDOA1faTJFX28fwWOAX5VVQ/oy15Ea61899TomNJscQAUSZKkNVySBwAvo50L9kraJNc3p40KuSvwEOAxVfX1cdU4aqRVcDtaiPpKH3nz2qq6MMn7gQOAa6rqD0n2AW6yMkGuO5cWbK9L8iDaQCdPAPY3yGkcbJmTJElaA410rdwIuD/t/K/NaGHuLbRWuq8C76iqi8ZW6FIkeTzwDOAJVXVpX/ZgYCHww6q6tp8HeO0qfMwtaFMOPJzWivnGqvreqrp/aXkY5iRJktYwI0FuZ1p4eyhwLfAO4L1VdXaSI4HNadMTXDC+apuRmncC7kIbcRPatAR/Aj5NO5ftv4EXVNXXZriedQGq6u8z+TjS0jiapSRJ0hqmh6L7As8HXl1Vf66qvwLXAK9Msgtwd+BNkxDk4Pqa9wbeB2xKO1duO+AsYGPapOBvBV4700Gu1/N3g5zGzZY5SZKkNVCSp9KC0b5V9Ym+7Na0c+fuAry5qk4aY4k3kOTmwNtp9d0OOBL416q6vE83MAe4rqp+OykjbUozzTAnSZK0BhjpprgZcEVVXZ3kWbRz4/avqjNHtr3FVEiahFCU5H7AJbRpB24H3AF4bB/s5GHAL6rq++OsURoHu1lKkiStAXqQm0/rnnhkkgOBjwNvAt7VR7Sc2vbyqduMpdgRSe5J6z65GfBL2nQJr+5Bbkda/TcbY4nS2NgyJ0mStAbok37/N7A7LRxtCuxTVX9O8hzgIOB+tFa7ifiCmGQu8GXaoCyvT7ItcCCtS2Vo5/UdXFWfHV+V0vgY5iRJktYASfYC7gycDxxKG87/50luV1U/S7LVJE5BkORdwKOAe1fVxUk2pwXRrWiTd393UrqDSrPNMCdJkrQaGjlHbq2qui7JnWhTD2wJ7FlVv+zdLp8IPL2q/jjWgrlBzfcA5gLfBC4HXkybPmGfSQyc0risM+4CJEmStOr1UPQQ4D5JrgBOBr4LnAPcN8ntgNcCL5uEIAfX17wrbaTKH9ImBD+Ndp7fdcDJSfasqkvGWKY0MQxzkiRJq6E+AuS7gDcDTwY2pAW5DYFHAn+hBbnPTko3xSR3Bl5Cmy7h20keDtwfuEdVva5PT7A1bWRLaY1nN0tJkqTVTJI7Av8B/F9VvSvJpsD/A66tqoP7NjepqqsmKMjdGHga8ArgDVX19r78YOCeVbXvOOuTJpFTE0iSJK1+tgE2BnZNsk1V/RZ4DbB7kjsAVNVV/ffYgxxAVV0NfAJ4HXCPJI/qq/4XWC+J0w9Ii7CbpSRJ0sCNDBxyJ+DPwJdoXRGfA+yT5JO0ofzXpnWvHLvFtQhW1cIknwKuBf6jD9ByO+A/J+W8PmmS2M1SkiRpNZBkN+DDwOeBjYAn0KYi+Hfg9sBC4G1V9flx1QjXzx23RVV9Y0ldPHu30P2A+wDfqKr/muUypUGwm6UkSdJAJUn/vQFtyoH5wP7AT4HP0EaEPIw2xP//AF8Zvd2Y3Bf4eJL799bEf6qldwv9JK3e+yXZc7aLlIbAMCdJkjRQPQztCRxLa4m7WTUvBr5NG9b/Itq5aLcFnp5knXGeJ1dVHwFeDhyZ5IFLCXS/otV9KnDWLJcpDYJhTpIkaaCS3At4PvA54CpgpyR3Aaiqf6eFoDtU1ZeAjwOfqKprxlTr9YGtqo4F3g68M8m/LhrokkyN63AVcOOqunx2q5WGwXPmJEmSBijJ1rRuiMdU1eF9OoIXAb8CPlNV3xlrgSNGBmi5M23y719X1RVJngk8Dziwqr7WA91aVXVtko1pLXOHVtUZYyxfmli2zEmSJA1QVf0SOAF4XpI7VtWPgTfSBjvZp59HNxF6kNsL+BTtnL6vJZlTVe+ltdAdm+RBvYvotUk2Aj4GvMogJy2ZLXOSJEkDMNK6dW9aYPsOcCFt+oHHAk+sqh8n2RZYr6q+N8ZygRvUfDfgo8DDgHsB76NNoXCPqvp1kmcBP+itc+vTplY4pKq+OrbipQEwzEmSJE24kVD0MOD1tO6H84E3AMcDLwGeCjyyqn40vkqbHsjWrao/JtkKKOAmtBE331hV85J8GNgduEtVXdZvF9pALetOwvOQJp2ThkuSJE2oJOtW1d97kNsK2AvYGbgr8Ejg9L7uLcC6wCZjLBe4PpBtD8xP8iPgIcDBVfWTJPvQBmIBOJk2D96dgMugdccEfjbrRUsDZcucJEnSBOojOj6WFm6uBJ4I3Ai4GXAXYL+quqCfi/aTqlowtmIXkeSmwHHAg4FnV9UJSdYCDgDuQZsHbx/gaVV1/pImD5e0dA6AIkmSNIH6FALnA58Gvgh8EDiPds7ZK3uQuy/wNuAWYyrzBqamF6iqPwM/prW+PTTJbavqOtpE5j8C5gJHVNX5fXuDnLQCbJmTJEmaUL2F61Rgc+BpwPeAI4ANaQOIPBB4SVV9dmxFdiPn9d0JWBv4Ja3h4CBat8v9gfVoNZ84NbecQU5acYY5SZKkCdYHE7kXcBTw0qr6fJLHAxsBX6uq7407FC0yQMubaa1vGwNvpXUTfTRtsJONgWc4SqW0ahjmJEmSBiDJQ2lzsn0UuD9wUFV9f8w1rVtVf++X59LmuTuiqs5N8jRgB+A9VfXtXv8fnDdOWnUMc5IkSQOR5D7A04GPV9WpY65lcQO03BN4V1Wd2Ld5I7BVVT1ubIVKqzGnJpAkSRqIqvpGkrOr6ppxd63sNZwPfL4v2hW4ALhTkgV9cJOTgMeOtuBJWnUczVKSJGlA+iiXkzIC5E/5R8vczYATgW2AQ/rcd+8DTjPISTPDbpaSJElaYYsM0PKSqvpCkmcAWwMnVdU5425FlFZXhjlJkiSttJEBWj5MG6DleVPzyEmaGYY5SZIkrRKTNECLtCYwzEmSJGmVSbLOJAzQIq0JDHOSJEmSNECOZilJkiRJA2SYkyRJkqQBMsxJkiRJ0gAZ5iRJkiRpgAxzkiRJkjRAhjlJkiRJGqD/D/FE97+Kn8iIAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "fig, ax = plt.subplots(1,1, figsize=(15,5))\n", - "ax.bar(x=BANDS, height=crop_earth_observation_data[10])\n", - "ax.set_title(\"Earth observation bands\")\n", - "plt.xticks(rotation=45);" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "s6IcaAx8nCZJ" - }, - "source": [ - "### ❗**Challenge**❗\n", - "\n", - "Plot the NDVI (normalized difference vegetation index) for crop and non-crop data over a one year period." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": { - "id": "EygEo2fehJwF" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Crop: http://maps.google.com/maps?z=12&t=k&q=loc:7.5845981+1.41240946\n", - "Non-crop: http://maps.google.com/maps?z=12&t=k&q=loc:10.87840903+-0.00512438\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "def get_ndvi(feature_path):\n", - " feature_instance = load_feature(feature_path)\n", - " earth_observation_data = feature_instance.labelled_array\n", - " ndvi_for_one_year = earth_observation_data[:12, -1]\n", - " return ndvi_for_one_year\n", - "\n", - "fig, ax = plt.subplots(1,1, figsize=(10,5))\n", - "ax.set_title(\"NDVI\")\n", - "plt.xticks(rotation=45)\n", - "\n", - "crop_feature_path = crop_label[FEATURE_PATH]\n", - "crop_ndvi = get_ndvi(crop_feature_path)\n", - "ax.plot(MONTHS, crop_ndvi, label=\"Crop\")\n", - "\n", - "##########################################\n", - "non_crop_label = df[(df[CLASS_PROB] == 0.0) & (df[SUBSET] == \"validation\")].iloc[0]# YOUR CODE HERE\n", - "##########################################\n", - "non_crop_feature_path = non_crop_label[FEATURE_PATH]\n", - "non_crop_ndvi = get_ndvi(non_crop_feature_path)\n", - "ax.plot(MONTHS, non_crop_ndvi, label=\"Non-crop\")\n", - "\n", - "ax.legend()\n", - "\n", - "gmap_url = \"http://maps.google.com/maps?z=12&t=k&q=loc:\"\n", - "print(f\"Crop: {gmap_url}{crop_label[LAT]}+{crop_label[LON]}\")\n", - "print(f\"Non-crop: {gmap_url}{non_crop_label[LAT]}+{non_crop_label[LON]}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "dTxkzHh6BreD" - }, - "source": [ - "## 3. Train cropland model 🏋️‍♂️\n", - "\n", - "\n", - "\n", - "" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": { - "id": "XeHdrZdi2maq" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[31mERROR: thinc 8.0.17 has requirement typing-extensions<4.2.0,>=3.7.4.1; python_version < \"3.8\", but you'll have typing-extensions 4.2.0 which is incompatible.\u001b[0m\n", - "\u001b[31mERROR: spacy 3.3.1 has requirement typing-extensions<4.2.0,>=3.7.4; python_version < \"3.8\", but you'll have typing-extensions 4.2.0 which is incompatible.\u001b[0m\n", - "\u001b[31mERROR: imbalanced-learn 0.9.1 has requirement scikit-learn>=1.1.0, but you'll have scikit-learn 1.0.2 which is incompatible.\u001b[0m\n", - "\u001b[33mWARNING: You are using pip version 20.1.1; however, version 22.1.2 is available.\n", - "You should consider upgrading via the '/Users/izvonkov/nasaharvest/openmapflow/venv/bin/python -m pip install --upgrade pip' command.\u001b[0m\n" - ] - } - ], - "source": [ - "!pip install tsai -q" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "id": "pFIPcPwSITk-" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "MODEL_NAME=test_model\n" - ] - } - ], - "source": [ - "import os\n", - "os.environ[\"MODEL_NAME\"] = input(\"MODEL_NAME=\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-dg5JA8OlB0u" - }, - "source": [ - "`train.py` can be opened in Colab directly using the sidebar." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "id": "xFHpDEu2Bs3f" - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Upsampling: positive class from 7807 to 13727 using upsampling ratio: 0.5\n", - "Loading data into memory\n", - "Caching files: 100%|████████████████████| 41181/41181 [00:34<00:00, 1206.30it/s]\n", - "Loading data into memory\n", - "Caching files: 100%|████████████████████████| 277/277 [00:00<00:00, 1104.23it/s]\n", - "Epoch: 0%| | 0/3 [00:00" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "NdPMyyP3MR_o" - }, - "outputs": [], - "source": [ - "merged_pred_file = merge_tifs(full_prefix=f\"{preds_dir}/\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "mL7Z3UdCxkSa" - }, - "source": [ - "### Visualize predictions" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "TlC_bZLrMT5y" - }, - "outputs": [], - "source": [ - "# Visualize\n", - "predictions_map = rio.open(merged_pred_file)\n", - "if \"maize\" in PROJECT:\n", - " cmap = cmocean.cm.solar\n", - "elif \"crop\" in PROJECT:\n", - " cmap = cmocean.cm.speed\n", - "else:\n", - " cmap = cmocean.cm.thermal\n", - "\n", - "plt.figure(figsize=(10,10))\n", - "plt.imshow(predictions_map.read(1).clip(0,1), cmap=cmap)\n", - "plt.title(f\"Map Preview: {PROJECT}\")\n", - "plt.colorbar(fraction=0.03, pad=0.04)\n", - "plt.axis(\"off\");" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "5PUBalhgMdKf" - }, - "source": [ - "## 5. [OPTIONAL] Deployment - Push to dvc and git\n", - "This will only work if you have forked the repository or have write access to the source repository." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "rKFsB8eGsfkG" - }, - "outputs": [], - "source": [ - "# Generate test metrics\n", - "!python evaluate.py --model_name $MODEL_NAME" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "rUJSD5MGMaUM" - }, - "outputs": [], - "source": [ - "!dvc commit -q \n", - "!dvc push -q" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "DoubM_2tMhWO" - }, - "outputs": [], - "source": [ - "!git checkout -b\"$MODEL_NAME\"\n", - "!git add .\n", - "!git commit -m \"$MODEL_NAME\"\n", - "!git push --set-upstream origin \"$MODEL_NAME\"" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "ks-N5PD8u8zz" - }, - "source": [ - "Once Pull Request is merged model will be deployed for map creation.\n", - "\n", - "" - ] - } - ], - "metadata": { - "colab": { - "collapsed_sections": [], - "name": "tutorial.ipynb", - "provenance": [] - }, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.12" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/maize-example/data/.gitignore b/maize-example/data/.gitignore index ad0870f4..68ce2c1c 100644 --- a/maize-example/data/.gitignore +++ b/maize-example/data/.gitignore @@ -1,5 +1,3 @@ +/datasets /raw_labels -/processed_labels -/compressed_features.tar.gz /models -/features diff --git a/maize-example/data/compressed_features.tar.gz.dvc b/maize-example/data/compressed_features.tar.gz.dvc deleted file mode 100644 index 128217cb..00000000 --- a/maize-example/data/compressed_features.tar.gz.dvc +++ /dev/null @@ -1,4 +0,0 @@ -outs: -- md5: be3bd66135705ed2c5856fe16da0e49d - size: 2855880 - path: compressed_features.tar.gz diff --git a/maize-example/data/datasets.dvc b/maize-example/data/datasets.dvc new file mode 100644 index 00000000..4504b98e --- /dev/null +++ b/maize-example/data/datasets.dvc @@ -0,0 +1,5 @@ +outs: +- md5: 12957f5eda7ca6be4b6fce7850b777d9.dir + size: 12622563 + nfiles: 3 + path: datasets diff --git a/maize-example/data/missing.txt b/maize-example/data/missing.txt deleted file mode 100644 index 5d3e2159..00000000 --- a/maize-example/data/missing.txt +++ /dev/null @@ -1,11 +0,0 @@ - -lat=-4.1642888_lon=39.67288514_date=2019-01-01_2020-12-31 -lat=-2.0697995_lon=41.00494446_date=2019-01-01_2020-12-31 -lat=-2.07500971_lon=41.24650866_date=2019-01-01_2020-12-31 -lat=-2.37979799_lon=40.83343718_date=2019-01-01_2020-12-31 -lat=-1.99901647_lon=41.11140023_date=2019-01-01_2020-12-31 -lat=-2.92462696_lon=40.21421752_date=2019-01-01_2020-12-31 -lat=-2.61056766_lon=40.41019565_date=2019-01-01_2020-12-31 -lat=-3.29025581_lon=40.13802781_date=2019-01-01_2020-12-31 -lat=-3.4515538_lon=39.96225296_date=2019-01-01_2020-12-31 -lat=-4.81990194_lon=39.28686437_date=2019-01-01_2020-12-31 \ No newline at end of file diff --git a/maize-example/data/processed_labels.dvc b/maize-example/data/processed_labels.dvc deleted file mode 100644 index 746611dd..00000000 --- a/maize-example/data/processed_labels.dvc +++ /dev/null @@ -1,5 +0,0 @@ -outs: -- md5: 34122fb4ea87bc97bad8a4ef120ace42.dir - size: 405801 - nfiles: 2 - path: processed_labels diff --git a/maize-example/data/datasets.txt b/maize-example/data/report.txt similarity index 60% rename from maize-example/data/datasets.txt rename to maize-example/data/report.txt index 199dd403..6f8f4f3d 100644 --- a/maize-example/data/datasets.txt +++ b/maize-example/data/report.txt @@ -2,18 +2,20 @@ DATASET REPORT (autogenerated, do not edit directly) Kenya_non_crop_2019 (Timesteps: 24) ---------------------------------------------------------------------------- +eo_data_complete 1767 +eo_data_duplicate 252 +eo_data_missing_values 10 ✔ training amount: 1057, positive class: 0.0% -✔ testing amount: 378, positive class: 0.0% ✔ validation amount: 332, positive class: 0.0% +✔ testing amount: 378, positive class: 0.0% + ref_african_crops_kenya_01_labels (Timesteps: 24) ---------------------------------------------------------------------------- -✔ training amount: 164, positive class: 65.2% -✔ testing amount: 83, positive class: 59.0% -✔ validation amount: 66, positive class: 56.1% - +eo_data_complete 312 +eo_data_duplicate 7 +✔ training amount: 179, positive class: 64.8% +✔ validation amount: 62, positive class: 61.3% +✔ testing amount: 71, positive class: 56.3% -All data: -✔ Found no empty features -✔ No duplicates found \ No newline at end of file diff --git a/maize-example/datasets.py b/maize-example/datasets.py index aec82b92..9b2a223d 100644 --- a/maize-example/datasets.py +++ b/maize-example/datasets.py @@ -3,8 +3,7 @@ """ from typing import List -from openmapflow.features import create_features -from openmapflow.labeled_dataset import LabeledDataset +from openmapflow.labeled_dataset import LabeledDataset, create_datasets from openmapflow.raw_labels import RawLabels datasets: List[LabeledDataset] = [ @@ -65,4 +64,4 @@ ] if __name__ == "__main__": - create_features(datasets) + create_datasets(datasets) diff --git a/maize-example/evaluate.py b/maize-example/evaluate.py index 4678caf7..bb7ada51 100644 --- a/maize-example/evaluate.py +++ b/maize-example/evaluate.py @@ -40,7 +40,7 @@ model_path = model_path_from_name(model_name=model_name) # ------------ Dataloaders ------------------------------------- -df = pd.concat([d.load_labels() for d in datasets]) +df = pd.concat([d.load_df() for d in datasets]) test_data = PyTorchDataset( df=df[df[SUBSET] == "testing"], start_month=start_month, subset="testing" ) diff --git a/maize-example/openmapflow.yaml b/maize-example/openmapflow.yaml index afe2829f..1ae02921 100644 --- a/maize-example/openmapflow.yaml +++ b/maize-example/openmapflow.yaml @@ -1,10 +1,10 @@ -version: 0.0.2 +version: 0.1.0 project: maize-example description: OpenMapFlow maize example gcloud: project_id: bsos-geog-harvest1 location: us-central1 - bucket_labeled_tifs: crop-mask-tifs2 - bucket_inference_tifs: maize-example-inference-tifs + bucket_labeled_eo: crop-mask-tifs2 + bucket_inference_eo: maize-example-inference-tifs bucket_preds: maize-example-preds bucket_preds_merged: maize-example-preds-merged \ No newline at end of file diff --git a/maize-example/requirements.txt b/maize-example/requirements.txt new file mode 100644 index 00000000..d8252b2c --- /dev/null +++ b/maize-example/requirements.txt @@ -0,0 +1,3 @@ +matplotlib +openmapflow +tsai \ No newline at end of file diff --git a/maize-example/train.py b/maize-example/train.py index fae2cb89..b6622954 100644 --- a/maize-example/train.py +++ b/maize-example/train.py @@ -62,7 +62,7 @@ import wandb # ------------ Dataloaders ------------------------------------- -df = pd.concat([d.load_labels() for d in datasets]) +df = pd.concat([d.load_df() for d in tqdm(datasets, desc="Loading datasets")]) train_df = df[df[SUBSET] == "training"].copy() val_df = df[df[SUBSET] == "validation"].copy() train_data = PyTorchDataset( diff --git a/openmapflow/config.py b/openmapflow/config.py index 91fdffee..ad5bad74 100644 --- a/openmapflow/config.py +++ b/openmapflow/config.py @@ -54,15 +54,10 @@ def load_default_config(project_name: str) -> Dict: class DataPaths: RAW_LABELS = DATA_DIR + CONFIG_YML["data_paths"]["raw_labels"] - PROCESSED_LABELS = DATA_DIR + CONFIG_YML["data_paths"]["processed_labels"] - FEATURES = DATA_DIR + CONFIG_YML["data_paths"]["features"] - COMPRESSED_FEATURES = DATA_DIR + CONFIG_YML["data_paths"]["compressed_features"] + DATASETS = DATA_DIR + CONFIG_YML["data_paths"]["datasets"] MODELS = DATA_DIR + CONFIG_YML["data_paths"]["models"] METRICS = DATA_DIR + CONFIG_YML["data_paths"]["metrics"] - DATASETS = DATA_DIR + CONFIG_YML["data_paths"]["datasets"] - MISSING = DATA_DIR + CONFIG_YML["data_paths"]["missing"] - DUPLICATES = DATA_DIR + CONFIG_YML["data_paths"]["duplicates"] - UNEXPORTED = DATA_DIR + CONFIG_YML["data_paths"]["unexported"] + REPORT = DATA_DIR + CONFIG_YML["data_paths"]["report"] @classmethod def get(cls, key: str = "") -> str: @@ -77,8 +72,8 @@ def get(cls, key: str = "") -> str: class BucketNames: - LABELED_TIFS = CONFIG_YML["gcloud"]["bucket_labeled_tifs"] - INFERENCE_TIFS = CONFIG_YML["gcloud"]["bucket_inference_tifs"] + LABELED_EO = CONFIG_YML["gcloud"]["bucket_labeled_eo"] + INFERENCE_EO = CONFIG_YML["gcloud"]["bucket_inference_eo"] PREDS = CONFIG_YML["gcloud"]["bucket_preds"] PREDS_MERGED = CONFIG_YML["gcloud"]["bucket_preds_merged"] @@ -99,8 +94,8 @@ def deploy_env_variables(empty_check: bool = True) -> str: "LIBRARY_DIR": LIBRARY_DIR, "GCLOUD_PROJECT_ID": GCLOUD_PROJECT_ID, "GCLOUD_LOCATION": GCLOUD_LOCATION, - "GCLOUD_BUCKET_LABELED_TIFS": BucketNames.LABELED_TIFS, - "GCLOUD_BUCKET_INFERENCE_TIFS": BucketNames.INFERENCE_TIFS, + "GCLOUD_BUCKET_LABELED_EO": BucketNames.LABELED_EO, + "GCLOUD_BUCKET_INFERENCE_EO": BucketNames.INFERENCE_EO, "GCLOUD_BUCKET_PREDS": BucketNames.PREDS, "GCLOUD_BUCKET_PREDS_MERGED": BucketNames.PREDS_MERGED, "DOCKER_TAG": DOCKER_TAG, diff --git a/openmapflow/constants.py b/openmapflow/constants.py index 103c3b0a..c364679b 100644 --- a/openmapflow/constants.py +++ b/openmapflow/constants.py @@ -9,11 +9,12 @@ TEMPLATE_DATASETS = TEMPLATES_DIR / "datasets.py" TEMPLATE_TRAIN = TEMPLATES_DIR / "train.py" TEMPLATE_EVALUATE = TEMPLATES_DIR / "evaluate.py" +TEMPLATE_REQUIREMENTS = TEMPLATES_DIR / "requirements.txt" TEMPLATE_DEPLOY_YML = TEMPLATES_DIR / "github-deploy.yaml" TEMPLATE_TEST_YML = TEMPLATES_DIR / "github-test.yaml" -VERSION = "0.0.2" +VERSION = "0.1.0" -# -------------- Dataframe column names --------------------------------------- +# -------------- Dataframe column names -------------------------------------- SOURCE = "source" CLASS_PROB = "class_probability" START = "start_date" @@ -24,12 +25,23 @@ NUM_LABELERS = "num_labelers" SUBSET = "subset" DATASET = "dataset" -ALREADY_EXISTS = "already_exists" -FEATURE_FILENAME = "filename" -FEATURE_PATH = "save_path" -TIF_PATHS = "tif_paths" +MATCHING_EO_FILES = "matching_eo_files" LABELER_NAMES = "email" LABEL_DUR = "analysis_duration" +EO_DATA = "eo_data" +EO_LAT = "eo_lat" +EO_LON = "eo_lon" +EO_FILE = "eo_file" +EO_STATUS = "eo_status" + +# -------------- EO data statuses --------------------------------------------- +EO_STATUS_WAITING = "eo_data_waiting" +EO_STATUS_DUPLICATE = "eo_data_duplicate" +EO_STATUS_EXPORTING = "eo_data_exporting" +EO_STATUS_EXPORT_FAILED = "eo_data_export_failed" +EO_STATUS_MISSING_VALUES = "eo_data_missing_values" +EO_STATUS_SKIPPED = "eo_data_skipped" +EO_STATUS_COMPLETE = "eo_data_complete" # -------------- Months ------------------------------------------------------- MONTHS = [ diff --git a/openmapflow/features.py b/openmapflow/features.py deleted file mode 100644 index 6e1e995d..00000000 --- a/openmapflow/features.py +++ /dev/null @@ -1,119 +0,0 @@ -from __future__ import annotations - -import pickle -import tarfile -from pathlib import Path -from typing import TYPE_CHECKING, List - -import numpy as np -import pandas as pd -from cropharvest.utils import memoized - -from openmapflow.config import PROJECT_ROOT -from openmapflow.config import DataPaths as dp -from openmapflow.data_instance import DataInstance -from openmapflow.utils import try_txt_read - -if TYPE_CHECKING: - from openmapflow.labeled_dataset import LabeledDataset - - -def create_feature( - feature_path: str, - tif_values: np.ndarray, - tif_lat: float, - tif_lon: float, - tif_file: str, -): - instance = DataInstance( - labelled_array=tif_values, - instance_lat=tif_lat, - instance_lon=tif_lon, - source_file=tif_file, - ) - save_path = Path(feature_path) - save_path.parent.mkdir(exist_ok=True) - with save_path.open("wb") as f: - pickle.dump(instance, f) - - -@memoized -def load_feature(p) -> DataInstance: - with Path(p).open("rb") as f: - return pickle.load(f) - - -@memoized -def load_all_features_as_df() -> pd.DataFrame: - duplicates_data = try_txt_read(PROJECT_ROOT / dp.DUPLICATES) - features = [] - files = list((PROJECT_ROOT / dp.FEATURES).glob("*.pkl")) - print("------------------------------") - print("Loading all features...") - non_duplicated_files = [] - for p in files: - if p.stem not in duplicates_data: - non_duplicated_files.append(p) - with p.open("rb") as f: - features.append(pickle.load(f)) - df = pd.DataFrame([feat.__dict__ for feat in features]) - df["filename"] = non_duplicated_files - return df - - -def check_features_df_empty(df: pd.DataFrame) -> str: - """ - Some exported tif data may have nan values - """ - if len(df) == 0: - return "No features found" - empties = df[df["labelled_array"].isnull()] - num_empty = len(empties) - if num_empty > 0: - return f"\u2716 Found {num_empty} empty features" - else: - return "\u2714 Found no empty features" - - -def check_features_df_duplicates(df: pd.DataFrame) -> str: - """ - Duplicates can occur when not all tifs have been downloaded - and different labels are matched to same tif - """ - if len(df) == 0: - return "No features found" - cols_to_check = ["instance_lon", "instance_lat", "source_file"] - duplicates = df[df.duplicated(subset=cols_to_check)] - num_dupes = len(duplicates) - if num_dupes > 0: - remove_ignore_dupes = input(f"Found {num_dupes} duplicates, remove? [y]/n: ") - if remove_ignore_dupes.lower() == "n": - return f"\u2716 Found {num_dupes} duplicates" - - duplicates_data = try_txt_read(PROJECT_ROOT / dp.DUPLICATES) - feature_filenames = duplicates.filename.apply(lambda p: Path(p).stem).tolist() - with (PROJECT_ROOT / dp.DUPLICATES).open("w") as f: - f.write("\n".join(duplicates_data + feature_filenames)) - return "\u2714 No duplicates found" - - -def create_features(datasets: List[LabeledDataset]): - report = "DATASET REPORT (autogenerated, do not edit directly)" - for d in datasets: - text = d.create_features() - report += "\n\n" + text - - df = load_all_features_as_df() - empty_text = check_features_df_empty(df) - duplicates_text = check_features_df_duplicates(df) - print(empty_text) - print(duplicates_text) - report += "\n\nAll data:\n" + empty_text + "\n" + duplicates_text - - with (PROJECT_ROOT / dp.DATASETS).open("w") as f: - f.write(report) - - # Compress features for faster CI/CD - print("Compressing features...") - with tarfile.open(PROJECT_ROOT / dp.COMPRESSED_FEATURES, "w:gz") as tar: - tar.add(PROJECT_ROOT / dp.FEATURES, arcname=Path(dp.FEATURES).name) diff --git a/openmapflow/generate.py b/openmapflow/generate.py index 6d35bcd1..5cd5a76e 100644 --- a/openmapflow/generate.py +++ b/openmapflow/generate.py @@ -1,16 +1,15 @@ import argparse import os import shutil -import tarfile from pathlib import Path from typing import Union from openmapflow.constants import ( CONFIG_FILE, - DATA_DIR, TEMPLATE_DATASETS, TEMPLATE_DEPLOY_YML, TEMPLATE_EVALUATE, + TEMPLATE_REQUIREMENTS, TEMPLATE_TEST_YML, TEMPLATE_TRAIN, VERSION, @@ -32,19 +31,20 @@ def create_openmapflow_config(overwrite: bool): return cwd = Path.cwd() project_name = input(f" Project name [{cwd.stem}]: ") or cwd.stem - description = input(" Description: ") + auto_description = f"OpenMapFlow {project_name.replace('-', ' ').replace('_', ' ')}" + description = input(f" Description [{auto_description}]: ") or auto_description gcloud_project_id = input(" GCloud project ID: ") gcloud_location = input(" GCloud location [us-central1]: ") or "us-central1" buckets = { - "bucket_labeled_tifs": f"{project_name}-labeled-tifs", - "bucket_inference_tifs": f"{project_name}-inference-tifs", + "bucket_labeled_eo": f"{project_name}-labeled-eo", + "bucket_inference_eo": f"{project_name}-inference-eo", "bucket_preds": f"{project_name}-preds", "bucket_preds_merged": f"{project_name}-preds-merged", } for k, v in buckets.items(): - buckets[k] = input(f" Gcloud {k.replace('_', ' ')} [{v}]: ") or v + buckets[k] = input(f" GCloud {k.replace('_', ' ')} [{v}]: ") or v openmapflow_str = ( f"version: {VERSION}" @@ -53,8 +53,8 @@ def create_openmapflow_config(overwrite: bool): + "\ngcloud:" + f"\n project_id: {gcloud_project_id}" + f"\n location: {gcloud_location}" - + f"\n bucket_labeled_tifs: {buckets['bucket_labeled_tifs']}" - + f"\n bucket_inference_tifs: {buckets['bucket_inference_tifs']}" + + f"\n bucket_labeled_eo: {buckets['bucket_labeled_eo']}" + + f"\n bucket_inference_eo: {buckets['bucket_inference_eo']}" + f"\n bucket_preds: {buckets['bucket_preds']}" + f"\n bucket_preds_merged: {buckets['bucket_preds_merged']}" ) @@ -65,21 +65,22 @@ def create_openmapflow_config(overwrite: bool): def copy_template_files(PROJECT_ROOT: Path, overwrite: bool): """Copies template files to project directory""" - for p in [TEMPLATE_DATASETS, TEMPLATE_TRAIN, TEMPLATE_EVALUATE]: + for p in [ + TEMPLATE_DATASETS, + TEMPLATE_TRAIN, + TEMPLATE_EVALUATE, + TEMPLATE_REQUIREMENTS, + ]: if allow_write(PROJECT_ROOT / p.name, overwrite): shutil.copy(str(p), str(PROJECT_ROOT / p.name)) def create_data_dirs(dp, overwrite: bool): """Creates data directories""" - for p in [dp.FEATURES, dp.RAW_LABELS, dp.PROCESSED_LABELS, dp.MODELS]: + for p in [dp.RAW_LABELS, dp.DATASETS, dp.MODELS]: if allow_write(p, overwrite): Path(p).mkdir(parents=True, exist_ok=True) - if allow_write(dp.COMPRESSED_FEATURES): - with tarfile.open(dp.COMPRESSED_FEATURES, "w:gz") as tar: - tar.add(dp.FEATURES, arcname=Path(dp.FEATURES).name) - def fill_in_and_write_action( src_yml_path: Path, @@ -181,12 +182,9 @@ def setup_dvc(PROJECT_ROOT: Path, is_subdir: bool, dp): else: _print_and_run("dvc init") - dvc_files = [dp.RAW_LABELS, dp.PROCESSED_LABELS, dp.COMPRESSED_FEATURES, dp.MODELS] + dvc_files = [dp.RAW_LABELS, dp.DATASETS, dp.MODELS] _print_and_run("dvc add " + " ".join(dvc_files)) - with open(DATA_DIR + ".gitignore", "a") as f: - f.write("/features") - print("dvc stores data in remote storage (s3, gcs, gdrive, etc)") print("https://dvc.org/doc/command-reference/remote/add#supported-storage-types") option = input("a) Setup gdrive / b) Exit and setup own remote [a]/b: ") @@ -216,7 +214,7 @@ def setup_dvc(PROJECT_ROOT: Path, is_subdir: bool, dp): from openmapflow.config import PROJECT, PROJECT_ROOT from openmapflow.config import DataPaths as dp # noqa E402 - print(f"2/{n} Copying datasets.py, train.py, evaluate.py") + print(f"2/{n} Copying datasets.py, train.py, evaluate.py requirements.txt") copy_template_files(PROJECT_ROOT, args.overwrite) print(f"3/{n} Creating data directories") diff --git a/openmapflow/inference_utils.py b/openmapflow/inference_utils.py index 5630cd92..f144d592 100644 --- a/openmapflow/inference_utils.py +++ b/openmapflow/inference_utils.py @@ -35,7 +35,7 @@ def get_available_models(models_url: str) -> List[str]: def get_available_bboxes( - buckets_to_check: List[str] = [bn.INFERENCE_TIFS], + buckets_to_check: List[str] = [bn.INFERENCE_EO], ) -> List[BBox]: """ Get all available bboxes from the given buckets using regex. @@ -129,7 +129,7 @@ def get_status(prefix: str) -> Tuple[int, int, int]: """ print_between_lines(prefix) ee_task_amount = get_ee_task_amount(prefix=prefix) - tifs_amount = get_gcs_file_amount(bn.INFERENCE_TIFS, prefix=prefix) + tifs_amount = get_gcs_file_amount(bn.INFERENCE_EO, prefix=prefix) predictions_amount = get_gcs_file_amount(bn.PREDS, prefix=prefix) print(f"1) Obtaining input data: {ee_task_amount}") print(f"2) Input data available: {tifs_amount}") @@ -150,7 +150,7 @@ def find_missing_predictions( Dictionary of missing predictions. """ print("Addressing missing files") - tif_files, tif_amount = get_gcs_file_dict_and_amount(bn.INFERENCE_TIFS, prefix) + tif_files, tif_amount = get_gcs_file_dict_and_amount(bn.INFERENCE_EO, prefix) pred_files, pred_amount = get_gcs_file_dict_and_amount(bn.PREDS, prefix) missing = {} for full_k in tqdm(tif_files.keys(), desc="Missing files"): @@ -186,7 +186,7 @@ def find_missing_predictions( def make_new_predictions( - missing: Dict[str, List[str]], bucket_name: str = bn.INFERENCE_TIFS + missing: Dict[str, List[str]], bucket_name: str = bn.INFERENCE_EO ): """ Renames missing files which retriggers inference. diff --git a/openmapflow/labeled_dataset.py b/openmapflow/labeled_dataset.py index 467d6885..8319dab4 100644 --- a/openmapflow/labeled_dataset.py +++ b/openmapflow/labeled_dataset.py @@ -1,9 +1,10 @@ import re import tempfile +import warnings from dataclasses import dataclass from datetime import datetime from pathlib import Path -from typing import Dict, List, Tuple +from typing import Dict, List, Optional, Tuple import numpy as np import pandas as pd @@ -18,33 +19,34 @@ from openmapflow.config import PROJECT_ROOT, BucketNames from openmapflow.config import DataPaths as dp from openmapflow.constants import ( - ALREADY_EXISTS, CLASS_PROB, COUNTRY, DATASET, END, - FEATURE_FILENAME, - FEATURE_PATH, + EO_DATA, + EO_FILE, + EO_LAT, + EO_LON, + EO_STATUS, + EO_STATUS_COMPLETE, + EO_STATUS_DUPLICATE, + EO_STATUS_EXPORT_FAILED, + EO_STATUS_EXPORTING, + EO_STATUS_MISSING_VALUES, LABEL_DUR, LABELER_NAMES, LAT, LON, + MATCHING_EO_FILES, NUM_LABELERS, SOURCE, START, SUBSET, - TIF_PATHS, ) -from openmapflow.features import create_feature from openmapflow.raw_labels import RawLabels -from openmapflow.utils import try_txt_read temp_dir = tempfile.gettempdir() -missing_data = try_txt_read(PROJECT_ROOT / dp.MISSING) -unexported = try_txt_read(PROJECT_ROOT / dp.UNEXPORTED) -duplicates_data = try_txt_read(PROJECT_ROOT / dp.DUPLICATES) - def find_nearest(array, value: float) -> Tuple[float, int]: array = np.asarray(array) @@ -90,23 +92,26 @@ def bbox_from_str(s: str) -> BBox: @memoized def generate_bbox_from_paths() -> Dict[Path, BBox]: - cloud_tif_uris = [uri for uri in get_cloud_tif_list(BucketNames.LABELED_TIFS)] + cloud_eo_uris = [uri for uri in get_cloud_tif_list(BucketNames.LABELED_EO)] return { Path(uri): bbox_from_str(uri) - for uri in tqdm(cloud_tif_uris, desc="Generating BBoxes from paths") + for uri in tqdm(cloud_eo_uris, desc="Generating BBoxes from paths") } def get_tif_paths(path_to_bbox, lat, lon, start_date, end_date, pbar): candidate_paths = [] for p, bbox in path_to_bbox.items(): - if bbox.contains(lat, lon) and f"dates={start_date}_{end_date}" in p.stem: + if ( + bbox.contains(lat=lat, lon=lon) + and f"dates={start_date}_{end_date}" in p.stem + ): candidate_paths.append(p) pbar.update(1) return candidate_paths -def match_labels_to_tifs(labels: pd.DataFrame) -> pd.Series: +def match_labels_to_eo_files(labels: pd.DataFrame) -> pd.Series: # Add a bounday to get additional tifs bbox_for_labels = BBox( min_lon=labels[LON].min() - 1.0, @@ -114,29 +119,30 @@ def match_labels_to_tifs(labels: pd.DataFrame) -> pd.Series: max_lon=labels[LON].max() + 1.0, max_lat=labels[LAT].max() + 1.0, ) - # Get all tif paths and bboxes + # Get all eo file paths and bboxes path_to_bbox = { p: bbox for p, bbox in generate_bbox_from_paths().items() if bbox_for_labels.contains_bbox(bbox) } - # Match labels to tif files # Faster than going through bboxes - with tqdm(total=len(labels), desc="Matching labels to tif paths") as pbar: - tif_paths = np.vectorize(get_tif_paths, otypes=[np.ndarray])( - path_to_bbox, - labels[LAT], - labels[LON], - labels[START], - labels[END], - pbar, + with tqdm( + total=len(labels), desc="Matching labels to earth observation paths" + ) as pbar: + eo_file_paths = np.vectorize(get_tif_paths, otypes=[np.ndarray])( + path_to_bbox=path_to_bbox, + lat=labels[LAT], + lon=labels[LON], + start_date=labels[START], + end_date=labels[END], + pbar=pbar, ) - return tif_paths + return eo_file_paths def find_matching_point( - start: str, tif_paths: List[Path], label_lon: float, label_lat: float, tif_bucket + start: str, eo_paths: List[Path], label_lon: float, label_lat: float, tif_bucket ) -> Tuple[np.ndarray, float, float, str]: """ Given a label coordinate (y) this functions finds the associated satellite data (X) @@ -147,10 +153,11 @@ def find_matching_point( """ start_date = datetime.strptime(start, "%Y-%m-%d") tif_slope_tuples = [] - for p in tif_paths: + for p in eo_paths: blob = tif_bucket.blob(str(p)) local_path = Path(f"{temp_dir}/{p.name}") - blob.download_to_filename(str(local_path)) + if not local_path.exists(): + blob.download_to_filename(str(local_path)) tif_slope_tuples.append( Engineer.load_tif( str(local_path), start_date=start_date, num_timesteps=None @@ -176,61 +183,47 @@ def find_matching_point( closest_lat = lat min_distance_from_center = distance_from_center min_distance_from_point = distance_from_point - labelled_np = tif.sel(x=lon).sel(y=lat).values + eo_data = tif.sel(x=lon).sel(y=lat).values average_slope = slope - source_file = tif_paths[i].name + eo_file = eo_paths[i].name else: tif, slope = tif_slope_tuples[0] closest_lon = find_nearest(tif.x, label_lon)[0] closest_lat = find_nearest(tif.y, label_lat)[0] - labelled_np = tif.sel(x=closest_lon).sel(y=closest_lat).values + eo_data = tif.sel(x=closest_lon).sel(y=closest_lat).values average_slope = slope - source_file = tif_paths[0].name - - labelled_np = Engineer.calculate_ndvi(labelled_np) - labelled_np = Engineer.remove_bands(labelled_np) - labelled_np = Engineer.fillna(labelled_np, average_slope) - - return labelled_np, closest_lon, closest_lat, source_file - - -def create_pickled_labeled_dataset(labels: pd.DataFrame): - tif_bucket = storage.Client().bucket(BucketNames.LABELED_TIFS) - for label in tqdm( - labels.to_dict(orient="records"), desc="Creating pickled instances" - ): - (labelled_array, tif_lon, tif_lat, tif_file) = find_matching_point( - start=label[START], - tif_paths=label[TIF_PATHS], - label_lon=label[LON], - label_lat=label[LAT], - tif_bucket=tif_bucket, - ) - - if labelled_array is None: - missing_data_file = PROJECT_ROOT / dp.MISSING - if not missing_data_file.exists(): - missing_data_file.touch() + eo_file = eo_paths[0].name - with open(missing_data_file, "a") as f: - f.write("\n" + label[FEATURE_FILENAME]) - continue + eo_data = Engineer.calculate_ndvi(eo_data) + eo_data = Engineer.remove_bands(eo_data) + with warnings.catch_warnings(): + warnings.simplefilter("ignore") + eo_data = Engineer.fillna(eo_data, average_slope) - create_feature(label[FEATURE_PATH], labelled_array, tif_lon, tif_lat, tif_file) + return eo_data, closest_lon, closest_lat, eo_file def get_label_timesteps(labels): + assert START in labels.columns + assert END in labels.columns diff = pd.to_datetime(labels[END]) - pd.to_datetime(labels[START]) return (diff / np.timedelta64(1, "M")).round().astype(int) +def to_np(x: str) -> Optional[np.ndarray]: + try: + return np.array(eval(x)) + except TypeError: + return None + + @dataclass class LabeledDataset: """ A labeled dataset represents a DataFrame where each row consists of: - A coordinate - A binary label for that coordinate (y) - - A path to earth observation data for that coordinate (X) + - The earth observation data for that coordinate (X) Together labels (y) and the associated earth observation data (X) can be used to train and evaluate a macine learning model a model. @@ -246,34 +239,24 @@ class LabeledDataset: def __post_init__(self): self.raw_dir = PROJECT_ROOT / dp.RAW_LABELS / self.dataset - self.labels_path = PROJECT_ROOT / dp.PROCESSED_LABELS / (self.dataset + ".csv") + self.df_path = PROJECT_ROOT / dp.DATASETS / (self.dataset + ".csv") self._cached_labels_csv = None - - def summary(self, df=None, unexported_check=True): - if df is None: - df = self.load_labels( - allow_processing=False, fail_if_missing_features=False - ) - text = f"{self.dataset} " - timesteps = get_label_timesteps(df).unique() - text += f"(Timesteps: {','.join([str(int(t)) for t in timesteps])})\n" - text += "----------------------------------------------------------------------------\n" - train_val_test_counts = df[SUBSET].value_counts() - newly_unexported = [] - for subset, labels_in_subset in train_val_test_counts.items(): - features_in_subset = df[df[SUBSET] == subset][ALREADY_EXISTS].sum() + self.eo_status = "" + + def label_eo_counts(self, df: pd.DataFrame) -> str: + label_counts = df[SUBSET].value_counts() + eo_counts = df[df[EO_DATA].notnull()][SUBSET].value_counts() + text = "" + for subset in ["training", "validation", "testing"]: + if subset not in label_counts: + continue + labels_in_subset = label_counts.get(subset, 0) + features_in_subset = eo_counts.get(subset, 0) if labels_in_subset != features_in_subset: text += ( f"\u2716 {subset}: {labels_in_subset} labels, " + f"but {features_in_subset} features\n" ) - if not unexported_check: - continue - labels_with_no_feature = df[ - (df[SUBSET] == subset) & ~df[ALREADY_EXISTS] - ] - newly_unexported += labels_with_no_feature[FEATURE_FILENAME].tolist() - else: positive_class_percentage = ( df[df[SUBSET] == subset][CLASS_PROB] > 0.5 @@ -282,27 +265,28 @@ def summary(self, df=None, unexported_check=True): f"\u2714 {subset} amount: {labels_in_subset}, " + f"positive class: {positive_class_percentage:.1%}\n" ) - if not unexported_check or len(newly_unexported) == 0: - return text + return text - add_to_file = input( - f"Found {len(newly_unexported)} missing features. " - + "These may have failed on EarthEngine. Add to unexported list? (y/[n]): " + def summary(self, df): + timesteps = get_label_timesteps(df).unique() + eo_status_str = str(self.eo_status).rsplit("\n", 1)[0] + return ( + f"{self.dataset} (Timesteps: {','.join([str(int(t)) for t in timesteps])})\n" + + "----------------------------------------------------------------------------\n" + + eo_status_str + + "\n" + + self.label_eo_counts(df) + + "\n" ) - if add_to_file.lower() == "y": - with (PROJECT_ROOT / dp.UNEXPORTED).open("w") as f: - f.write("\n".join(unexported + newly_unexported)) - - return text - def create_processed_labels(self): + def create_labels(self): """ Creates a single processed labels file from a list of raw labels. """ df = pd.DataFrame({}) already_processed = [] - if self.labels_path.exists(): - df = pd.read_csv(self.labels_path) + if self.df_path.exists(): + df = pd.read_csv(self.df_path) already_processed = df[SOURCE].unique() new_labels: List[pd.DataFrame] = [] @@ -331,123 +315,185 @@ def join_if_exists(values): SUBSET: "first", LABEL_DUR: join_if_exists, LABELER_NAMES: join_if_exists, + EO_DATA: "first", + EO_LAT: "first", + EO_LON: "first", + EO_FILE: "first", + EO_STATUS: "first", } ) df[COUNTRY] = self.country df[DATASET] = self.dataset - df[FEATURE_FILENAME] = ( - "lat=" - + df[LAT].round(8).astype(str) - + "_lon=" - + df[LON].round(8).astype(str) - + "_date=" - + df[START].astype(str) - + "_" - + df[END].astype(str) - ) df = df.reset_index(drop=True) - df.to_csv(self.labels_path, index=False) + df.to_csv(self.df_path, index=False) return df - def load_labels( + def load_df( self, allow_processing: bool = False, - fail_if_missing_features: bool = False, + fail_if_missing: bool = False, + to_numpy: bool = True, ) -> pd.DataFrame: if allow_processing: - labels = self.create_processed_labels() - self._cached_labels_csv = labels + df = self.create_labels() + self._cached_df = df elif self._cached_labels_csv is not None: - labels = self._cached_labels_csv - elif self.labels_path.exists(): - labels = pd.read_csv(self.labels_path) - self._cached_labels_csv = labels + df = self._cached_df + elif self.df_path.exists(): + df = pd.read_csv(self.df_path) + self._cached_df = df else: - raise FileNotFoundError(f"{self.labels_path} does not exist") - labels = labels[labels[CLASS_PROB] != 0.5] - unexported_labels = labels[FEATURE_FILENAME].isin(unexported) - missing_data_labels = labels[FEATURE_FILENAME].isin(missing_data) - duplicate_labels = labels[FEATURE_FILENAME].isin(duplicates_data) - labels = labels[ - ~unexported_labels & ~missing_data_labels & ~duplicate_labels + raise FileNotFoundError(f"{self.df_path} does not exist") + + self.eo_status = df[EO_STATUS].value_counts() + df = df[ + (df[EO_STATUS] != EO_STATUS_MISSING_VALUES) + & (df[EO_STATUS] != EO_STATUS_EXPORT_FAILED) + & (df[EO_STATUS] != EO_STATUS_DUPLICATE) + & (df[CLASS_PROB] != 0.5) ].copy() - labels["feature_dir"] = str(dp.FEATURES) - labels[FEATURE_PATH] = ( - labels["feature_dir"] + "/" + labels[FEATURE_FILENAME] + ".pkl" - ) - labels[ALREADY_EXISTS] = np.vectorize(lambda p: Path(p).exists())( - labels[FEATURE_PATH] - ) - if fail_if_missing_features and not labels[ALREADY_EXISTS].all(): - raise FileNotFoundError( - f"{self.dataset} has missing features: {labels[FEATURE_FILENAME].to_list()}" - ) - return labels - def create_features(self, disable_gee_export: bool = False) -> str: + if to_numpy: + df[EO_DATA] = df[EO_DATA].apply(to_np) + + if fail_if_missing and not df[EO_DATA].all(): + raise ValueError(f"{self.dataset} has missing earth observation data") + return df + + def create_dataset(self, disable_gee_export: bool = False) -> pd.DataFrame: """ - Features are the (X, y) pairs that are used to train and evaluate a machine learning model. - In this case, + A dataset consists of (X, y) pairs that are used to train and evaluate + a machine learning model. In this case, - X is the earth observation data for a lat lon coordinate over a 24 month time series - y is the binary class label for that coordinate - To create the features: + To create a dataset: 1. Obtain the labels - 2. Check if the features already exist - 3. Use the label coordinates to match to the associated satellite data (X) - 4. If the satellite data is missing, download it using Google Earth Engine - 5. Create the features (X, y) + 2. Check if the eath observation data already exists + 3. Use the label coordinates to match to the associated eath observation data (X) + 4. If the eath observation data is missing, download it using Google Earth Engine + 5. Create the dataset """ - print("------------------------------") - print(self.dataset) - - # ------------------------------------------------- + # --------------------------------------------------------------------- # STEP 1: Obtain the labels - # ------------------------------------------------- - labels = self.load_labels(allow_processing=True) - - # ------------------------------------------------- - # STEP 2: Check if features already exist - # ------------------------------------------------- - labels_with_no_features = labels[~labels[ALREADY_EXISTS]].copy() - if len(labels_with_no_features) == 0: - return self.summary(df=labels) - - # ------------------------------------------------- - # STEP 3: Match labels to tif files (X) - # ------------------------------------------------- - labels_with_no_features[TIF_PATHS] = match_labels_to_tifs( - labels_with_no_features - ) - tifs_found = labels_with_no_features[TIF_PATHS].str.len() > 0 + # --------------------------------------------------------------------- + df = self.load_df(allow_processing=True, to_numpy=False) + + # --------------------------------------------------------------------- + # STEP 2: Check if earth observation data already available + # --------------------------------------------------------------------- + no_eo = df[EO_DATA].isnull() + if no_eo.sum() == 0: + return df - labels_with_no_tifs = labels_with_no_features.loc[~tifs_found].copy() - labels_with_tifs_but_no_features = labels_with_no_features.loc[tifs_found] + print(self.summary(df)) + + # --------------------------------------------------------------------- + # STEP 3: Match labels to earth observation files + # --------------------------------------------------------------------- + df[MATCHING_EO_FILES] = "" + df.loc[no_eo, MATCHING_EO_FILES] = match_labels_to_eo_files(df[no_eo]) + + eo_files_found = df[no_eo][MATCHING_EO_FILES].str.len() > 0 + df_with_no_eo_files = df[no_eo].loc[~eo_files_found] + df_with_eo_files = df[no_eo].loc[eo_files_found] + + # --------------------------------------------------------------------- + # STEP 4: If no matching earth observation file, download it + # --------------------------------------------------------------------- + already_getting_eo = df_with_no_eo_files[EO_STATUS] == EO_STATUS_EXPORTING + if already_getting_eo.sum() > 0: + confirm = ( + input( + f"{already_getting_eo.sum()} labels were already set to {EO_STATUS_EXPORTING} ," + + " have they failed on EarthEngine? y/[n]: " + ) + or "n" + ) + if confirm.lower() == "y": + df.loc[already_getting_eo, EO_STATUS] = EO_STATUS_EXPORT_FAILED + df_with_no_eo_files = df_with_no_eo_files.loc[~already_getting_eo] - # ------------------------------------------------- - # STEP 4: If no matching tif, download it - # ------------------------------------------------- - if len(labels_with_no_tifs) > 0: - print(f"{len(labels_with_no_tifs )} labels not matched") + if len(df_with_no_eo_files) > 0: + print(f"{len(df_with_no_eo_files)} labels not matched") if not disable_gee_export: - labels_with_no_tifs[START] = pd.to_datetime( - labels_with_no_tifs[START] + df_with_no_eo_files[START] = pd.to_datetime( + df_with_no_eo_files[START] ).dt.date - labels_with_no_tifs[END] = pd.to_datetime( - labels_with_no_tifs[END] + df_with_no_eo_files[END] = pd.to_datetime( + df_with_no_eo_files[END] ).dt.date EarthEngineExporter( check_ee=True, check_gcp=True, - dest_bucket=BucketNames.LABELED_TIFS, - ).export_for_labels(labels=labels_with_no_tifs) - - # ------------------------------------------------- - # STEP 5: Create the features (X, y) - # ------------------------------------------------- - if len(labels_with_tifs_but_no_features) > 0: - create_pickled_labeled_dataset(labels=labels_with_tifs_but_no_features) - labels[ALREADY_EXISTS] = np.vectorize(lambda p: Path(p).exists())( - labels[FEATURE_PATH] - ) - return self.summary(df=labels) + dest_bucket=BucketNames.LABELED_EO, + ).export_for_labels(labels=df_with_no_eo_files) + df.loc[df_with_no_eo_files.index, EO_STATUS] = EO_STATUS_EXPORTING + + # --------------------------------------------------------------------- + # STEP 5: Create the dataset (earth observation data, label) + # --------------------------------------------------------------------- + if len(df_with_eo_files) > 0: + tif_bucket = storage.Client().bucket(BucketNames.LABELED_EO) + + def set_df(i, start, eo_paths, lon, lat, pbar): + (eo_data, eo_lon, eo_lat, eo_file) = find_matching_point( + start=start, + eo_paths=eo_paths, + label_lon=lon, + label_lat=lat, + tif_bucket=tif_bucket, + ) + pbar.update(1) + if eo_data is None: + print( + "Earth observation file could not be loaded, " + + f"setting status to: {EO_STATUS_MISSING_VALUES}" + ) + df.at[i, EO_STATUS] = EO_STATUS_MISSING_VALUES + elif ( + (df[EO_FILE] == eo_file) + & (df[EO_LAT] == eo_lat) + & (df[EO_LON] == eo_lon) + ).any(): + print( + "Earth observation coordinate already used, " + + f"setting status to {EO_STATUS_DUPLICATE}" + ) + df.at[i, EO_STATUS] = EO_STATUS_DUPLICATE + else: + df.at[i, EO_DATA] = eo_data.tolist() + df.at[i, EO_LAT] = eo_lat + df.at[i, EO_LON] = eo_lon + df.at[i, EO_FILE] = eo_file + df.at[i, EO_STATUS] = EO_STATUS_COMPLETE + + with tqdm( + total=len(df_with_eo_files), + desc="Extracting matched earth observation data", + ) as pbar: + np.vectorize(set_df)( + i=df_with_eo_files.index, + start=df_with_eo_files[START], + eo_paths=df_with_eo_files[MATCHING_EO_FILES], + lon=df_with_eo_files[LON], + lat=df_with_eo_files[LAT], + pbar=pbar, + ) + + df.drop(columns=[MATCHING_EO_FILES], inplace=True) + df.to_csv(self.df_path, index=False) + self.eo_status = df[EO_STATUS].value_counts() + return df + + +def create_datasets(datasets: List[LabeledDataset]): + report = "DATASET REPORT (autogenerated, do not edit directly)" + for d in datasets: + df = d.create_dataset() + summary = d.summary(df) + print(summary) + report += "\n\n" + summary + + with (PROJECT_ROOT / dp.REPORT).open("w") as f: + f.write(report) diff --git a/openmapflow/notebooks/create_map.ipynb b/openmapflow/notebooks/create_map.ipynb index c1af2336..39b6c6ed 100644 --- a/openmapflow/notebooks/create_map.ipynb +++ b/openmapflow/notebooks/create_map.ipynb @@ -227,14 +227,14 @@ "\n", " if tifs_in_gcloud and ee_task_amount == 0:\n", " src = tifs_in_gcloud\n", - " dest = f\"gs://{BucketNames.INFERENCE_TIFS}/{map_key}\"\n", + " dest = f\"gs://{BucketNames.INFERENCE_EO}/{map_key}\"\n", " if confirmation(f\"Moving tifs to right spot: gsutil -m mv \\ \\n\\t{src} \\ \\n\\t{dest}\"):\n", " get_ipython().system('gsutil -m mv {src} {dest}')\n", " return get_status(map_key)\n", "\n", " if not tifs_in_gcloud and ee_task_amount == 0:\n", " if confirmation(\"No existing data can be used, getting new data using EarthEngine\"):\n", - " EarthEngineExporter(check_ee=False, check_gcp=False, dest_bucket=BucketNames.INFERENCE_TIFS).export_for_bbox( \n", + " EarthEngineExporter(check_ee=False, check_gcp=False, dest_bucket=BucketNames.INFERENCE_EO).export_for_bbox( \n", " bbox=bbox,\n", " bbox_name=map_key,\n", " start_date=start_date,\n", @@ -428,11 +428,18 @@ "provenance": [] }, "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3.9.12 ('venv': venv)", + "language": "python", "name": "python3" }, "language_info": { - "name": "python" + "name": "python", + "version": "3.9.12" + }, + "vscode": { + "interpreter": { + "hash": "bd96feeca8c75643d28e6472f2b0778c141660d21a3db17f7d03cb9dc5057e55" + } } }, "nbformat": 4, diff --git a/openmapflow/notebooks/generate_project.ipynb b/openmapflow/notebooks/generate_project.ipynb index fea176f7..b7738cdd 100644 --- a/openmapflow/notebooks/generate_project.ipynb +++ b/openmapflow/notebooks/generate_project.ipynb @@ -8,32 +8,73 @@ "source": [ "# Generate an OpenMapFlow project\n", "\n", - "If you don't already have one, obtain a Github Personal Access Token using the steps [here](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). Ensure the workflow box is checked and save this token somewhere private.\n", + "This notebook creates a Github repository and generates an OpenMapFlow project using the command line interface.\n", "\n", - "### 1. Install package" + "\n", + "\n", + "**Prerequisites:**\n", + "- [ ] [Google Cloud Project](https://console.cloud.google.com/projectcreate) - for deploying Cloud resources for creating a map ([additional info](https://cloud.google.com/resource-manager/docs/creating-managing-projects#console))\n", + "\n", + "**Colab specific prerequisite:**\n", + "\n", + "- [ ] Github Personal Access Token - Obtained using the steps [here](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token). Ensure the workflow box is checked and save this token for later.\n", + "\n", + "## 1. Login to Github" ] }, + { + "cell_type": "code", + "source": [ + "# Install Github CLI\n", + "!curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg\n", + "!sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg\n", + "!echo \"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main\" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null\n", + "!sudo apt -qq update\n", + "!sudo apt -qq install gh" + ], + "metadata": { + "id": "wiPs5aZKTaKd" + }, + "execution_count": null, + "outputs": [] + }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "GYcpAsTVIKHg" + "id": "ihBoR7gfxyw-" }, "outputs": [], "source": [ - "from getpass import getpass\n", - "token = getpass('Github Personal Access Token:')\n", - "\n", - "email = input(\"Github email: \")\n", - "username = input(\"Github username: \")\n", + "from ipywidgets import Password, Text, VBox\n", + "inputs = [\n", + " Password(description=\"Github Token:\"),\n", + " Text(description='Github Email:'),\n", + " Text(description='Github User:'),\n", + "]\n", + "VBox(inputs)" + ] + }, + { + "cell_type": "code", + "source": [ + "# Login to Git\n", + "token = inputs[0].value\n", + "email = inputs[1].value\n", + "username = inputs[2].value\n", "\n", "!git config --global user.email $username\n", "!git config --global user.name $email\n", "\n", - "# Temporary install github\n", - "!pip install openmapflow -q\n", - "!pip install pyyaml==5.4.1 -q # Colab likes this version" - ] + "# Login to Github\n", + "!gh config set prompt disabled\n", + "!gh auth login --git-protocol https" + ], + "metadata": { + "id": "OsSfyPDDWi7l" + }, + "execution_count": null, + "outputs": [] }, { "cell_type": "markdown", @@ -41,49 +82,55 @@ "id": "ws9UdlOvJuuV" }, "source": [ - "### 2. Create a Github repository" + "## 2. Create a Github repository" ] }, { "cell_type": "code", - "execution_count": null, + "source": [ + "# Create Github repository\n", + "project_name = input(\"Project name: \")\n", + "assert project_name.strip() != \"\"\n", + "!gh repo create $project_name --private" + ], "metadata": { - "id": "whqtbUB3I2js" + "id": "RWt3CeNUW35X" }, - "outputs": [], - "source": [ - "%cd /content\n", - "name = input(\"Github project name: \")\n", - "assert name.strip() != \"\"\n", - "!mkdir -p {name}\n", - "%cd {name}" - ] + "execution_count": null, + "outputs": [] }, { "cell_type": "code", - "execution_count": null, + "source": [ + "# Clone Github repository\n", + "!git clone https://{username}:{token}@github.com/{username}/{project_name}\n", + "%cd {project_name}" + ], "metadata": { - "id": "ozTqwIdw4mQw" + "id": "2aNQHxRszF_G" }, - "outputs": [], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", "source": [ - "readme_str = f\"# {name}\"" - ] + "## 3. Install OpenMapFlow" + ], + "metadata": { + "id": "1GCR5J6lRtdr" + } }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "09u36d1AJtzD" + "id": "TxF18GZYxi21" }, "outputs": [], "source": [ - "!echo \"{readme_str}\" > README.md\n", - "!git init\n", - "!git add README.md\n", - "!git commit -m \"first commit\"\n", - "!git branch -M main\n", - "!git remote add origin https://{username}:{token}@github.com/{username}/{name}.git" + "!pip install openmapflow==0.0.2 -q\n", + "!pip install pyyaml==5.4.1 -q # Colab likes this version" ] }, { @@ -92,30 +139,51 @@ "id": "NXtTo3y3xleK" }, "source": [ - "### 3. Generate OpenMapFlow project" + "## 4. Generate OpenMapFlow project" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "TxF18GZYxi21" + "id": "CNhV8ySgJILC" }, "outputs": [], "source": [ - "!openmapflow help" + "!openmapflow generate" ] }, + { + "cell_type": "markdown", + "source": [ + "## 5. Add Google Drive secret to Github" + ], + "metadata": { + "id": "f0oNaU_s2TqP" + } + }, { "cell_type": "code", - "execution_count": null, + "source": [ + "!gh secret set GDRIVE_CREDENTIALS_DATA \\\n", + " --app actions \\\n", + " --body \"$(cat /content/{project_name}/.dvc/tmp/gdrive-user-credentials.json)\" \\\n", + " --repo \"$username/$project_name\" " + ], "metadata": { - "id": "CNhV8ySgJILC" + "id": "7G4K_Q9eqw35" }, - "outputs": [], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", "source": [ - "!openmapflow generate" - ] + "## 6. Push project to Github" + ], + "metadata": { + "id": "J-k5M5Ck2bxL" + } }, { "cell_type": "code", @@ -127,8 +195,20 @@ "source": [ "!git add .\n", "!git commit -m'openmapflow setup'\n", + "!git branch -M main\n", "!git push -u origin main" ] + }, + { + "cell_type": "markdown", + "source": [ + "You can now add your own labeled data, train your own models, and create your own maps. Read more: https://github.com/nasaharvest/openmapflow#how-it-works\n", + "\n", + "![img](https://github.com/nasaharvest/openmapflow/raw/clean-generate/assets/pipeline.png)" + ], + "metadata": { + "id": "8X45W9aE3FQq" + } } ], "metadata": { @@ -138,13 +218,20 @@ "provenance": [] }, "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3.9.12 ('venv': venv)", + "language": "python", "name": "python3" }, "language_info": { - "name": "python" + "name": "python", + "version": "3.9.12" + }, + "vscode": { + "interpreter": { + "hash": "bd96feeca8c75643d28e6472f2b0778c141660d21a3db17f7d03cb9dc5057e55" + } } }, "nbformat": 4, "nbformat_minor": 0 -} +} \ No newline at end of file diff --git a/openmapflow/notebooks/new_data.ipynb b/openmapflow/notebooks/new_data.ipynb index 61e39319..ae202093 100644 --- a/openmapflow/notebooks/new_data.ipynb +++ b/openmapflow/notebooks/new_data.ipynb @@ -26,127 +26,93 @@ }, { "cell_type": "code", - "execution_count": null, + "source": [ + "from ipywidgets import HTML, Password, Text, Textarea, VBox\n", + "inputs = [\n", + " Password(description=\"Github Token:\"),\n", + " Text(description='Github Email:'),\n", + " Text(description='Github User:'),\n", + " Text(description='Github URL:'),\n", + "]\n", + "VBox(inputs)" + ], "metadata": { - "id": "pcgm4kgRBK3K" + "id": "r0uTZMehPaay" }, - "outputs": [], - "source": [ - "try:\n", - " from google.colab import files\n", - " IN_COLAB = True\n", - "except:\n", - " IN_COLAB = False\n", - " \n", - "if IN_COLAB:\n", - " from getpass import getpass\n", - " github_url = input(\"Github HTTPS URL: \")\n", - " email = input(\"Github email: \")\n", - " username = input(\"Github username: \")\n", - " token = getpass('Github Personal Access Token:')\n", - "\n", - " !git config --global user.email $username\n", - " !git config --global user.name $email\n", - " !git clone {github_url.replace(\"https://\", f\"https://{username}:{token}@\")}\n", - "\n", - " !pip install openmapflow -q\n", - "else:\n", - " !pip install google-auth -q\n", - " print(\"Running notebook outside Google Colab. Assuming in local repository.\")" - ] + "execution_count": null, + "outputs": [] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "hsKgTbYYBU9z" + "id": "pcgm4kgRBK3K" }, "outputs": [], "source": [ - "from pathlib import Path\n", - "from ipywidgets import Box\n", - "from tqdm.notebook import tqdm\n", - "from openmapflow.constants import CONFIG_FILE\n", - "from openmapflow.utils import colab_gee_gcloud_login\n", + "token = inputs[0].value\n", + "email = inputs[1].value\n", + "username = inputs[2].value\n", + "github_url = inputs[3].value\n", "\n", - "import ipywidgets as widgets\n", - "import os\n", + "!git config --global user.email $username\n", + "!git config --global user.name $email\n", + "!git clone {github_url.replace(\"https://\", f\"https://{username}:{token}@\")}\n", "\n", - "cwd = Path.cwd()\n", - "root = None\n", - "for p in [cwd, cwd.parent, cwd.parent.parent]:\n", - " if (p / CONFIG_FILE).exists():\n", - " root = p\n", - " break\n", - "if root == None:\n", - " root = input(\"Path to project_root: \")\n", - "%cd {root}\n", - "\n", - "from openmapflow.config import PROJECT_ROOT, DataPaths, GCLOUD_PROJECT_ID" + "!pip install openmapflow>=0.1.0 -q\n", + "!pip install wandb pyyaml==5.4.1 -q" ] }, { "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "zU4ssAB2BrJ_" - }, - "outputs": [], "source": [ - "box_layout = widgets.Layout(flex_flow='column')\n", - "\n", - "options = [\"Add new labels\", \"Check progress of previously uploaded labels\"]\n", - "use = widgets.RadioButtons(\n", - " options=options,\n", - " style= {'description_width': 'initial'},\n", - " value=options[0],\n", - " description='',\n", - " disabled=False\n", - ")\n", - "\n", - "branches_available = []\n", - "local_branches = os.popen('git branch').read().split(\"\\n\")\n", - "remote_branches = os.popen('git branch -r').read().split(\"\\n\")\n", - "for branch in local_branches + remote_branches:\n", - " if branch == \"\":\n", - " continue\n", - " branches_available.append(branch.replace(\"*\", \"\").strip().replace(\"origin/\", \"\"))\n", - "\n", - "new_branch = widgets.Text(description='Enter a new branch name',\n", - " style={'description_width': 'initial'})\n", - "existing_branch = widgets.Dropdown(options=branches_available, \n", - " description=\"Branch with existing labels\",\n", - " style={'description_width': 'initial'})\n", - "existing_branch.layout.visibility = \"hidden\"\n", - "\n", - "def change_visibility(event):\n", - " try:\n", - " i = event[\"new\"][\"index\"] \n", - " except:\n", - " return\n", - " show_new = i == 0\n", - " existing_branch.layout.visibility = \"hidden\" if show_new else \"visible\" \n", - " new_branch.layout.display = \"block\" if show_new else \"none\"\n", + "import google\n", + "from google.colab import files\n", + "from pathlib import Path\n", + "path_to_yaml = input(\"Path to openmapflow.yaml: \")\n", + "%cd {Path(path_to_yaml).parent}\n", "\n", - "use.observe(change_visibility)\n", - "Box(children=[use, new_branch, existing_branch], layout=box_layout)" - ] + "from openmapflow.utils import colab_gee_gcloud_login\n", + "from openmapflow.config import PROJECT_ROOT, DataPaths, GCLOUD_PROJECT_ID\n", + "from openmapflow.raw_labels import _read_in_file" + ], + "metadata": { + "id": "fxZzu09eQakG" + }, + "execution_count": null, + "outputs": [] }, { "cell_type": "code", - "execution_count": null, + "source": [ + "# Existing branches\n", + "!git branch -r" + ], "metadata": { - "id": "HaGL_QzXJOlu" + "id": "6IGqamBoRIwZ" }, - "outputs": [], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", "source": [ - "checking_progress_only = new_branch.value == \"\"\n", - "if checking_progress_only:\n", - " !git checkout {existing_branch.value}\n", - " !git pull\n", + "choice = input(\"a) Checking progress of dataset creation OR \\nb) Creating new dataset \\na/b: \")\n", + "if choice == \"a\":\n", + " branch_name = input(\"Existing branch name: \")\n", + " !git checkout {branch_name}\n", + " !git pull\n", + "elif choice == \"b\":\n", + " branch_name = input(\"New branch name: \")\n", + " !git checkout -b {branch_name}\n", "else:\n", - " !git checkout -b'{new_branch.value}'" - ] + " print(f\"Invalid choice: {choice}, must be 'a' or 'b'\")\n" + ], + "metadata": { + "id": "FRAnU4n4RYvx" + }, + "execution_count": null, + "outputs": [] }, { "cell_type": "markdown", @@ -166,108 +132,75 @@ }, "outputs": [], "source": [ - "if IN_COLAB or not checking_progress_only:\n", - " for p in tqdm([DataPaths.MODELS, DataPaths.PROCESSED_LABELS, DataPaths.COMPRESSED_FEATURES]):\n", - " !dvc pull {p} -q\n", - "\n", - " !tar -xzf {DataPaths.COMPRESSED_FEATURES} -C data" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "-JVvrrWH0SJn" - }, - "source": [ - "# 3. Upload labels" + "!dvc pull -q" ] }, { "cell_type": "code", - "execution_count": null, + "source": [ + "!openmapflow datasets" + ], "metadata": { - "id": "kaiEJDq11SxD" + "id": "9FkLLO-nW0sx" }, - "outputs": [], - "source": [ - "if checking_progress_only:\n", - " print(\"Checking progress only, skipping this cell.\")\n", - "else:\n", - " dataset_name = input(\"Dataset name (suggested format: ): \")\n", - " while True:\n", - " dataset_dir = PROJECT_ROOT / DataPaths.RAW_LABELS / dataset_name\n", - " if dataset_dir.exists() and len(list(dataset_dir.iterdir())) > 0:\n", - " dataset_name = input(\"Dataset name already exists, try a different name: \")\n", - " else:\n", - " dataset_dir.mkdir(exist_ok=True)\n", - " break\n", - "\n", - " print(\"--------------------------------------------------\")\n", - " print(f\"Dataset: {dataset_name} directory created\")\n", - " print(\"---------------------------------------------------\")\n", - " \n", - " if IN_COLAB:\n", - " uploaded = files.upload()\n", - "\n", - " for file_name in uploaded.keys():\n", - " Path(file_name).rename(dataset_dir / file_name)\n", - " else:\n", - " print(f\"Please add file(s) into {dataset_dir}\")" - ] + "execution_count": null, + "outputs": [] }, { "cell_type": "markdown", "metadata": { - "id": "qmqM6F1PGaNd" + "id": "-JVvrrWH0SJn" }, "source": [ - "# 4. Create features\n", - "" + "# 3. Upload labels" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "tRdlDnqTeTPc" + "id": "kaiEJDq11SxD" }, "outputs": [], "source": [ - "if checking_progress_only:\n", - " print(\"Checking progress only, skipping this cell.\")\n", - "else:\n", - " user_confirmation = input(\n", - " \"Open datasets.py and add a `LabeledDataset` object representing the labels just added.\\n\"+\n", - " \"Added `LabeledDataset y/[n]: \"\n", - " )\n", - " if user_confirmation.lower() != \"y\":\n", - " print(\"New features can only be created when a `LabeledDataset` object is added.\")" + "dataset_name = input(\"Dataset name (suggested format: ): \")\n", + "while True:\n", + " dataset_dir = PROJECT_ROOT / DataPaths.RAW_LABELS / dataset_name\n", + " if dataset_dir.exists() and len(list(dataset_dir.iterdir())) > 0:\n", + " dataset_name = input(\"Dataset name already exists, try a different name: \")\n", + " else:\n", + " dataset_dir.mkdir(exist_ok=True)\n", + " break\n", + "\n", + "print(\"--------------------------------------------------\")\n", + "print(f\"Dataset: {dataset_name} directory created\")\n", + "print(\"---------------------------------------------------\")\n", + "uploaded = files.upload()\n", + "for file_name in uploaded.keys():\n", + " Path(file_name).rename(dataset_dir / file_name)" ] }, { "cell_type": "code", - "execution_count": null, + "source": [ + "# Assess dataset\n", + "df = _read_in_file(dataset_dir / file_name)\n", + "df.head()" + ], "metadata": { - "id": "AWkYXba7f5uw" + "id": "hjlrlfgNZVDg" }, - "outputs": [], - "source": [ - "from openmapflow.config import GCLOUD_PROJECT_ID" - ] + "execution_count": null, + "outputs": [] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": { - "id": "Ouc6qqtm_8tM" + "id": "qmqM6F1PGaNd" }, - "outputs": [], "source": [ - "# TODO figure out public bucket permissions\n", - "if IN_COLAB:\n", - " colab_gee_gcloud_login(GCLOUD_PROJECT_ID, google)\n", - "else:\n", - " !earthengine authenticate" + "# 4. Create dataset\n", + "" ] }, { @@ -276,42 +209,48 @@ "id": "bZ_UcNJx20aL" }, "source": [ - "`openmapflow create-features` creates features from labels and earth observation data referenced in datasets.py.\n", + "`openmapflow create-datasets` create datasets from labels and earth observation data referenced in datasets.py.\n", "\n", "It first checks if the necessary earth observation data is already available in Cloud Storage, or if an active Earth Engine task is already active. So Google Cloud and Earth Engine authentication is needed." ] }, { "cell_type": "code", - "execution_count": null, + "source": [ + "user_confirmation = input(\n", + " \"Open datasets.py and add a `LabeledDataset` object representing the labels just added.\\n\"+\n", + " \"Added `LabeledDataset y/[n]: \"\n", + ")\n", + "if user_confirmation.lower() != \"y\":\n", + " print(\"New features can only be created when a `LabeledDataset` object is added.\")" + ], "metadata": { - "id": "f-5NQB9B56oe" + "id": "BhiyDGfmYC7z" }, - "outputs": [], - "source": [ - "!openmapflow create-features" - ] + "execution_count": null, + "outputs": [] }, { "cell_type": "code", - "execution_count": null, + "source": [ + "colab_gee_gcloud_login(GCLOUD_PROJECT_ID, google)" + ], "metadata": { - "id": "5oTbgscJdZKS" + "id": "JW7T_69566p1" }, - "outputs": [], - "source": [ - "!cat {DataPaths.DATASETS}" - ] + "execution_count": null, + "outputs": [] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "5-sArcuPdZKT" + "id": "f-5NQB9B56oe" }, "outputs": [], "source": [ - "!git diff {DataPaths.DATASETS}" + "# May need to be run several times\n", + "!openmapflow create-datasets" ] }, { @@ -320,7 +259,7 @@ "id": "XG94Q3lAzmyu" }, "source": [ - "# 4. Pushing the new data to the repository" + "# 5. Push new dataset to the repository" ] }, { @@ -332,8 +271,8 @@ "outputs": [], "source": [ "# Pushing to remote storage\n", - "for p in tqdm([DataPaths.RAW_LABELS, DataPaths.PROCESSED_LABELS, DataPaths.COMPRESSED_FEATURES]):\n", - " !dvc commit {p} -f -q\n", + "!dvc commit {DataPaths.RAW_LABELS} -f -q\n", + "!dvc commit {DataPaths.DATASETS} -f -q\n", "!dvc push" ] }, @@ -368,7 +307,7 @@ "provenance": [] }, "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3.9.12 ('venv': venv)", "language": "python", "name": "python3" }, @@ -382,9 +321,14 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.12" + "version": "3.9.12" + }, + "vscode": { + "interpreter": { + "hash": "bd96feeca8c75643d28e6472f2b0778c141660d21a3db17f7d03cb9dc5057e55" + } } }, "nbformat": 4, "nbformat_minor": 0 -} +} \ No newline at end of file diff --git a/openmapflow/notebooks/tutorial.ipynb b/openmapflow/notebooks/tutorial.ipynb index 8b1f95df..4fa3f3c1 100644 --- a/openmapflow/notebooks/tutorial.ipynb +++ b/openmapflow/notebooks/tutorial.ipynb @@ -105,7 +105,7 @@ "!git config --global user.name $email\n", "!git clone {github_url.replace(\"https://\", f\"https://{username}:{token}@\")}\n", "\n", - "!pip install openmapflow -q\n", + "!pip install openmapflow>=0.1.0 -q\n", "!pip install wandb pyyaml==5.4.1 -q\n", "\n", "%cd {path_to_project}" @@ -143,8 +143,7 @@ "outputs": [], "source": [ "# Pull in data already available\n", - "!dvc pull -q\n", - "!tar -xzf $(openmapflow datapath COMPRESSED_FEATURES) -C data" + "!dvc pull -q" ] }, { @@ -187,12 +186,13 @@ "cell_type": "code", "execution_count": null, "metadata": { + "collapsed": true, "id": "bXff9QLi_8DZ" }, "outputs": [], "source": [ - "# Load labels as csv\n", - "df = pd.concat([d.load_labels() for d in datasets])\n", + "# Load data as csv\n", + "df = pd.concat([d.load_df() for d in datasets])\n", "df.head()" ] }, @@ -254,17 +254,6 @@ " legend_kwds={'loc': 'lower left'});" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "Dis0wx1t1lKH" - }, - "outputs": [], - "source": [ - "gdf.columns" - ] - }, { "cell_type": "code", "execution_count": null, @@ -273,31 +262,12 @@ }, "outputs": [], "source": [ - "def get_bounds(gdf):\n", - " minx = gdf.bounds.minx.min()\n", - " miny = gdf.bounds.miny.min()\n", - " maxx = gdf.bounds.maxx.max()\n", - " maxy = gdf.bounds.maxy.max() \n", - " return minx, miny, maxx, maxy\n", "togo_country = world[world[\"name\"] == \"Togo\"]\n", "ax = togo_country.plot(figsize=(10,10), facecolor=\"lightgray\")\n", - "\n", - "minx, miny, maxx, maxy = get_bounds(togo_country)\n", - "assert -1 < minx < 0, f\"Country minx: {minx} is incorrect\"\n", - "assert 5 < miny < 6, f\"Country miny: {miny} is incorrect\"\n", - "assert 0 < maxx < 2, f\"Country maxx: {maxx} is incorrect\"\n", - "assert 11 < maxy < 12, f\"Country maxy: {maxy} is incorrect\"\n", - "\n", - "togo_points = gdf[gdf[\"country\"] == \"Togo\"]\n", - "minx, miny, maxx, maxy = get_bounds(togo_points)\n", - "assert -1 < minx, f\"Points minx: {minx} is incorrect\"\n", - "assert 5 < miny, f\"Points miny: {miny} is incorrect\"\n", - "assert maxx < 2, f\"Points maxx: {maxx} is incorrect\"\n", - "assert maxy < 12, f\"Points maxy: {maxy} is incorrect\"\n", - "\n", "ax.set_title(\"Togo Label Locations by subset\")\n", "ax.axis('off')\n", "\n", + "togo_points = gdf[gdf[\"country\"] == \"Togo\"]\n", "togo_points.plot(\n", " ax=ax, \n", " marker='o', \n", @@ -326,8 +296,7 @@ "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", - "from openmapflow.constants import FEATURE_PATH, CLASS_PROB, MONTHS\n", - "from openmapflow.features import load_feature\n", + "from openmapflow.constants import CLASS_PROB, MONTHS, EO_DATA\n", "from cropharvest.engineer import BANDS" ] }, @@ -340,20 +309,8 @@ "outputs": [], "source": [ "# Get a label with postive class\n", - "crop_label = df[(df[CLASS_PROB] == 1.0) & (df[SUBSET] == \"validation\")].iloc[0]\n", - "crop_label" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "BCODv9Vgc_Y7" - }, - "outputs": [], - "source": [ - "# pkl file contains earth observation data\n", - "crop_label[FEATURE_PATH]" + "crop_example = df[(df[CLASS_PROB] == 1.0) & (df[SUBSET] == \"validation\")].iloc[0]\n", + "crop_example" ] }, { @@ -365,9 +322,7 @@ "outputs": [], "source": [ "# Load earth observation data for label\n", - "feature_instance = load_feature(crop_label[FEATURE_PATH])\n", - "crop_earth_observation_data = feature_instance.labelled_array\n", - "crop_earth_observation_data.shape" + "crop_example[EO_DATA].shape" ] }, { @@ -390,7 +345,7 @@ "outputs": [], "source": [ "fig, ax = plt.subplots(1,1, figsize=(15,5))\n", - "ax.bar(x=BANDS, height=crop_earth_observation_data[10])\n", + "ax.bar(x=BANDS, height=crop_example[EO_DATA][10])\n", "ax.set_title(\"Earth observation bands\")\n", "plt.xticks(rotation=45);" ] @@ -414,32 +369,24 @@ }, "outputs": [], "source": [ - "def get_ndvi(feature_path):\n", - " feature_instance = load_feature(feature_path)\n", - " earth_observation_data = feature_instance.labelled_array\n", - " ndvi_for_one_year = earth_observation_data[:12, -1]\n", - " return ndvi_for_one_year\n", - "\n", "fig, ax = plt.subplots(1,1, figsize=(10,5))\n", "ax.set_title(\"NDVI\")\n", "plt.xticks(rotation=45)\n", "\n", - "crop_feature_path = crop_label[FEATURE_PATH]\n", - "crop_ndvi = get_ndvi(crop_feature_path)\n", + "crop_ndvi = crop_example[EO_DATA][:12, -1]\n", "ax.plot(MONTHS, crop_ndvi, label=\"Crop\")\n", "\n", "##########################################\n", - "non_crop_label = # YOUR CODE HERE\n", + "non_crop_example = # YOUR CODE HERE\n", "##########################################\n", - "non_crop_feature_path = non_crop_label[FEATURE_PATH]\n", - "non_crop_ndvi = get_ndvi(non_crop_feature_path)\n", + "non_crop_ndvi = non_crop_example[EO_DATA][:12, -1]\n", "ax.plot(MONTHS, non_crop_ndvi, label=\"Non-crop\")\n", "\n", "ax.legend()\n", "\n", "gmap_url = \"http://maps.google.com/maps?z=12&t=k&q=loc:\"\n", - "print(f\"Crop: {gmap_url}{crop_label[LAT]}+{crop_label[LON]}\")\n", - "print(f\"Non-crop: {gmap_url}{non_crop_label[LAT]}+{non_crop_label[LON]}\")" + "print(f\"Crop: {gmap_url}{crop_example[LAT]}+{crop_example[LON]}\")\n", + "print(f\"Non-crop: {gmap_url}{non_crop_example[LAT]}+{non_crop_example[LON]}\")" ] }, { @@ -779,11 +726,18 @@ "provenance": [] }, "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3.9.12 ('venv': venv)", + "language": "python", "name": "python3" }, "language_info": { - "name": "python" + "name": "python", + "version": "3.9.12" + }, + "vscode": { + "interpreter": { + "hash": "bd96feeca8c75643d28e6472f2b0778c141660d21a3db17f7d03cb9dc5057e55" + } } }, "nbformat": 4, diff --git a/openmapflow/pytorch_dataset.py b/openmapflow/pytorch_dataset.py index 90df3762..9005a71a 100644 --- a/openmapflow/pytorch_dataset.py +++ b/openmapflow/pytorch_dataset.py @@ -14,8 +14,7 @@ from dateutil.relativedelta import relativedelta from tqdm import tqdm -from openmapflow.constants import CLASS_PROB, END, FEATURE_PATH, LAT, LON, MONTHS, START -from openmapflow.features import load_feature +from openmapflow.constants import CLASS_PROB, END, EO_DATA, LAT, LON, MONTHS, START IS_POSITIVE_CLASS = "is_positive_class" IS_LOCAL = "is_local" @@ -145,7 +144,7 @@ def __init__( probability_threshold: float = 0.5, ) -> None: - for col in [CLASS_PROB, END, FEATURE_PATH, LAT, LON, START]: + for col in [CLASS_PROB, END, LAT, LON, START, EO_DATA]: if col not in df.columns: raise ValueError(f"{col} is not a column in the dataframe") @@ -243,7 +242,7 @@ def __getitem__(self, index: int) -> Tuple[Tensor, Tensor, Tensor]: ) label_row = self.df.iloc[index] - x = load_feature(label_row[FEATURE_PATH]).labelled_array + x = label_row[EO_DATA] x = x[self.start_month_index : self.end_month_index] # noqa E203 x = self._pad_if_necessary(x) return ( diff --git a/openmapflow/raw_labels.py b/openmapflow/raw_labels.py index 176c82c8..0a6ffb85 100644 --- a/openmapflow/raw_labels.py +++ b/openmapflow/raw_labels.py @@ -15,6 +15,13 @@ from openmapflow.constants import ( CLASS_PROB, END, + EO_DATA, + EO_FILE, + EO_LAT, + EO_LON, + EO_STATUS, + EO_STATUS_SKIPPED, + EO_STATUS_WAITING, LABEL_DUR, LABELER_NAMES, LAT, @@ -165,12 +172,24 @@ def _set_lat_lon( ) -def _set_label_metadata(df, label_duration: Optional[str], labeler_name: Optional[str]): +def _set_label_metadata( + df, label_duration: Optional[str], labeler_name: Optional[str] +) -> pd.DataFrame: df[LABEL_DUR] = df[label_duration].astype(str) if label_duration else None df[LABELER_NAMES] = df[labeler_name].astype(str) if labeler_name else None return df +def _set_eo_columns(df) -> pd.DataFrame: + df[EO_STATUS] = EO_STATUS_WAITING + df.loc[df[CLASS_PROB] == 0.5, EO_STATUS] = EO_STATUS_SKIPPED + for col in [EO_DATA, EO_LAT, EO_LON, EO_FILE]: + df[col] = None + df[EO_DATA] = df[EO_DATA].astype(object) + df[EO_FILE] = df[EO_DATA].astype(str) + return df + + @dataclass class RawLabels: """ @@ -260,6 +279,23 @@ def process(self, raw_folder: Path) -> pd.DataFrame: df = df.dropna(subset=[LON, LAT, CLASS_PROB]) df = df.round({LON: 8, LAT: 8}) df = _train_val_test_split(df, self.train_val_test) + df = _set_eo_columns(df) + return df[ - [SOURCE, CLASS_PROB, START, END, LON, LAT, SUBSET, LABELER_NAMES, LABEL_DUR] + [ + SOURCE, + CLASS_PROB, + START, + END, + LON, + LAT, + SUBSET, + LABELER_NAMES, + LABEL_DUR, + EO_DATA, + EO_LAT, + EO_LON, + EO_FILE, + EO_STATUS, + ] ] diff --git a/openmapflow/scripts/deploy.sh b/openmapflow/scripts/deploy.sh index 2bf314d6..ed1f415d 100644 --- a/openmapflow/scripts/deploy.sh +++ b/openmapflow/scripts/deploy.sh @@ -26,8 +26,8 @@ echo "MODELS: $OPENMAPFLOW_MODELS" echo "3/7 Create Google Cloud Buckets if they don't exist" -for BUCKET in $OPENMAPFLOW_GCLOUD_BUCKET_LABELED_TIFS \ - $OPENMAPFLOW_GCLOUD_BUCKET_INFERENCE_TIFS \ +for BUCKET in $OPENMAPFLOW_GCLOUD_BUCKET_LABELED_EO \ + $OPENMAPFLOW_GCLOUD_BUCKET_INFERENCE_EO \ $OPENMAPFLOW_GCLOUD_BUCKET_PREDS \ $OPENMAPFLOW_GCLOUD_BUCKET_PREDS_MERGED do @@ -86,7 +86,7 @@ export OPENMAPFLOW_URL=$(gcloud run services list --platform managed --filter $O gcloud functions deploy trigger-"$OPENMAPFLOW_PROJECT" \ --source="$OPENMAPFLOW_LIBRARY_DIR"/trigger_inference_function \ - --trigger-bucket="$OPENMAPFLOW_GCLOUD_BUCKET_INFERENCE_TIFS" \ + --trigger-bucket="$OPENMAPFLOW_GCLOUD_BUCKET_INFERENCE_EO" \ --allow-unauthenticated \ --runtime=python39 \ --entry-point=trigger \ diff --git a/openmapflow/scripts/openmapflow b/openmapflow/scripts/openmapflow index 3fcc113e..20ac1bba 100644 --- a/openmapflow/scripts/openmapflow +++ b/openmapflow/scripts/openmapflow @@ -2,7 +2,7 @@ set -e librarydir() { python3 -c "from openmapflow.constants import LIBRARY_DIR; print(LIBRARY_DIR)"; } version() { python3 -c "from openmapflow.constants import VERSION; print(VERSION)"; } -datasets() { python3 -c "from openmapflow.config import DataPaths; print(DataPaths.DATASETS)"; } +datasets() { python3 -c "from openmapflow.config import DataPaths; print(DataPaths.REPORT)"; } check_openmapflow_yaml() { if [ ! -f "openmapflow.yaml" ]; then echo "No openmapflow.yaml file found. Please create one by running: openmapflow generate" @@ -15,9 +15,9 @@ case $1 in "cp") cp -r "$(librarydir)"/"${@: -2:1}" "${@: -1:1}" ;; - "create-features") + "create-datasets") check_openmapflow_yaml - python3 -c "from datasets import datasets; from openmapflow.features import create_features; create_features(datasets)" + python3 -c "from datasets import datasets; from openmapflow.labeled_dataset import create_datasets; create_datasets(datasets)" ;; "datapath") check_openmapflow_yaml @@ -51,7 +51,7 @@ case $1 in echo " OpenMapFlow CLI" echo "---------------------------------------------------------------------------------" echo "openmapflow cp - copy a file or directory from the library" - echo "openmapflow create-features - creates features for all datasets in datasets.py" + echo "openmapflow create-datasets - creates datasets for all datasets in datasets.py" echo "openmapflow datapath - outputs a relative path to the data directory" echo "openmapflow datasets - outputs a list of all datasets" echo "openmapflow deploy - deploys Google Cloud Architecture for project" diff --git a/openmapflow/templates/datasets.py b/openmapflow/templates/datasets.py index cc969343..1cb868b5 100644 --- a/openmapflow/templates/datasets.py +++ b/openmapflow/templates/datasets.py @@ -3,8 +3,7 @@ """ from typing import List -from openmapflow.features import create_features -from openmapflow.labeled_dataset import LabeledDataset +from openmapflow.labeled_dataset import LabeledDataset, create_datasets # from openmapflow.raw_labels import RawLabels @@ -29,4 +28,4 @@ ] if __name__ == "__main__": - create_features(datasets) + create_datasets(datasets) diff --git a/openmapflow/templates/evaluate.py b/openmapflow/templates/evaluate.py index 4678caf7..bb7ada51 100644 --- a/openmapflow/templates/evaluate.py +++ b/openmapflow/templates/evaluate.py @@ -40,7 +40,7 @@ model_path = model_path_from_name(model_name=model_name) # ------------ Dataloaders ------------------------------------- -df = pd.concat([d.load_labels() for d in datasets]) +df = pd.concat([d.load_df() for d in datasets]) test_data = PyTorchDataset( df=df[df[SUBSET] == "testing"], start_month=start_month, subset="testing" ) diff --git a/openmapflow/templates/github-test.yaml b/openmapflow/templates/github-test.yaml index 46786230..3c707cf3 100644 --- a/openmapflow/templates/github-test.yaml +++ b/openmapflow/templates/github-test.yaml @@ -30,9 +30,7 @@ jobs: # https://dvc.org/doc/user-guide/setup-google-drive-remote#authorization GDRIVE_CREDENTIALS_DATA: ${{ secrets.GDRIVE_CREDENTIALS_DATA }} run: | - dvc pull $(openmapflow datapath PROCESSED_LABELS) -f - dvc pull $(openmapflow datapath COMPRESSED_FEATURES) -f - tar -xvzf $(openmapflow datapath COMPRESSED_FEATURES) -C data/ + dvc pull $(openmapflow datapath DATASETS) -f dvc pull $(openmapflow datapath MODELS) -f - name: Integration test - Project diff --git a/openmapflow/templates/integration_test_datasets.py b/openmapflow/templates/integration_test_datasets.py index 1e7299cd..f0f30733 100644 --- a/openmapflow/templates/integration_test_datasets.py +++ b/openmapflow/templates/integration_test_datasets.py @@ -1,91 +1,52 @@ import os import unittest from datetime import date -from pathlib import Path from unittest import TestCase -import numpy as np import pandas as pd from datasets import datasets from dateutil.relativedelta import relativedelta from openmapflow.constants import ( - ALREADY_EXISTS, - END, - FEATURE_FILENAME, - FEATURE_PATH, + EO_DATA, + EO_FILE, + EO_LAT, + EO_LON, LAT, LON, START, SUBSET, ) -from openmapflow.data_instance import DataInstance -from openmapflow.features import load_all_features_as_df, load_feature from openmapflow.labeled_dataset import get_label_timesteps class IntegrationTestLabeledData(TestCase): - """Tests that the features look right""" + """Tests that the datasets look right""" - @staticmethod - def load_labels(is_print=False): - print("") - datasets_dict = {} - for d in datasets: - try: - datasets_dict[d.dataset] = d.load_labels() - if is_print: - print(d.summary(datasets_dict[d.dataset], unexported_check=False)) - except FileNotFoundError: - continue - return datasets_dict - - def test_features_with_no_labels(self): - feature_name_list = [] - for _, labels in self.load_labels().items(): - feature_name_list += labels[FEATURE_FILENAME].tolist() + dfs: pd.DataFrame - features_df = load_all_features_as_df() - features_df_stems = features_df.filename.apply(lambda p: p.stem) - features_with_no_label = features_df[~features_df_stems.isin(feature_name_list)] - amount = len(features_with_no_label) - self.assertTrue(amount == 0, f"Found {amount} features with no labels") - - def test_each_pickle_file_is_data_instance(self): - each_pickle_file_is_data_instance = True - for name, labels in self.load_labels().items(): - labels = labels[labels[ALREADY_EXISTS]].copy() - all_features = labels[FEATURE_PATH].apply(load_feature) - good_features = [ - feat for feat in all_features if isinstance(feat, DataInstance) - ] - - if len(good_features) == len(all_features): - mark = "\u2714" - else: - mark = "\u2716" - each_pickle_file_is_data_instance = False - print( - f"{mark} {name} has {len(good_features)} features out of {len(all_features)}." - ) - self.assertTrue( - each_pickle_file_is_data_instance, - "Not all pickle files are data instances, check logs for details.", - ) + @classmethod + def setUpClass(cls) -> None: + dfs = [] + for d in datasets: + df = d.load_df() + df["name"] = d.dataset + dfs.append(df) + cls.dfs = pd.concat(dfs) - def test_label_feature_subset_amounts(self): + def test_dataset_subset_amounts(self): all_subsets_correct_size = True - for _, labels in self.load_labels(is_print=True).items(): - if not labels[ALREADY_EXISTS].all(): - labels[ALREADY_EXISTS] = np.vectorize(lambda p: Path(p).exists())( - labels[FEATURE_PATH] - ) - train_val_test_counts = labels[SUBSET].value_counts() - for subset, labels_in_subset in train_val_test_counts.items(): - features_in_subset = labels[labels[SUBSET] == subset][ - ALREADY_EXISTS - ].sum() - if labels_in_subset != features_in_subset: + + for d in datasets: + df = self.dfs[self.dfs["name"] == d.dataset] + label_subset_counts = df[SUBSET].value_counts() + eo_data_subset_counts = df[df[EO_DATA].notnull()][SUBSET].value_counts() + + print(d.summary(df)) + for subset in df[SUBSET].unique(): + label_subset_count = label_subset_counts.get(subset, 0) + eo_data_subset_count = eo_data_subset_counts.get(subset, 0) + if label_subset_count != eo_data_subset_count: all_subsets_correct_size = False self.assertTrue( @@ -93,150 +54,99 @@ def test_label_feature_subset_amounts(self): "Check logs for which subsets have different sizes.", ) - def test_features_for_duplicates(self): - features_df = load_all_features_as_df() - cols_to_check = ["instance_lon", "instance_lat", "source_file"] - duplicates = features_df[features_df.duplicated(subset=cols_to_check)] + def test_for_duplicates(self): + duplicates = self.dfs[self.dfs.duplicated(subset=[EO_LAT, EO_LON, EO_FILE])] num_dupes = len(duplicates) self.assertTrue(num_dupes == 0, f"Found {num_dupes} duplicates") - def test_features_for_emptiness(self): - features_df = load_all_features_as_df() - is_empty = features_df["labelled_array"].isnull() - num_empty_features = len(features_df[is_empty]) + def test_eo_data_for_emptiness(self): + num_empty_eo_data = len(self.dfs[self.dfs[EO_DATA].isnull()]) self.assertTrue( - num_empty_features == 0, - f"Found {num_empty_features} empty features, run create_all_features() to fix.", + num_empty_eo_data == 0, + f"Found {num_empty_eo_data} empty eo_data, run openmapflow create-datasets", ) - def test_all_features_have_18_bands(self): - features_df = load_all_features_as_df() - is_empty = features_df["labelled_array"].isnull() - band_amount = ( - features_df[~is_empty]["labelled_array"] - .apply(lambda f: f.shape[-1]) - .unique() - ) + def test_all_eo_data_has_18_bands(self): + is_empty = self.dfs[EO_DATA].isnull() + band_amount = self.dfs[~is_empty][EO_DATA].apply(lambda f: f.shape[-1]).unique() self.assertEqual(band_amount.tolist(), [18], "Found {band_amount} bands") - def test_all_features_start_with_january_first(self): - features_df = load_all_features_as_df() - starts_with_jan_first = features_df.filename.str.contains("_01_01") - self.assertTrue( - starts_with_jan_first.all(), "Not all features start with January 1st" - ) + def test_label_and_eo_data_ranges_match(self): + all_label_and_eo_data_ranges_match = True + for d in datasets: + df = self.dfs[self.dfs["name"] == d.dataset] + label_month_amount = get_label_timesteps(df) + eo_data_month_amount = df[EO_DATA].apply(lambda f: f.shape[0]) - def test_label_and_feature_ranges_match(self): - all_label_and_feature_ranges_match = True - for name, labels in self.load_labels().items(): - labels = labels[labels[ALREADY_EXISTS]].copy() - if len(labels) == 0: - continue - features = labels[FEATURE_PATH].apply(load_feature) - features_df = pd.DataFrame([feat.__dict__ for feat in features]) - feature_month_amount = features_df["labelled_array"].apply( - lambda f: f.shape[0] - ) - label_month_amount = get_label_timesteps(labels).reset_index(drop=True) - label_ranges = label_month_amount.value_counts().to_dict() - feature_ranges = feature_month_amount.value_counts().to_dict() - if (feature_month_amount == label_month_amount).all(): + if (eo_data_month_amount == label_month_amount).all(): mark = "\u2714" last_word = "match" else: mark = "\u2716" last_word = "mismatch" - all_label_and_feature_ranges_match = False - # Code to delete: - # labels.reset_index(drop=True)[feature_month_amount != label_month_amount] - # [FEATURE_PATH].apply(lambda p: Path(p).unlink()) + all_label_and_eo_data_ranges_match = False + + label_ranges = label_month_amount.value_counts().to_dict() + eo_data_ranges = eo_data_month_amount.value_counts().to_dict() print( - f"{mark} {name} label {label_ranges} and " - + f"feature {feature_ranges} ranges {last_word}" + f"{mark} {d.dataset} label {label_ranges} and " + + f"eo_data {eo_data_ranges} ranges {last_word}" ) self.assertTrue( - all_label_and_feature_ranges_match, + all_label_and_eo_data_ranges_match, "Check logs for which subsets have different sizes.", ) - def test_labels_have_start_before_end_date(self): - all_labels_have_consistent_dates = True - for name, labels in self.load_labels().items(): - consistent_dates = pd.to_datetime(labels[START]) < pd.to_datetime( - labels[END] - ) - if consistent_dates.all(): - mark = "\u2714" - last_word = "consistent dates" - else: - mark = "\u2716" - last_word = f"{(~consistent_dates).sum()} inconsistent dates" - all_labels_have_consistent_dates = False - print(f"{mark} {name} label has {last_word}") - self.assertTrue( - all_labels_have_consistent_dates, - "Check logs for which labels have inconsistent dates.", - ) - - def test_all_older_features_have_24_months(self): + def test_all_older_eo_data_has_24_months(self): current_cutoff_date = date.today().replace(day=1) + relativedelta(months=-3) two_years_before_cutoff = pd.Timestamp( current_cutoff_date + relativedelta(months=-24) ) - all_older_features_have_24_months = True + all_older_eo_data_has_24_months = True - for name, labels in self.load_labels().items(): - cutoff = pd.to_datetime(labels[START]) < two_years_before_cutoff - labels = labels[labels[ALREADY_EXISTS] & cutoff].copy() - if len(labels) == 0: + for d in datasets: + df = self.dfs[self.dfs["name"] == d.dataset] + cutoff = pd.to_datetime(df[START]) < two_years_before_cutoff + df = df[cutoff].copy() + if len(df) == 0: continue - features = labels[FEATURE_PATH].apply(load_feature) - features_df = pd.DataFrame([feat.__dict__ for feat in features]) - is_empty = features_df["labelled_array"].isnull() month_amount = ( - features_df[~is_empty]["labelled_array"] - .apply(lambda f: f.shape[0]) - .unique() + df[df[EO_DATA].notnull()][EO_DATA].apply(lambda f: f.shape[0]).unique() ) if month_amount.tolist() == [24]: mark = "\u2714" else: - all_older_features_have_24_months = False + all_older_eo_data_has_24_months = False mark = "\u2716" - print(f"{mark} {name} \t\t{month_amount.tolist()}") + print(f"{mark} {d.dataset} \t\t{month_amount.tolist()}") self.assertTrue( - all_older_features_have_24_months, - "Not all older features have 24 months, check logs.", + all_older_eo_data_has_24_months, + "Not all older earth observation data has 24 months, check logs.", ) - def test_features_for_closeness(self): + def test_label_eo_data_for_closeness(self): total_num_mismatched = 0 - for name, labels in self.load_labels().items(): - labels = labels[labels[ALREADY_EXISTS]].copy() + for d in datasets: + df = self.dfs[self.dfs["name"] == d.dataset] - if len(labels) == 0: - print(f"\\ {name}:\t\tNo features") + if len(df) == 0: + print(f"\\ {d.dataset}:\t\tNo data") continue - features = labels[FEATURE_PATH].apply(load_feature) - - labels["instance_lon"] = features.apply(lambda f: f.instance_lon) - labels["instance_lat"] = features.apply(lambda f: f.instance_lat) - - label_tif_mismatch = labels[ - ((labels[LON] - labels["instance_lon"]) > 0.0001) - | ((labels[LAT] - labels["instance_lat"]) > 0.0001) + label_tif_mismatch = df[ + ((df[LON] - df[EO_LON]) > 0.0001) | ((df[LAT] - df[EO_LAT]) > 0.0001) ] num_mismatched = len(label_tif_mismatch) if num_mismatched > 0: mark = "\u2716" else: mark = "\u2714" - print(f"{mark} {name}:\t\tMismatches: {num_mismatched}") + print(f"{mark} {d.dataset}:\t\tMismatches: {num_mismatched}") + total_num_mismatched += num_mismatched self.assertTrue( total_num_mismatched == 0, f"Found {total_num_mismatched} mismatched labels+tifs.", @@ -244,13 +154,8 @@ def test_features_for_closeness(self): def test_label_coordinate_duplication(self): """For now this test is just a status report""" - all_dfs = [] - for name, labels in self.load_labels().items(): - labels["name"] = name - all_dfs.append(labels) - big_df = pd.concat(all_dfs) - duplicates = big_df[big_df.duplicated(subset=[LON, LAT], keep=False)] + duplicates = self.dfs[self.dfs.duplicated(subset=[LON, LAT], keep=False)] duplicates["start_year"] = pd.to_datetime(duplicates[START]).dt.year.astype(str) df = duplicates.groupby([LON, LAT], as_index=False, sort=False).agg( { diff --git a/openmapflow/templates/integration_test_project.py b/openmapflow/templates/integration_test_project.py index 7c852159..0626d961 100644 --- a/openmapflow/templates/integration_test_project.py +++ b/openmapflow/templates/integration_test_project.py @@ -7,16 +7,22 @@ from openmapflow.constants import CONFIG_FILE, TEMPLATE_DATASETS, VERSION +def path_exists(path: Path) -> bool: + """Utility function to check if a path exists""" + if path.exists(): + print(f"\u2714 {path.name} exists") + else: + print(f"\u2716 {path.name} not found") + return path.exists() + + class TestProjectConfig(unittest.TestCase): def test_config(self): """Checks that the config file is valid for a given project.""" has_issues = False - if (PROJECT_ROOT / CONFIG_FILE).exists(): - print("\u2714 openmapflow.yaml exists") - else: + if not path_exists(PROJECT_ROOT / CONFIG_FILE): has_issues = True - print("\u2716 openmapflow.yaml not found") if CONFIG_YML["version"] == VERSION: print(f"\u2714 openmapflow.yaml version matches package version: {VERSION}") @@ -27,30 +33,25 @@ def test_config(self): + "does not match package version: {VERSION}" ) - for p in [ - dp.RAW_LABELS, - dp.PROCESSED_LABELS, - dp.COMPRESSED_FEATURES, - dp.MODELS, - ]: - if Path(f"{p}.dvc").exists(): - print(f"\u2714 data path {p}.dvc found") - else: - has_issues = True - print(f"\u2716 data path {p}.dvc not found") + if not path_exists(Path(dp.RAW_LABELS + ".dvc")): + has_issues = True - for p in [dp.METRICS, dp.DATASETS]: - if Path(p).exists(): - print(f"\u2714 data path {p} found") - else: + if not path_exists(Path(dp.DATASETS + ".dvc")): + has_issues = True + else: + is_not_empty = any(Path(dp.DATASETS).iterdir()) + if is_not_empty and not path_exists(Path(dp.REPORT)): has_issues = True - print(f"\u2716 data path {p} not found") - if (PROJECT_ROOT / TEMPLATE_DATASETS.name).exists(): - print(f"\u2714 file {TEMPLATE_DATASETS.name} found") + if not path_exists(Path(dp.MODELS)): + has_issues = True else: + is_not_empty = any(Path(dp.MODELS).iterdir()) + if is_not_empty and not path_exists(Path(dp.METRICS)): + has_issues = True + + if not path_exists(PROJECT_ROOT / TEMPLATE_DATASETS.name): has_issues = True - print(f"\u2716 file {TEMPLATE_DATASETS.name} not found") self.assertTrue( not has_issues, diff --git a/openmapflow/templates/integration_test_train_evaluate.py b/openmapflow/templates/integration_test_train_evaluate.py index 2e359183..77d39c99 100644 --- a/openmapflow/templates/integration_test_train_evaluate.py +++ b/openmapflow/templates/integration_test_train_evaluate.py @@ -12,8 +12,10 @@ class TestExampleProjectsGenerated(TestCase): def test_train_and_evaluate(self): """Runs the train and evaluate scripts for the given project.""" - for p in [TEMPLATE_TRAIN, TEMPLATE_EVALUATE]: - self.assertTrue((PROJECT_ROOT / p.name).exists()) + if not (PROJECT_ROOT / TEMPLATE_TRAIN).exists(): + raise unittest.SkipTest("train.py script not found.") + if not (PROJECT_ROOT / TEMPLATE_EVALUATE).exists(): + raise unittest.SkipTest("evaluate.py script not found.") models_before = set((PROJECT_ROOT / DataPaths.MODELS).glob("*.pt")) @@ -39,8 +41,13 @@ def test_train_and_evaluate(self): def test_evaluate_existing_models(self): """Checks that existing models can be evaluated.""" + if not (PROJECT_ROOT / TEMPLATE_EVALUATE).exists(): + raise unittest.SkipTest("evaluate.py script not found.") model_paths = list((PROJECT_ROOT / DataPaths.MODELS).glob("*.pt")) + if len(model_paths) == 0: + raise unittest.SkipTest(f"No models found in {DataPaths.MODELS}") + for model_path in model_paths: evaluate_output = subprocess.check_output( [ diff --git a/openmapflow/templates/openmapflow-default.yaml b/openmapflow/templates/openmapflow-default.yaml index ec970940..71989eac 100644 --- a/openmapflow/templates/openmapflow-default.yaml +++ b/openmapflow/templates/openmapflow-default.yaml @@ -3,19 +3,14 @@ project: description: '' data_paths: raw_labels: raw_labels - processed_labels: processed_labels - features: features - compressed_features: compressed_features.tar.gz models: models metrics: metrics.yaml - datasets: datasets.txt - missing: missing.txt - duplicates: duplicates.txt - unexported: unexported.txt + datasets: datasets + report: report.txt gcloud: project_id: '' location: us-central1 - bucket_labeled_tifs: -labeled-tifs - bucket_inference_tifs: -inference-tifs + bucket_labeled_eo: -labeled-eo + bucket_inference_eo: -inference-eo bucket_preds: -preds bucket_preds_merged: -preds-merged diff --git a/openmapflow/templates/requirements.txt b/openmapflow/templates/requirements.txt new file mode 100644 index 00000000..d8252b2c --- /dev/null +++ b/openmapflow/templates/requirements.txt @@ -0,0 +1,3 @@ +matplotlib +openmapflow +tsai \ No newline at end of file diff --git a/openmapflow/templates/train.py b/openmapflow/templates/train.py index fae2cb89..b6622954 100644 --- a/openmapflow/templates/train.py +++ b/openmapflow/templates/train.py @@ -62,7 +62,7 @@ import wandb # ------------ Dataloaders ------------------------------------- -df = pd.concat([d.load_labels() for d in datasets]) +df = pd.concat([d.load_df() for d in tqdm(datasets, desc="Loading datasets")]) train_df = df[df[SUBSET] == "training"].copy() val_df = df[df[SUBSET] == "validation"].copy() train_data = PyTorchDataset( diff --git a/openmapflow/utils.py b/openmapflow/utils.py index a45af833..e0d9bc44 100644 --- a/openmapflow/utils.py +++ b/openmapflow/utils.py @@ -1,19 +1,12 @@ -from pathlib import Path -from typing import List +import os import ee import numpy as np import pandas as pd -def try_txt_read(file_path: Path) -> List[str]: - try: - return pd.read_csv(file_path, sep="\n", header=None)[0].tolist() - except FileNotFoundError: - return [] - - def colab_gee_gcloud_login(project_id: str, google): + os.environ["GOOGLE_CLOUD_PROJECT"] = project_id print("Logging into Google Cloud") google.colab.auth.authenticate_user() print("Logging into Earth Engine") diff --git a/tests/test_CLI.py b/tests/test_CLI.py index 8cb95197..b6ea87e4 100644 --- a/tests/test_CLI.py +++ b/tests/test_CLI.py @@ -37,7 +37,6 @@ def test_ls(self): self.assertIn("config.py", output) self.assertIn("constants.py", output) self.assertIn("data_instance.py", output) - self.assertIn("features.py", output) self.assertIn("generate.py", output) self.assertIn("inference_utils.py", output) self.assertIn("inference_widgets.py", output) @@ -67,7 +66,7 @@ def test_help(self): OpenMapFlow CLI --------------------------------------------------------------------------------- openmapflow cp - copy a file or directory from the library -openmapflow create-features - creates features for all datasets in datasets.py +openmapflow create-datasets - creates datasets for all datasets in datasets.py openmapflow datapath - outputs a relative path to the data directory openmapflow datasets - outputs a list of all datasets openmapflow deploy - deploys Google Cloud Architecture for project diff --git a/tests/test_config.py b/tests/test_config.py index 6ccd7a2f..86d3f698 100644 --- a/tests/test_config.py +++ b/tests/test_config.py @@ -13,22 +13,17 @@ def test_load_default_config(self): "project": "fake-project", "description": "", "data_paths": { + "datasets": "datasets", "raw_labels": "raw_labels", - "processed_labels": "processed_labels", - "features": "features", - "compressed_features": "compressed_features.tar.gz", "models": "models", "metrics": "metrics.yaml", - "datasets": "datasets.txt", - "missing": "missing.txt", - "duplicates": "duplicates.txt", - "unexported": "unexported.txt", + "report": "report.txt", }, "gcloud": { "project_id": "", "location": "us-central1", - "bucket_labeled_tifs": "fake-project-labeled-tifs", - "bucket_inference_tifs": "fake-project-inference-tifs", + "bucket_labeled_eo": "fake-project-labeled-eo", + "bucket_inference_eo": "fake-project-inference-eo", "bucket_preds": "fake-project-preds", "bucket_preds_merged": "fake-project-preds-merged", }, @@ -39,15 +34,10 @@ def test_get_datapaths(self): actual_data_path_str = DataPaths.get() expected_data_path_str = ( "RAW_LABELS: data/raw_labels" - + "\nPROCESSED_LABELS: data/processed_labels" - + "\nFEATURES: data/features" - + "\nCOMPRESSED_FEATURES: data/compressed_features.tar.gz" + + "\nDATASETS: data/datasets" + "\nMODELS: data/models" + "\nMETRICS: data/metrics.yaml" - + "\nDATASETS: data/datasets.txt" - + "\nMISSING: data/missing.txt" - + "\nDUPLICATES: data/duplicates.txt" - + "\nUNEXPORTED: data/unexported.txt" + + "\nREPORT: data/report.txt" ) self.assertEqual(actual_data_path_str, expected_data_path_str) @@ -63,8 +53,8 @@ def test_deploy_env_variables(self): + f"OPENMAPFLOW_LIBRARY_DIR={LIBRARY_DIR} " + "OPENMAPFLOW_GCLOUD_PROJECT_ID= " + "OPENMAPFLOW_GCLOUD_LOCATION=us-central1 " - + "OPENMAPFLOW_GCLOUD_BUCKET_LABELED_TIFS=openmapflow-labeled-tifs " - + "OPENMAPFLOW_GCLOUD_BUCKET_INFERENCE_TIFS=openmapflow-inference-tifs " + + "OPENMAPFLOW_GCLOUD_BUCKET_LABELED_EO=openmapflow-labeled-eo " + + "OPENMAPFLOW_GCLOUD_BUCKET_INFERENCE_EO=openmapflow-inference-eo " + "OPENMAPFLOW_GCLOUD_BUCKET_PREDS=openmapflow-preds " + "OPENMAPFLOW_GCLOUD_BUCKET_PREDS_MERGED=openmapflow-preds-merged " + "OPENMAPFLOW_DOCKER_TAG=us-central1-docker.pkg.dev//openmapflow/openmapflow" diff --git a/tests/test_generate.py b/tests/test_generate.py index e177457a..dc2af049 100644 --- a/tests/test_generate.py +++ b/tests/test_generate.py @@ -53,13 +53,7 @@ def test_create_data_dirs(self): create_data_dirs(dp, overwrite=False) - for p in [ - dp.RAW_LABELS, - dp.PROCESSED_LABELS, - dp.MODELS, - dp.FEATURES, - dp.COMPRESSED_FEATURES, - ]: + for p in [dp.RAW_LABELS, dp.DATASETS, dp.MODELS]: self.assertTrue(Path(p).exists()) @skipIf(os.name == "nt", "Tempdir doesn't work on windows") @@ -215,9 +209,7 @@ def test_create_github_actions_test(self): "env": { "GDRIVE_CREDENTIALS_DATA": "${{ secrets.GDRIVE_CREDENTIALS_DATA }}" }, - "run": "dvc pull $(openmapflow datapath PROCESSED_LABELS) -f" - + "\ndvc pull $(openmapflow datapath COMPRESSED_FEATURES) -f" - + "\ntar -xvzf $(openmapflow datapath COMPRESSED_FEATURES) -C data/" + "run": "dvc pull $(openmapflow datapath DATASETS) -f" + "\ndvc pull $(openmapflow datapath MODELS) -f\n", }, { @@ -272,8 +264,7 @@ def input_response(prompt): system_calls = [call[0][0] for call in mock_system.call_args_list] dvc_files = [ dp.RAW_LABELS, - dp.PROCESSED_LABELS, - dp.COMPRESSED_FEATURES, + dp.DATASETS, dp.MODELS, ] self.assertIn("dvc init", system_calls) diff --git a/tests/test_labeled_dataset.py b/tests/test_labeled_dataset.py index e2385e0f..11556ef3 100644 --- a/tests/test_labeled_dataset.py +++ b/tests/test_labeled_dataset.py @@ -3,21 +3,9 @@ from unittest.mock import patch import numpy as np -import pandas as pd import xarray as xr -from openmapflow.constants import ( - CLASS_PROB, - END, - FEATURE_PATH, - LAT, - LON, - START, - TIF_PATHS, -) -from openmapflow.data_instance import DataInstance from openmapflow.labeled_dataset import ( - create_pickled_labeled_dataset, distance, distance_point_from_center, find_matching_point, @@ -37,7 +25,7 @@ def test_find_matching_point_from_one(self, mock_load_tif, mock_storage): mock_load_tif.return_value = mock_data, 0.0 labelled_np, closest_lon, closest_lat, source_file = find_matching_point( start="2020-10-10", - tif_paths=[Path("mock")], + eo_paths=[Path("mock")], label_lon=5, label_lat=5, tif_bucket=mock_storage.Client().bucket, @@ -68,7 +56,7 @@ def side_effect(path, start_date, num_timesteps): mock_load_tif.side_effect = side_effect labelled_np, closest_lon, closest_lat, source_file = find_matching_point( start="2020-10-10", - tif_paths=tif_paths, + eo_paths=tif_paths, label_lon=8, label_lat=8, tif_bucket=mock_storage.Client().bucket, @@ -79,53 +67,6 @@ def side_effect(path, start_date, num_timesteps): expected = np.ones((24, 18)) * 0.0 self.assertTrue((labelled_np == expected).all()) - @patch("openmapflow.labeled_dataset.storage") - @patch("openmapflow.labeled_dataset.Path.open") - @patch("openmapflow.labeled_dataset.find_matching_point") - @patch("openmapflow.features.pickle.dump") - def test_create_pickled_labeled_dataset( - self, mock_dump, mock_find_matching_point, mock_open, mock_storage - ): - mock_find_matching_point.return_value = ( - np.array([0.0]), - 0.1, - 0.1, - "mock_file", - ) - - mock_labels = pd.DataFrame( - { - LON: [20, 40], - LAT: [30, 50], - CLASS_PROB: [0.0, 1.0], - START: ["2020-01-01", "2020-01-01"], - END: ["2021-01-01", "2021-01-01"], - TIF_PATHS: [[Path("tif1")], [Path("tif2"), Path("tif3")]], - FEATURE_PATH: ["feature1", "feature2"], - } - ) - - create_pickled_labeled_dataset(mock_labels) - - instances = [ - DataInstance( - instance_lat=0.1, - instance_lon=0.1, - labelled_array=np.array([0.0]), - source_file="mock_file", - ), - DataInstance( - instance_lat=0.1, - instance_lon=0.1, - labelled_array=np.array([0.0]), - source_file="mock_file", - ), - ] - - self.assertEqual(mock_dump.call_count, 2) - self.assertEqual(mock_dump.call_args_list[0][0][0], instances[0]) - self.assertEqual(mock_dump.call_args_list[1][0][0], instances[1]) - def test_find_nearest(self): val, idx = find_nearest([1.0, 2.0, 3.0, 4.0, 5.0], 4.0) self.assertEqual(val, 4.0) diff --git a/tests/test_pytorch_dataset.py b/tests/test_pytorch_dataset.py index 600e9c9f..16b1bef0 100644 --- a/tests/test_pytorch_dataset.py +++ b/tests/test_pytorch_dataset.py @@ -4,8 +4,7 @@ import numpy as np import pandas as pd -from openmapflow.constants import CLASS_PROB, END, FEATURE_PATH, LAT, LON, START -from openmapflow.features import create_feature +from openmapflow.constants import CLASS_PROB, END, EO_DATA, LAT, LON, START try: import torch # noqa: F401 @@ -31,23 +30,15 @@ def setUpClass(cls) -> None: return cls.tif_values = np.zeros((24, 18)) - feature_path = tempdir + "/test.pkl" - create_feature( - feature_path=feature_path, - tif_lat=0.0, - tif_lon=0.0, - tif_values=cls.tif_values, - tif_file="", - ) cls.df = pd.DataFrame( { CLASS_PROB: [0.0, 1.0], START: ["2019-01-01", "2019-01-01"], END: ["2021-12-31", "2021-12-31"], - FEATURE_PATH: [feature_path, feature_path], LAT: [0.0, 1.0], LON: [0.0, 1.0], + EO_DATA: [cls.tif_values, cls.tif_values], } )