From 562dc3cbc67e0330052d0bc533d4cd7e1c0f48fa Mon Sep 17 00:00:00 2001
From: Felix Kleinert <f.kleinert@fz-juelich.de>
Date: Thu, 18 Feb 2021 18:56:00 +0100
Subject: [PATCH] dist plots for demo

---
 mlair/data_handler/data_handler_wrf_chem.py | 37 +++++++++++++++------
 1 file changed, 26 insertions(+), 11 deletions(-)

diff --git a/mlair/data_handler/data_handler_wrf_chem.py b/mlair/data_handler/data_handler_wrf_chem.py
index a08f6c58..0d625948 100644
--- a/mlair/data_handler/data_handler_wrf_chem.py
+++ b/mlair/data_handler/data_handler_wrf_chem.py
@@ -160,21 +160,25 @@ def kdtree_fast(latvar, lonvar, lat0, lon0):
 
 if __name__ == '__main__':
 
-    def plot_map_proj(data, xlim=None, ylim=None, filename=None):
+    def plot_map_proj(data, xlim=None, ylim=None, filename=None, point=None):
+        crs_latlon = ccrs.PlateCarree()
         if ylim is None:
             ylim = [-90, 90]
         if xlim is None:
             xlim = [-180, 180]
         if filename is None:
             filename = 'test_fig.pdf'
-        plt.figure(figsize=(14, 6))
+        # plt.figure(figsize=(14, 6))
+        plt.figure()
         ax = plt.axes(projection=ccrs.PlateCarree())
         ax.set_global()
         data.squeeze().plot.pcolormesh(ax=ax, transform=ccrs.PlateCarree(), x='XLONG', y='XLAT',
                                        cmap=plt.cm.Reds, )
-        ax.coastlines()
+        ax.coastlines(resolution='50m')
         ax.set_ylim(ylim)
         ax.set_xlim(xlim)
+        plt.plot(point[1], point[0], 'bo', markersize=7, transform=crs_latlon)
+        plt.tight_layout()
         plt.savefig(filename)
         plt.close('all')
 
@@ -189,18 +193,29 @@ if __name__ == '__main__':
     wrf_dh.rechunk_data({"XTIME": 1, "y": 36, "x": 40})
     T2 = wrf_dh._data.T2
 
-    icoords = dask.compute(wrf_dh.get_nearest_coordinates(50.733, 7.10))[0]
-    # BN_T2_test = 279.95132
-    # BN_T2 = wrf_dh._data.isel(icoords).T2
-
-    lat_np = np.array([50.73333, 55.73333])
-    lon_np = np.array([7.1, 7.1])
-    lat_xr = xr.DataArray(lat_np, dims=["points"], coords={'points': [0, 1]})
-    lon_xr = xr.DataArray(lon_np, dims=["points"], coords={'points': [0, 1]})
+    lat_np = np.array([50.73333])
+    lon_np = np.array([7.1])
+    icoords = dask.compute(wrf_dh.get_nearest_coordinates(lat_np, lon_np))[0]
+    lat_xr = xr.DataArray(lat_np, dims=["points"], coords={'points': range(len(lat_np))})
+    lon_xr = xr.DataArray(lon_np, dims=["points"], coords={'points': range(len(lon_np))})
 
     dist_np = wrf_dh.get_distances(lat_np, lon_np)
     dist_xr = wrf_dh.get_distances(lat_xr, lon_xr)
+    dist_xr.attrs.update(dict(units='km'))
+    dist_xr_set = xr.Dataset({'dist': dist_xr})
+
+    for i, (data, xlim, ylim) in enumerate(((wrf_dh._data.T2, [-42, 66], [23, 80]),
+                                            (dist_xr_set.dist, [-42, 66], [23, 80]),
+                                            (wrf_dh._data.T2.where(dist_xr.sel({'points': 0}).drop('points') <= 100), [2, 15], [45, 58]),
+                                            (dist_xr_set.dist.where(dist_xr.sel({'points': 0}).drop('points') <= 100), [2, 15], [45, 58]),
+                                            )):
+        plot_map_proj(data, xlim=xlim,
+                      ylim=ylim,
+                      point=[lat_np, lon_np], filename=f'test_dist{i}.pdf')
+
 
+    plot_map_proj(wrf_dh._data.T2.where(dist_xr.sel({'points': 0}).drop('points') <= 100), xlim=[-0, 15], ylim=[40, 58],
+                  point=[lat_np, lon_np], filename='test_dist.pdf')
     wrf_dh_18 = WrfChemDataHandler(data_path='/home/felix/Data/WRF-Chem/test_data_aura/',
                                    common_file_starter='wrfout_d01_2018-08-01',
                                    window_history_size=12,
-- 
GitLab