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.