From e4cafdba325d0c6fa2f00af9b47a6995a3ab0f03 Mon Sep 17 00:00:00 2001 From: "Kenneth D. Mankoff" Date: Sun, 6 Aug 2023 08:40:29 -0700 Subject: [PATCH] Update README w/ r2023 data --- README.org | 125 +++++++++++++++++++++----------------------- fig/api_example.png | Bin 18931 -> 21009 bytes 2 files changed, 61 insertions(+), 64 deletions(-) diff --git a/README.org b/README.org index 0ee3b10..84aff5f 100644 --- a/README.org +++ b/README.org @@ -211,7 +211,7 @@ find ./freshwater/land/ ./freshwater/ice/ -maxdepth 1 | sort *** Requirements :PROPERTIES: -:header-args:jupyter-python: :kernel freshwater :session using :eval no-export +:header-args:jupyter-python: :kernel freshwater_user :session using :eval no-export :END: See =environment.yml= file in Git repository, or @@ -325,17 +325,17 @@ python ./discharge.py --base ./freshwater --roi=-50.5,67.2 -q -d | (head -n1; gr #+END_SRC #+RESULTS: -| time | MAR_land | RACMO_land | -| 2012-06-01 | 1.249776 | 0.029927 | -| 2012-06-02 | 0.831023 | 0.001237 | -| 2012-06-03 | 0.504199 | 0.001330 | -| 2012-06-04 | 0.503719 | 0.000000 | -| 2012-06-05 | 0.503333 | -0.001197 | -| 2012-06-06 | 0.510772 | 0.304393 | -| 2012-06-07 | 0.502683 | 0.007438 | -| 2012-06-08 | 0.502530 | 0.194025 | -| 2012-06-09 | 2.195973 | 0.087407 | -| 2012-06-10 | 0.501820 | 0.024703 | +| time | MAR_land | RACMO_land | +| 2012-06-01 | 11.893755 | 0.029936 | +| 2012-06-02 | 10.126999 | 0.001237 | +| 2012-06-03 | 8.114753 | 0.001323 | +| 2012-06-04 | 3.970580 | 0.000000 | +| 2012-06-05 | 0.313908 | -0.001191 | +| 2012-06-06 | 0.478592 | 0.303289 | +| 2012-06-07 | 0.330184 | 0.007452 | +| 2012-06-08 | 2.857732 | 0.193424 | +| 2012-06-09 | 0.308489 | 0.087070 | +| 2012-06-10 | 0.308755 | 0.024483 | + If we move 10° east to somewhere over the ice we add two columns: One for each of the two RCMs over the ice domain. + If the =--upstream= flag is set, we add two columns: One for each of the RCMs over the *upstream* ice domains. Results are summed across outlets per domain. @@ -381,7 +381,7 @@ df.drop(columns=["outlet","basin"]) #+RESULTS: | index | id | lon | lat | x | y | elev | Z2012_sector | Z2012_sector_dist | M2019_ID | M2019_ID_dist | M2019_basin | M2019_region | M2020_gate | M2020_gate_dist | B2015_name | B2015_dist | domain | upstream | coast_id | coast_lon | coast_lat | coast_x | coast_y | |-------+--------+----------+---------+---------+----------+------+--------------+-------------------+----------+---------------+--------------------+--------------+------------+-----------------+-------------------+------------+--------+----------+----------+-----------+-----------+---------+---------| -| 0 | 112448 | -51.2329 | 67.1555 | -272150 | -2491850 | 42 | 62 | 38911 | 71 | 38634 | ISUNNGUATA-RUSSELL | SW | 195 | 193720 | Isunnguata Sermia | 46536 | land | False | -1 | nan | nan | -1 | -1 | +| 0 | 121108 | -51.2185 | 67.1535 | -271550 | -2492150 | 4 | 62 | 38320 | 71 | 38035 | ISUNNGUATA-RUSSELL | SW | 195 | 193828 | Isunnguata Sermia | 45930 | land | False | -1 | nan | nan | -1 | -1 | ***** Polygon covering multiple land and ice outlets @@ -403,11 +403,11 @@ df.drop(columns=["outlet","basin"]).head() #+RESULTS: | index | id | lon | lat | x | y | elev | Z2012_sector | Z2012_sector_dist | M2019_ID | M2019_ID_dist | M2019_basin | M2019_region | M2020_gate | M2020_gate_dist | B2015_name | B2015_dist | domain | upstream | coast_id | coast_lon | coast_lat | coast_x | coast_y | |-------+--------+----------+---------+---------+----------+------+--------------+-------------------+----------+---------------+--------------------+--------------+------------+-----------------+-------------------+------------+--------+----------+----------+-----------+-----------+---------+---------| -| 0 | 113526 | -50.713 | 67.0017 | -251250 | -2511450 | 17 | 62 | 22184 | 71 | 22906 | ISUNNGUATA-RUSSELL | SW | 195 | 207779 | Isunnguata Sermia | 31644 | land | False | -1 | nan | nan | -1 | -1 | -| 1 | 113705 | -50.7346 | 66.9884 | -252350 | -2512850 | 7 | 62 | 23683 | 71 | 24427 | ISUNNGUATA-RUSSELL | SW | 195 | 209355 | Isunnguata Sermia | 33360 | land | False | -1 | nan | nan | -1 | -1 | -| 2 | 113729 | -50.7771 | 66.9849 | -254250 | -2513050 | -1 | 62 | 25538 | 71 | 26272 | ISUNNGUATA-RUSSELL | SW | 195 | 209906 | Isunnguata Sermia | 35015 | land | False | -1 | nan | nan | -1 | -1 | -| 3 | 113767 | -50.8634 | 66.9752 | -258150 | -2513750 | 14 | 62 | 29457 | 71 | 30178 | ISUNNGUATA-RUSSELL | SW | 195 | 211369 | Isunnguata Sermia | 38643 | land | False | -1 | nan | nan | -1 | -1 | -| 4 | 113787 | -50.9575 | 66.9688 | -262350 | -2514050 | 11 | 62 | 33559 | 71 | 34261 | ISUNNGUATA-RUSSELL | SW | 195 | 212574 | Isunnguata Sermia | 42388 | land | False | -1 | nan | nan | -1 | -1 | +| 0 | 122055 | -50.713 | 67.0017 | -251250 | -2511450 | 20 | 62 | 22184 | 71 | 22906 | ISUNNGUATA-RUSSELL | SW | 195 | 207779 | Isunnguata Sermia | 31644 | land | False | -1 | nan | nan | -1 | -1 | +| 1 | 122222 | -50.7346 | 66.9884 | -252350 | -2512850 | 7 | 62 | 23683 | 71 | 24427 | ISUNNGUATA-RUSSELL | SW | 195 | 209355 | Isunnguata Sermia | 33360 | land | False | -1 | nan | nan | -1 | -1 | +| 2 | 122251 | -50.7748 | 66.985 | -254150 | -2513050 | -1 | 62 | 25444 | 71 | 26179 | ISUNNGUATA-RUSSELL | SW | 195 | 209887 | Isunnguata Sermia | 34934 | land | False | -1 | nan | nan | -1 | -1 | +| 3 | 122275 | -50.8707 | 66.9767 | -258450 | -2513550 | 4 | 62 | 29682 | 71 | 30397 | ISUNNGUATA-RUSSELL | SW | 195 | 211236 | Isunnguata Sermia | 38789 | land | False | -1 | nan | nan | -1 | -1 | +| 4 | 122285 | -50.8569 | 66.9764 | -257850 | -2513650 | 15 | 62 | 29141 | 71 | 29862 | ISUNNGUATA-RUSSELL | SW | 195 | 211209 | Isunnguata Sermia | 38336 | land | False | -1 | nan | nan | -1 | -1 | View the last few rows: @@ -420,11 +420,11 @@ df.drop(columns=["outlet","basin"]).tail() #+RESULTS: | index | id | lon | lat | x | y | elev | Z2012_sector | Z2012_sector_dist | M2019_ID | M2019_ID_dist | M2019_basin | M2019_region | M2020_gate | M2020_gate_dist | B2015_name | B2015_dist | domain | upstream | coast_id | coast_lon | coast_lat | coast_x | coast_y | |-------+-------+----------+---------+---------+----------+------+--------------+-------------------+----------+---------------+-----------------------------------------------+--------------+------------+-----------------+------------------+------------+--------+----------+----------+-----------+-----------+---------+----------| -| 198 | 67008 | -49.5386 | 66.4387 | -204750 | -2579350 | 759 | 62 | 0 | 40 | 52 | SAQQAP-MAJORQAQ-SOUTHTERRUSSEL_SOUTHQUARUSSEL | SW | 262 | 200066 | Quantum Gletsjer | 79350 | ice | True | 114921 | -50.6517 | 66.8677 | -250050 | -2526750 | -| 199 | 67022 | -49.5206 | 66.4375 | -203950 | -2579550 | 754 | 62 | 0 | 40 | 0 | SAQQAP-MAJORQAQ-SOUTHTERRUSSEL_SOUTHQUARUSSEL | SW | 262 | 199999 | Quantum Gletsjer | 80065 | ice | True | 114921 | -50.6517 | 66.8677 | -250050 | -2526750 | -| 200 | 67072 | -49.5382 | 66.4254 | -204850 | -2580850 | 792 | 62 | 0 | 40 | 0 | SAQQAP-MAJORQAQ-SOUTHTERRUSSEL_SOUTHQUARUSSEL | SW | 262 | 198569 | Quantum Gletsjer | 78854 | ice | True | 114921 | -50.6517 | 66.8677 | -250050 | -2526750 | -| 201 | 67096 | -49.5436 | 66.419 | -205150 | -2581550 | 825 | 62 | 0 | 40 | 184 | SAQQAP-MAJORQAQ-SOUTHTERRUSSEL_SOUTHQUARUSSEL | SW | 262 | 197830 | Quantum Gletsjer | 78386 | ice | True | 114921 | -50.6517 | 66.8677 | -250050 | -2526750 | -| 202 | 67140 | -49.5368 | 66.4068 | -204950 | -2582950 | 873 | 62 | 0 | 40 | 0 | SAQQAP-MAJORQAQ-SOUTHTERRUSSEL_SOUTHQUARUSSEL | SW | 262 | 196481 | Quantum Gletsjer | 78243 | ice | True | 114921 | -50.6517 | 66.8677 | -250050 | -2526750 | +| 201 | 67919 | -49.4996 | 66.4435 | -202950 | -2578950 | 791 | 62 | 0 | 40 | 6 | SAQQAP-MAJORQAQ-SOUTHTERRUSSEL_SOUTHQUARUSSEL | SW | 262 | 200758 | Quantum Gletsjer | 81191 | ice | True | 123466 | -50.6517 | 66.8677 | -250050 | -2526750 | +| 202 | 67935 | -49.5385 | 66.4378 | -204750 | -2579450 | 764 | 62 | 0 | 40 | 0 | SAQQAP-MAJORQAQ-SOUTHTERRUSSEL_SOUTHQUARUSSEL | SW | 262 | 199967 | Quantum Gletsjer | 79323 | ice | True | 123466 | -50.6517 | 66.8677 | -250050 | -2526750 | +| 203 | 67946 | -49.5206 | 66.4375 | -203950 | -2579550 | 767 | 62 | 0 | 40 | 0 | SAQQAP-MAJORQAQ-SOUTHTERRUSSEL_SOUTHQUARUSSEL | SW | 262 | 199999 | Quantum Gletsjer | 80065 | ice | True | 123466 | -50.6517 | 66.8677 | -250050 | -2526750 | +| 204 | 68014 | -49.5436 | 66.419 | -205150 | -2581550 | 825 | 62 | 0 | 40 | 184 | SAQQAP-MAJORQAQ-SOUTHTERRUSSEL_SOUTHQUARUSSEL | SW | 262 | 197830 | Quantum Gletsjer | 78386 | ice | True | 123466 | -50.6517 | 66.8677 | -250050 | -2526750 | +| 205 | 68056 | -49.5346 | 66.4068 | -204850 | -2582950 | 859 | 62 | 0 | 40 | 0 | SAQQAP-MAJORQAQ-SOUTHTERRUSSEL_SOUTHQUARUSSEL | SW | 262 | 196497 | Quantum Gletsjer | 78340 | ice | True | 123466 | -50.6517 | 66.8677 | -250050 | -2526750 | Finally, write data to various file formats. GeoPandas DataFrames can only have one geometry, so we must select one and drop the other before writing the file. @@ -434,7 +434,6 @@ df.set_geometry("outlet").drop(columns="basin").to_file("outlets.gpkg", driver=" df.set_geometry("basin").drop(columns="outlet").to_file("basins.gpkg", driver="GPKG") #+END_SRC - **** Discharge The code here is the same as above from the "Outlets and basins" section, but we call =discharge()= rather than =outlets()=. @@ -456,13 +455,13 @@ print(ds) #+RESULTS: : -: Dimensions: (land: 1, time: 26298) +: Dimensions: (land: 1, time: 26663) : Coordinates: -: * time (time) datetime64[ns] 1950-01-01 1950-01-02 ... 2021-12-31 -: * land (land) uint64 112448 +: * time (time) datetime64[ns] 1950-01-01 1950-01-02 ... 2022-12-31 +: * land (land) uint64 121108 : Data variables: -: MAR_land (time, land) float64 0.03053 0.03059 0.03063 ... nan nan nan -: RACMO_land (time, land) float64 nan nan nan nan ... 0.04167 0.03844 0.03304 +: MAR_land (time, land) float64 0.0007218 0.0007235 ... 0.6995 0.7007 +: RACMO_land (time, land) float64 nan nan nan nan ... 0.1555 0.1591 0.1549 Display the time series. Unlike the command line interface, here the outlets are not merged. @@ -471,18 +470,18 @@ ds.sel(time=slice('2012-06-01','2012-06-10')).to_dataframe() #+END_SRC #+RESULTS: -| | MAR_land | RACMO_land | -|--------------------------------------------+----------+-------------| -| (112448, Timestamp('2012-06-01 00:00:00')) | 1.24978 | 0.0299266 | -| (112448, Timestamp('2012-06-02 00:00:00')) | 0.831023 | 0.00123663 | -| (112448, Timestamp('2012-06-03 00:00:00')) | 0.504199 | 0.00133009 | -| (112448, Timestamp('2012-06-04 00:00:00')) | 0.503719 | 0 | -| (112448, Timestamp('2012-06-05 00:00:00')) | 0.503333 | -0.00119686 | -| (112448, Timestamp('2012-06-06 00:00:00')) | 0.510772 | 0.304393 | -| (112448, Timestamp('2012-06-07 00:00:00')) | 0.502683 | 0.00743797 | -| (112448, Timestamp('2012-06-08 00:00:00')) | 0.50253 | 0.194025 | -| (112448, Timestamp('2012-06-09 00:00:00')) | 2.19597 | 0.0874073 | -| (112448, Timestamp('2012-06-10 00:00:00')) | 0.50182 | 0.0247026 | +| | MAR_land | RACMO_land | +|------------------------------------------------------+----------+------------| +| (121108, Timestamp('2012-06-01 00:00:00', freq='D')) | 11.8938 | 0.029936 | +| (121108, Timestamp('2012-06-02 00:00:00', freq='D')) | 10.127 | 0.00123702 | +| (121108, Timestamp('2012-06-03 00:00:00', freq='D')) | 8.11475 | 0.00132286 | +| (121108, Timestamp('2012-06-04 00:00:00', freq='D')) | 3.97058 | 0 | +| (121108, Timestamp('2012-06-05 00:00:00', freq='D')) | 0.313908 | -0.0011907 | +| (121108, Timestamp('2012-06-06 00:00:00', freq='D')) | 0.478592 | 0.303289 | +| (121108, Timestamp('2012-06-07 00:00:00', freq='D')) | 0.330184 | 0.00745243 | +| (121108, Timestamp('2012-06-08 00:00:00', freq='D')) | 2.85773 | 0.193424 | +| (121108, Timestamp('2012-06-09 00:00:00', freq='D')) | 0.308489 | 0.0870701 | +| (121108, Timestamp('2012-06-10 00:00:00', freq='D')) | 0.308755 | 0.0244829 | In order to merge the outlets, select all coordinates that are *not time* and merge them. Also, apply a rolling mean: @@ -499,16 +498,16 @@ ds.sum(dim=dims)\ #+RESULTS: | time | MAR_land | RACMO_land | |---------------------+----------+------------| -| 2012-06-01 00:00:00 | 8.60773 | 1.39995 | -| 2012-06-02 00:00:00 | 8.35813 | 1.24619 | -| 2012-06-03 00:00:00 | 5.53362 | 0.460494 | -| 2012-06-04 00:00:00 | 3.02151 | 0.15819 | -| 2012-06-05 00:00:00 | 1.45469 | 0.089366 | -| 2012-06-06 00:00:00 | 0.773539 | 0.0882229 | -| 2012-06-07 00:00:00 | 0.657929 | 0.0490182 | -| 2012-06-08 00:00:00 | 0.55118 | 0.0724609 | -| 2012-06-09 00:00:00 | 0.746173 | 0.084771 | -| 2012-06-10 00:00:00 | 0.745833 | 0.08811 | +| 2012-06-01 00:00:00 | 30.644 | 1.39377 | +| 2012-06-02 00:00:00 | 31.1031 | 1.2407 | +| 2012-06-03 00:00:00 | 27.5909 | 0.458691 | +| 2012-06-04 00:00:00 | 21.0425 | 0.157925 | +| 2012-06-05 00:00:00 | 14.3486 | 0.0893565 | +| 2012-06-06 00:00:00 | 8.40202 | 0.0880673 | +| 2012-06-07 00:00:00 | 5.03268 | 0.0488637 | +| 2012-06-08 00:00:00 | 3.74182 | 0.0722192 | +| 2012-06-09 00:00:00 | 2.33918 | 0.084481 | +| 2012-06-10 00:00:00 | 1.22403 | 0.0877896 | ***** Polygon covering multiple land and ice outlets @@ -519,8 +518,6 @@ from discharge import discharge ds = discharge(base="./freshwater", roi="-51.50,66.93 -51.21,66.74 -49.44,66.91 -49.84,67.18", quiet=True, upstream=True).discharge() #+END_SRC -#+RESULTS: - What are the dimensions (i.e. how many outlets in each domain?) #+BEGIN_SRC jupyter-python :session using :exports both @@ -530,19 +527,19 @@ print(ds) #+RESULTS: #+begin_example -Dimensions: (ice: 35, ice_upstream: 84, land: 84, time: 26298) +Dimensions: (ice: 33, ice_upstream: 85, land: 88, time: 26663) Coordinates: - ,* ice_upstream (ice_upstream) uint64 65473 65477 65483 ... 67096 67140 - ,* time (time) datetime64[ns] 1950-01-01 ... 2021-12-31 - ,* land (land) uint64 113526 113705 113729 ... 115311 115336 - ,* ice (ice) uint64 65487 65492 65509 ... 65668 65671 65714 + ,* ice_upstream (ice_upstream) uint64 66407 66414 66416 ... 68014 68056 + ,* time (time) datetime64[ns] 1950-01-01 ... 2022-12-31 + ,* land (land) uint64 122055 122222 122251 ... 123897 123926 + ,* ice (ice) uint64 66425 66427 66444 ... 66595 66596 66639 Data variables: - MAR_land (time, land) float64 0.005423 1.435e-05 ... nan nan - MAR_ice (time, ice) float64 3.245e-15 1.975e-16 ... nan nan - RACMO_land (time, land) float64 nan nan nan ... 0.001391 0.02869 - RACMO_ice (time, ice) float64 nan nan nan ... 0.006565 0.003061 - MAR_ice_upstream (time, ice_upstream) float64 2.406e-16 3.296e-16 ... nan - RACMO_ice_upstream (time, ice_upstream) float64 nan nan ... 4.135e-05 + MAR_land (time, land) float64 0.0002109 1.244e-06 ... 0.005236 + MAR_ice (time, ice) float64 2.94e-16 2.026e-17 ... 2.785e-18 + RACMO_land (time, land) float64 nan nan nan ... 0.001346 0.1365 + RACMO_ice (time, ice) float64 nan nan nan ... 0.0001123 0.004071 + MAR_ice_upstream (time, ice_upstream) float64 1.261e-17 ... 1.855e-17 + RACMO_ice_upstream (time, ice_upstream) float64 nan nan ... 5.79e-05 #+end_example With these results: diff --git a/fig/api_example.png b/fig/api_example.png index fd606cc1de3103d339e8ae162cdce079c483e096..0ec86582d16b224191f971079f20b56a6eecdfc0 100644 GIT binary patch literal 21009 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 literal 18931 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 Ae*gdg