Interpolation#

Once the data is binned spatiotemporally, cleaned, and aggregated, we can create the climatologies (reference years 2000-2024) using Barnes objective analysis. The code used in the interpolation was translated to python from a package written by Lena Bartell (2016) in Matlab (https://www.mathworks.com/matlabcentral/fileexchange/58937-barnes-interpolation-barnes-objective-analysis)
The interpolation code can be found in EXEC_INTERP.py and the functions required for the interpolation are defined in FUNC_INTERP.py

How to re-create interpolation:#

Step 1: Clone repository (if not already done)#

!git clone https://github.com/hsynan/READ-EDAB-Synan_hydrographic_climatologies
Cloning into 'READ-EDAB-Synan_hydrographic_climatologies'...
remote: Enumerating objects: 989, done.
remote: Counting objects:   1% (1/64)
remote: Counting objects:   3% (2/64)
remote: Counting objects:   4% (3/64)
remote: Counting objects:   6% (4/64)
remote: Counting objects:   7% (5/64)
remote: Counting objects:   9% (6/64)
remote: Counting objects:  10% (7/64)
remote: Counting objects:  12% (8/64)
remote: Counting objects:  14% (9/64)
remote: Counting objects:  15% (10/64)
remote: Counting objects:  17% (11/64)
remote: Counting objects:  18% (12/64)
remote: Counting objects:  20% (13/64)
remote: Counting objects:  21% (14/64)
remote: Counting objects:  23% (15/64)
remote: Counting objects:  25% (16/64)
remote: Counting objects:  26% (17/64)
remote: Counting objects:  28% (18/64)
remote: Counting objects:  29% (19/64)
remote: Counting objects:  31% (20/64)
remote: Counting objects:  32% (21/64)
remote: Counting objects:  34% (22/64)
remote: Counting objects:  35% (23/64)
remote: Counting objects:  37% (24/64)
remote: Counting objects:  39% (25/64)
remote: Counting objects:  40% (26/64)
remote: Counting objects:  42% (27/64)
remote: Counting objects:  43% (28/64)
remote: Counting objects:  45% (29/64)
remote: Counting objects:  46% (30/64)
remote: Counting objects:  48% (31/64)
remote: Counting objects:  50% (32/64)
remote: Counting objects:  51% (33/64)
remote: Counting objects:  53% (34/64)
remote: Counting objects:  54% (35/64)
remote: Counting objects:  56% (36/64)
remote: Counting objects:  57% (37/64)
remote: Counting objects:  59% (38/64)
remote: Counting objects:  60% (39/64)
remote: Counting objects:  62% (40/64)
remote: Counting objects:  64% (41/64)
remote: Counting objects:  65% (42/64)
remote: Counting objects:  67% (43/64)
remote: Counting objects:  68% (44/64)
remote: Counting objects:  70% (45/64)
remote: Counting objects:  71% (46/64)
remote: Counting objects:  73% (47/64)
remote: Counting objects:  75% (48/64)
remote: Counting objects:  76% (49/64)
remote: Counting objects:  78% (50/64)
remote: Counting objects:  79% (51/64)
remote: Counting objects:  81% (52/64)
remote: Counting objects:  82% (53/64)
remote: Counting objects:  84% (54/64)
remote: Counting objects:  85% (55/64)
remote: Counting objects:  87% (56/64)
remote: Counting objects:  89% (57/64)
remote: Counting objects:  90% (58/64)
remote: Counting objects:  92% (59/64)
remote: Counting objects:  93% (60/64)
remote: Counting objects:  95% (61/64)
remote: Counting objects:  96% (62/64)
remote: Counting objects:  98% (63/64)
remote: Counting objects: 100% (64/64)
remote: Counting objects: 100% (64/64), done.
remote: Compressing objects:   2% (1/40)
remote: Compressing objects:   5% (2/40)
remote: Compressing objects:   7% (3/40)
remote: Compressing objects:  10% (4/40)
remote: Compressing objects:  12% (5/40)
remote: Compressing objects:  15% (6/40)
remote: Compressing objects:  17% (7/40)
remote: Compressing objects:  20% (8/40)
remote: Compressing objects:  22% (9/40)
remote: Compressing objects:  25% (10/40)
remote: Compressing objects:  27% (11/40)
remote: Compressing objects:  30% (12/40)
remote: Compressing objects:  32% (13/40)
remote: Compressing objects:  35% (14/40)
remote: Compressing objects:  37% (15/40)
remote: Compressing objects:  40% (16/40)
remote: Compressing objects:  42% (17/40)
remote: Compressing objects:  45% (18/40)
remote: Compressing objects:  47% (19/40)
remote: Compressing objects:  50% (20/40)
remote: Compressing objects:  52% (21/40)
remote: Compressing objects:  55% (22/40)
remote: Compressing objects:  57% (23/40)
remote: Compressing objects:  60% (24/40)
remote: Compressing objects:  62% (25/40)
remote: Compressing objects:  65% (26/40)
remote: Compressing objects:  67% (27/40)
remote: Compressing objects:  70% (28/40)
remote: Compressing objects:  72% (29/40)
remote: Compressing objects:  75% (30/40)
remote: Compressing objects:  77% (31/40)
remote: Compressing objects:  80% (32/40)
remote: Compressing objects:  82% (33/40)
remote: Compressing objects:  85% (34/40)
remote: Compressing objects:  87% (35/40)
remote: Compressing objects:  90% (36/40)
remote: Compressing objects:  92% (37/40)
remote: Compressing objects:  95% (38/40)
remote: Compressing objects:  97% (39/40)
remote: Compressing objects: 100% (40/40)
remote: Compressing objects: 100% (40/40), done.
Receiving objects:   0% (1/989)
Receiving objects:   1% (10/989)
Receiving objects:   2% (20/989)
Receiving objects:   3% (30/989)
Receiving objects:   4% (40/989)
Receiving objects:   5% (50/989)
Receiving objects:   6% (60/989)
Receiving objects:   7% (70/989)
Receiving objects:   8% (80/989)
Receiving objects:   9% (90/989)
Receiving objects:  10% (99/989)
Receiving objects:  11% (109/989)
Receiving objects:  12% (119/989)
Receiving objects:  13% (129/989)
Receiving objects:  14% (139/989)
Receiving objects:  15% (149/989)
Receiving objects:  16% (159/989)
Receiving objects:  17% (169/989)
Receiving objects:  18% (179/989)
Receiving objects:  19% (188/989)
Receiving objects:  20% (198/989)
Receiving objects:  21% (208/989)
Receiving objects:  22% (218/989)
Receiving objects:  23% (228/989)
Receiving objects:  24% (238/989)
Receiving objects:  25% (248/989)
Receiving objects:  26% (258/989)
Receiving objects:  27% (268/989)
Receiving objects:  28% (277/989)
Receiving objects:  29% (287/989)
Receiving objects:  30% (297/989)
Receiving objects:  31% (307/989)
Receiving objects:  32% (317/989)
Receiving objects:  33% (327/989)
Receiving objects:  34% (337/989)
Receiving objects:  35% (347/989)
Receiving objects:  36% (357/989)
Receiving objects:  37% (366/989)
Receiving objects:  38% (376/989)
Receiving objects:  39% (386/989)
Receiving objects:  40% (396/989)
Receiving objects:  41% (406/989)
Receiving objects:  42% (416/989)
Receiving objects:  43% (426/989)
Receiving objects:  44% (436/989)
Receiving objects:  45% (446/989)
Receiving objects:  46% (455/989)
Receiving objects:  47% (465/989)
Receiving objects:  48% (475/989)
Receiving objects:  49% (485/989)
Receiving objects:  50% (495/989)
Receiving objects:  51% (505/989)
Receiving objects:  52% (515/989)
Receiving objects:  53% (525/989)
Receiving objects:  54% (535/989)
Receiving objects:  55% (544/989)
Receiving objects:  56% (554/989)
Receiving objects:  57% (564/989)
Receiving objects:  58% (574/989)
Receiving objects:  59% (584/989)
Receiving objects:  60% (594/989)
Receiving objects:  61% (604/989)
Receiving objects:  62% (614/989)
Receiving objects:  63% (624/989)
Receiving objects:  64% (633/989)
Receiving objects:  65% (643/989)
Receiving objects:  66% (653/989)
Receiving objects:  67% (663/989)
Receiving objects:  68% (673/989)
Receiving objects:  69% (683/989)
Receiving objects:  70% (693/989)
Receiving objects:  71% (703/989)
Receiving objects:  72% (713/989)
Receiving objects:  73% (722/989)
Receiving objects:  74% (732/989)
Receiving objects:  75% (742/989)
Receiving objects:  76% (752/989)
Receiving objects:  77% (762/989)
Receiving objects:  78% (772/989)
Receiving objects:  79% (782/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  80% (792/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  81% (802/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  82% (811/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  83% (821/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  84% (831/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  85% (841/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  86% (851/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  87% (861/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  88% (871/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  89% (881/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  90% (891/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  91% (900/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  92% (910/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  93% (920/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  94% (930/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  95% (940/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  96% (950/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  97% (960/989), 30.20 MiB | 60.36 MiB/s
Receiving objects:  98% (970/989), 30.20 MiB | 60.36 MiB/s
remote: Total 989 (delta 43), reused 28 (delta 24), pack-reused 925 (from 1)
Receiving objects:  99% (980/989), 30.20 MiB | 60.36 MiB/s
Receiving objects: 100% (989/989), 30.20 MiB | 60.36 MiB/s
Receiving objects: 100% (989/989), 63.66 MiB | 65.91 MiB/s, done.
Resolving deltas:   0% (0/377)
Resolving deltas:   1% (4/377)
Resolving deltas:   2% (8/377)
Resolving deltas:   3% (12/377)
Resolving deltas:   4% (16/377)
Resolving deltas:   5% (19/377)
Resolving deltas:   6% (23/377)
Resolving deltas:   7% (27/377)
Resolving deltas:   8% (31/377)
Resolving deltas:   9% (34/377)
Resolving deltas:  10% (38/377)
Resolving deltas:  11% (42/377)
Resolving deltas:  12% (46/377)
Resolving deltas:  13% (50/377)
Resolving deltas:  14% (53/377)
Resolving deltas:  15% (57/377)
Resolving deltas:  16% (61/377)
Resolving deltas:  17% (65/377)
Resolving deltas:  18% (68/377)
Resolving deltas:  19% (72/377)
Resolving deltas:  20% (76/377)
Resolving deltas:  21% (80/377)
Resolving deltas:  22% (83/377)
Resolving deltas:  23% (87/377)
Resolving deltas:  24% (91/377)
Resolving deltas:  25% (95/377)
Resolving deltas:  26% (99/377)
Resolving deltas:  27% (102/377)
Resolving deltas:  28% (106/377)
Resolving deltas:  29% (110/377)
Resolving deltas:  30% (114/377)
Resolving deltas:  31% (117/377)
Resolving deltas:  32% (121/377)
Resolving deltas:  33% (125/377)
Resolving deltas:  34% (129/377)
Resolving deltas:  35% (132/377)
Resolving deltas:  36% (136/377)
Resolving deltas:  37% (140/377)
Resolving deltas:  38% (144/377)
Resolving deltas:  39% (148/377)
Resolving deltas:  40% (151/377)
Resolving deltas:  41% (155/377)
Resolving deltas:  42% (159/377)
Resolving deltas:  43% (163/377)
Resolving deltas:  44% (166/377)
Resolving deltas:  45% (170/377)
Resolving deltas:  46% (174/377)
Resolving deltas:  47% (178/377)
Resolving deltas:  48% (181/377)
Resolving deltas:  49% (185/377)
Resolving deltas:  50% (189/377)
Resolving deltas:  51% (193/377)
Resolving deltas:  52% (197/377)
Resolving deltas:  53% (200/377)
Resolving deltas:  54% (204/377)
Resolving deltas:  55% (208/377)
Resolving deltas:  56% (212/377)
Resolving deltas:  57% (215/377)
Resolving deltas:  58% (219/377)
Resolving deltas:  59% (223/377)
Resolving deltas:  60% (227/377)
Resolving deltas:  61% (230/377)
Resolving deltas:  62% (234/377)
Resolving deltas:  63% (238/377)
Resolving deltas:  64% (242/377)
Resolving deltas:  65% (246/377)
Resolving deltas:  66% (249/377)
Resolving deltas:  67% (253/377)
Resolving deltas:  68% (257/377)
Resolving deltas:  69% (261/377)
Resolving deltas:  70% (264/377)
Resolving deltas:  71% (268/377)
Resolving deltas:  72% (272/377)
Resolving deltas:  73% (276/377)
Resolving deltas:  74% (279/377)
Resolving deltas:  75% (283/377)
Resolving deltas:  76% (287/377)
Resolving deltas:  77% (291/377)
Resolving deltas:  78% (295/377)
Resolving deltas:  79% (298/377)
Resolving deltas:  80% (302/377)
Resolving deltas:  81% (306/377)
Resolving deltas:  82% (310/377)
Resolving deltas:  83% (313/377)
Resolving deltas:  84% (317/377)
Resolving deltas:  85% (321/377)
Resolving deltas:  86% (325/377)
Resolving deltas:  87% (328/377)
Resolving deltas:  88% (332/377)
Resolving deltas:  89% (336/377)
Resolving deltas:  90% (340/377)
Resolving deltas:  91% (344/377)
Resolving deltas:  92% (347/377)
Resolving deltas:  93% (351/377)
Resolving deltas:  94% (355/377)
Resolving deltas:  95% (359/377)
Resolving deltas:  96% (362/377)
Resolving deltas:  97% (366/377)
Resolving deltas:  98% (370/377)
Resolving deltas:  99% (374/377)
Resolving deltas: 100% (377/377)
Resolving deltas: 100% (377/377), done.

Step 2: CD to local repository#

Step 3: Run interpolation#

You can either download the cleaned, aggreggated point datasets from zenodo or you can run it directly without downloading. In this example, the data is downloaded. The file_path must be the absolute file path, not relative. Additionally, these lines should be run via CLI, rather than in jupyter notebooks.

python EXEC_INTERP.py --depth surface --file_path C:\Users\haley.synan\Documents\synan_hydrographic_climas\AGGREGATED_POINT_SURFACE_2000_2024.csv
  Cell In[2], line 1
    python EXEC_INTERP.py --depth surface --file_path C:\Users\haley.synan\Documents\synan_hydrographic_climas\AGGREGATED_POINT_SURFACE_2000_2024.csv
           ^
SyntaxError: invalid syntax

OR

python EXEC_INTERP.py --depth bottom --file_path C:\Users\haley.synan\Documents\synan_hydrographic_climas\AGGREGATED_POINT_BOTTOM_2000_2024.csv

The output climatologies will either be downloaded to the same directory as the point data, or to the current directory.