Skip to content

Commit 8d0bdca

Browse files
authored
FIX: links, colormaps (#10)
1 parent 0b86fa9 commit 8d0bdca

21 files changed

+46
-46
lines changed

notebooks/attenuation/wradlib_attenuation.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
}
5757
},
5858
"source": [
59-
"Rainfall-induced attenuation is a major source of underestimation for radar-based precipitation estimation at C-band and X-band. Unconstrained forward gate-by-gate correction is known to be inherently unstable and thus not suited for unsupervised quality control procedures. Ideally, reference measurements (e.g. from microwave links) should be used to constrain gate-by-gate procedures. However, such attenuation references are usually not available. $\\omega radlib$ provides a pragmatic approach to constrain gate-by-gate correction procedures, inspired by the work of [Kraemer et al., 2008](http://docs.wradlib.org/en/latest/zreferences.html#kraemer2008). It turned out that these procedures can effectively reduce the error introduced by attenuation, and, at the same time, minimize instability issues [(Jacobi et al., 2016)](http://docs.wradlib.org/en/latest/zreferences.html#jacobi2015)."
59+
"Rainfall-induced attenuation is a major source of underestimation for radar-based precipitation estimation at C-band and X-band. Unconstrained forward gate-by-gate correction is known to be inherently unstable and thus not suited for unsupervised quality control procedures. Ideally, reference measurements (e.g. from microwave links) should be used to constrain gate-by-gate procedures. However, such attenuation references are usually not available. $\\omega radlib$ provides a pragmatic approach to constrain gate-by-gate correction procedures, inspired by the work of [Kraemer et al., 2008](http://docs.wradlib.org/en/latest/zreferences.html#kraemer2008). It turned out that these procedures can effectively reduce the error introduced by attenuation, and, at the same time, minimize instability issues [(Jacobi et al., 2016)](http://docs.wradlib.org/en/latest/zreferences.html#jacobi2016)."
6060
]
6161
},
6262
{
@@ -131,7 +131,7 @@
131131
"outputs": [],
132132
"source": [
133133
"pl.figure(figsize=(10,8))\n",
134-
"ax, cf = wrl.vis.plot_ppi(data, cmap=\"nipy_spectral\")\n",
134+
"ax, cf = wrl.vis.plot_ppi(data, cmap=\"viridis\")\n",
135135
"pl.xlabel(\"Easting from radar (km)\")\n",
136136
"pl.ylabel(\"Northing from radar (km)\")\n",
137137
"pl.title(\"Radar Feldberg, 2008-06-02 16:55 UTC\")\n",

notebooks/basics/wradlib_get_rainfall.ipynb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@
137137
"The figure shows a 15 minute accumulation of rainfall which was produced from three consecutive radar\n",
138138
"scans at 5 minute intervals between 17:30 and 17:45 on June 8, 2008.\n",
139139
"\n",
140-
"The radar data are read using [wradlib.io.read_dx](http://docs.wradlib.org/en/latest/generated/wradlib.io.read_dx.html) function which returns an array of dBZ values and a metadata dictionary (see also [Reading-DX-Data](../fileio/wradlib_reading_dx.ipynb#Reading-DX-Data)). The conversion is carried out the same way as in the example above. The plot is produced using\n",
140+
"The radar data are read using [wradlib.io.read_dx](http://docs.wradlib.org/en/latest/generated/wradlib.io.radolan.read_dx.html) function which returns an array of dBZ values and a metadata dictionary (see also [Reading-DX-Data](../fileio/wradlib_reading_dx.ipynb#Reading-DX-Data)). The conversion is carried out the same way as in the example above. The plot is produced using\n",
141141
"the function [wradlib.vis.plot_ppi](http://docs.wradlib.org/en/latest/generated/wradlib.vis.plot_ppi.html)."
142142
]
143143
},
@@ -202,7 +202,7 @@
202202
"outputs": [],
203203
"source": [
204204
"pl.figure(figsize=(10,8))\n",
205-
"ax, cf = wrl.vis.plot_ppi(accum, cmap=\"nipy_spectral\")\n",
205+
"ax, cf = wrl.vis.plot_ppi(accum, cmap=\"viridis\")\n",
206206
"pl.xlabel(\"Easting from radar (km)\")\n",
207207
"pl.ylabel(\"Northing from radar (km)\")\n",
208208
"pl.title(\"Radar Feldberg\\n15 min. rainfall depth, 2008-06-02 17:30-17:45 UTC\")\n",

notebooks/basics/wradlib_workflow.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@
497497
"cell_type": "markdown",
498498
"metadata": {},
499499
"source": [
500-
"Second, you can provide a string which represents the projection - based on the [PROJ.4 library](https://trac.osgeo.org/proj/). You can [look up projection strings](http://www.spatialreference.org/), but for some projections, $\\omega radlib$ helps you to define a projection string. In the following example, the target projection is 'dwd-radolan':"
500+
"Second, you can provide a string which represents the projection - based on the [PROJ.4 library](http://proj4.org/). You can [look up projection strings](http://www.spatialreference.org/), but for some projections, $\\omega radlib$ helps you to define a projection string. In the following example, the target projection is 'dwd-radolan':"
501501
]
502502
},
503503
{

notebooks/beamblockage/wradlib_beamblock.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
"- the local radar setup (sitecoords, number of rays, number of bins, antenna elevation, beamwidth, and the range resolution);\n",
5050
"- a **DEM** with a adequate resolution. \n",
5151
"\n",
52-
"Here we use pre-processed data from the [GTOPO30](https://lta.cr.usgs.gov/GTOPO30) and [SRTM](http://www2.jpl.nasa.gov/srtm) missions."
52+
"Here we use pre-processed data from the [GTOPO30](https://lta.cr.usgs.gov/GTOPO30) and [SRTM](https://www2.jpl.nasa.gov/srtm/) missions."
5353
]
5454
},
5555
{

notebooks/classify/wradlib_fuzzy_echo_classify.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@
130130
}
131131
},
132132
"source": [
133-
"See [Crisologo et al. (2015)](http://link.springer.com/article/10.1007/s13143-014-0049-y) and [Vulpiani et al. (2012)](http://journals.ametsoc.org/doi/abs/10.1175/JAMC-D-10-05024.1) for details."
133+
"See [Crisologo et al. (2015)](https://link.springer.com/article/10.1007/s13143-014-0049-y) and [Vulpiani et al. (2012)](https://journals.ametsoc.org/doi/abs/10.1175/JAMC-D-10-05024.1) for details."
134134
]
135135
},
136136
{

notebooks/fileio/wradlib_radar_formats.ipynb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@
171171
}
172172
},
173173
"source": [
174-
"The quantitative composite format of the DWD (German Weather Service) was established in the course of the [RADOLAN project](https://www.dwd.de/RADOLAN). Most quantitative composite products from the DWD are distributed in this format, e.g. the R-series (RX, RY, RH, RW, ...), the S-series (SQ, SH, SF, ...), and the E-series (European quantitative composite, e.g. EZ, EH, EB). Please see the [composite format description](https://www.dwd.de/DE/leistungen/radolan/radolan_info/radolan_radvor_op_komposit_format_pdf.pdf?__blob=publicationFile&v=5) for a full reference and a full table of products (unfortunately only in German language). An extensive section covering many RADOLAN aspects is here: [RADOLAN](../radolan.ipynb)\n",
174+
"The quantitative composite format of the DWD (German Weather Service) was established in the course of the [RADOLAN project](https://www.dwd.de/DE/leistungen/radolan/radolan.html). Most quantitative composite products from the DWD are distributed in this format, e.g. the R-series (RX, RY, RH, RW, ...), the S-series (SQ, SH, SF, ...), and the E-series (European quantitative composite, e.g. EZ, EH, EB). Please see the [composite format description](https://www.dwd.de/DE/leistungen/radolan/radolan_info/radolan_radvor_op_komposit_format_pdf.pdf?__blob=publicationFile&v=5) for a full reference and a full table of products (unfortunately only in German language). An extensive section covering many RADOLAN aspects is here: [RADOLAN](../radolan.ipynb)\n",
175175
"\n",
176176
"Currently, the RADOLAN composites have a spatial resolution of 1km x 1km, with the national composits (R- and S-series) being 900 x 900 grids, and the European composits 1500 x 1400 grids. The projection is [polar-stereographic](../radolan/radolan-grid.ipynb#Polar-Stereographic-Projection). The products can be read by the following function:"
177177
]
@@ -293,7 +293,7 @@
293293
}
294294
},
295295
"source": [
296-
"[HDF5](https://www.hdfgroup.org/HDF5/) is a data model, library, and file format for storing and managing data. The [OPERA 3 program](http://www.eumetnet.eu/opera) developed a convention (or information model) on how to store and exchange radar data in hdf5 format. It is based on the work of [COST Action 717](http://www.smhi.se/hfa_coord/cost717) and is used e.g. in real-time operations in the Nordic European countries. The OPERA Data and Information Model (ODIM) is documented e.g. in this [report](https://www.eol.ucar.edu/system/files/OPERA_2008_03_WP2.1b_ODIM_H5_v2.1.pdf) and in a [UML representation](http://www.eumetnet.eu/sites/default/files/OPERA_2008_18_WP2.1b_ODIM_UML.pdf). Make use of these documents in order to understand the organization of OPERA hdf5 files!\n",
296+
"[HDF5](https://www.hdfgroup.org/HDF5/) is a data model, library, and file format for storing and managing data. The [OPERA 3 program](http://www.eumetnet.eu/opera) developed a convention (or information model) on how to store and exchange radar data in hdf5 format. It is based on the work of [COST Action 717](https://e-services.cost.eu/files/domain_files/METEO/Action_717/final_report/final_report-717.pdf) and is used e.g. in real-time operations in the Nordic European countries. The OPERA Data and Information Model (ODIM) is documented e.g. in this [report](https://www.eol.ucar.edu/system/files/OPERA_2008_03_WP2.1b_ODIM_H5_v2.1.pdf). Make use of these documents in order to understand the organization of OPERA hdf5 files!\n",
297297
"\n",
298298
"The hierarchical nature of HDF5 can be described as being similar to directories, files, and links on a hard-drive. Actual metadata are stored as so-called *attributes*, and these attributes are organized together in so-called *groups*. Binary data are stored as so-called *datasets*. As for ODIM_H5, the ``root`` (or top level) group contains three groups of metadata: these are called ``what`` (object, information model version, and date/time information), ``where`` (geographical information), and ``how`` (quality and optional/recommended metadata). For a very simple product, e.g. a CAPPI, the data is organized in a group called ``dataset1`` which contains another group called ``data1`` where the actual binary data are found in ``data``. In analogy with a file system on a hard-disk, the HDF5 file containing this simple product is organized like this:\n",
299299
"\n",
@@ -361,7 +361,7 @@
361361
}
362362
},
363363
"source": [
364-
"Please note that in order to experiment with such datasets, you can download hdf5 sample data from the [Odyssey page](http://www.eumetnet.eu/odyssey-opera-data-centre) of the [OPERA 3 homepage](http://www.eumetnet.eu/opera) or use the example data provided with the [wradlib-data](https://github.com/wradlib/wradlib-data/) repository."
364+
"Please note that in order to experiment with such datasets, you can download hdf5 sample data from the [OPERA](http://eumetnet.eu/activities/observations-programme/current-activities/opera/) or use the example data provided with the [wradlib-data](https://github.com/wradlib/wradlib-data/) repository."
365365
]
366366
},
367367
{
@@ -571,7 +571,7 @@
571571
}
572572
},
573573
"source": [
574-
"The NetCDF format also claims to be self-describing. However, as for all such formats, the developers of netCDF also admit that \"[...] the mere use of netCDF is not sufficient to make data self-describing and meaningful to both humans and machines [...]\" (see [here](http://www.unidata.ucar.edu/software/netcdf/documentation/historic/netcdf/Conventions.html). Different radar operators or data distributors will use different naming conventions and data hierarchies (i.e. \"data models\") that the reading program might need to know about.\n",
574+
"The NetCDF format also claims to be self-describing. However, as for all such formats, the developers of netCDF also admit that \"[...] the mere use of netCDF is not sufficient to make data self-describing and meaningful to both humans and machines [...]\" (see [here](https://www.unidata.ucar.edu/software/netcdf/documentation/historic/netcdf/Conventions.html). Different radar operators or data distributors will use different naming conventions and data hierarchies (i.e. \"data models\") that the reading program might need to know about.\n",
575575
"\n",
576576
"$\\omega radlib$ provides two solutions to address this challenge. The first one ignores the concept of data models and just pulls all data and metadata from a NetCDF file ([wradlib.io.read_generic_netcdf()](http://docs.wradlib.org/en/latest/generated/wradlib.io.netcdf.read_generic_netcdf.html). The second is designed for a specific data model used by the EDGE software ([wradlib.io.read_edge_netcdf()](http://docs.wradlib.org/en/latest/generated/wradlib.io.netcdf.read_edge_netcdf.html))."
577577
]
@@ -755,7 +755,7 @@
755755
"cell_type": "markdown",
756756
"metadata": {},
757757
"source": [
758-
"[IRIS](http://www.vaisala.com/en/defense/products/weatherradar/Pages/IRIS.aspx) refers to the commercial Vaisala Sigmet **I**nteractive **R**adar **I**nformation **S**ystem. The Vaisala Sigmet Digital Receivers export data in a [well documented](ftp://ftp.sigmet.com/outgoing/manuals/IRIS_Programmers_Manual.pdf) binary format.\n",
758+
"[IRIS](https://www.vaisala.com/en/products/instruments-sensors-and-other-measurement-devices/weather-radar-products/iris-focus) refers to the commercial Vaisala Sigmet **I**nteractive **R**adar **I**nformation **S**ystem. The Vaisala Sigmet Digital Receivers export data in a [well documented](ftp://ftp.sigmet.com/outgoing/manuals/IRIS_Programmers_Manual.pdf) binary format.\n",
759759
"\n",
760760
"The philosophy behind the $\\omega radlib$ interface to the IRIS data model is very straightforward: $\\omega radlib$ simply translates the complete binary file structure to *one* dictionary and returns this dictionary to the user. Thus, the potential complexity of the stored data is kept and it is left to the user how to proceed with this data. The keys of the output dictionary are strings that correspond to the Sigmet Data Structures. \n",
761761
"\n",
@@ -814,11 +814,11 @@
814814
"\n",
815815
"The Binary Universal Form for the Representation of meteorological data (BUFR) is a binary data format maintained by the World Meteorological Organization (WMO).\n",
816816
"\n",
817-
"The BUFR format was adopted by [OPERA](https://www.eumetnet.eu/opera) for the representation of weather radar data.\n",
817+
"The BUFR format was adopted by [OPERA](http://eumetnet.eu/activities/observations-programme/current-activities/opera/) for the representation of weather radar data.\n",
818818
"A BUFR file consists of a set of *descriptors* which contain all the relevant metadata and a data section. \n",
819819
"The *descriptors* are identified as a tuple of three integers. The meaning of these tupels is described in the so-called BUFR tables. There are generic BUFR tables provided by the WMO, but it is also possible to define so called *local tables* - which was done by the OPERA consortium for the purpose of radar data representation.\n",
820820
" \n",
821-
"If you want to use BUFR files together with $\\omega radlib$, we recommend that you check out the [OPERA software webpage](http://www.eumetnet.eu/opera-software) where you will find software for BUFR decoding. In particular, you might want to check out [this tool](http://www.eumetnet.eu/sites/default/files/bufr-opera-mf-1.21.tar_.gz) which seems to support the conversion of OPERA BUFR files to ODIM_H5 (which is supported by $\\omega radlib$). However, you have to build it yourself.\n",
821+
"If you want to use BUFR files together with $\\omega radlib$, we recommend that you check out the [OPERA webpage](http://eumetnet.eu/activities/observations-programme/current-activities/opera/) where you will find software for BUFR decoding. In particular, you might want to check out [this tool](http://eumetnet.eu/wp-content/uploads/2017/04/bufr_opera_mf.zip) which seems to support the conversion of OPERA BUFR files to ODIM_H5 (which is supported by $\\omega radlib$). However, you have to build it yourself.\n",
822822
"\n",
823823
"It would be great if someone could add a tutorial on how to use OPERA BUFR software together with $\\omega radlib$!"
824824
]

notebooks/fileio/wradlib_reading_dx.ipynb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@
200200
"source": [
201201
"pl.figure(figsize=(10,8))\n",
202202
"# Plot PPI,\n",
203-
"ax, pm = wrl.vis.plot_ppi(two_scans[0], cmap=\"nipy_spectral\")\n",
203+
"ax, pm = wrl.vis.plot_ppi(two_scans[0], cmap=\"viridis\")\n",
204204
"# add crosshair,\n",
205205
"ax = wrl.vis.plot_ppi_crosshair((0,0), ranges=[40,80,128])\n",
206206
"# add colorbar,\n",
@@ -232,7 +232,7 @@
232232
"# Add first subplot (stratiform)\n",
233233
"ax = pl.subplot(121, aspect=\"equal\")\n",
234234
"# Plot PPI,\n",
235-
"ax, pm = wrl.vis.plot_ppi(one_scan, cmap=\"nipy_spectral\", vmin=20, vmax=60)\n",
235+
"ax, pm = wrl.vis.plot_ppi(one_scan, cmap=\"viridis\", vmin=20, vmax=60)\n",
236236
"# add crosshair,\n",
237237
"ax = wrl.vis.plot_ppi_crosshair((0,0), ranges=[40,80,128])\n",
238238
"# add colorbar,\n",
@@ -246,7 +246,7 @@
246246
"# Add second subplot (convective)\n",
247247
"ax = pl.subplot(122, aspect=\"equal\")\n",
248248
"# Plot PPI,\n",
249-
"ax, pm = wrl.vis.plot_ppi(two_scans[0], cmap=\"nipy_spectral\", vmin=20, vmax=60)\n",
249+
"ax, pm = wrl.vis.plot_ppi(two_scans[0], cmap=\"viridis\", vmin=20, vmax=60)\n",
250250
"# add crosshair,\n",
251251
"ax = wrl.vis.plot_ppi_crosshair((0,0), ranges=[40,80,128])\n",
252252
"# add colorbar,\n",

notebooks/match3d/wradlib_match_workflow.ipynb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1107,13 +1107,13 @@
11071107
"source": [
11081108
"fig = pl.figure(figsize=(12,8))\n",
11091109
"ax = fig.add_subplot(121, aspect=\"equal\")\n",
1110-
"pl.scatter(xyz[..., 0], xyz[...,1], c=refsr1a, cmap=pl.cm.jet, vmin=10, vmax=50, edgecolor=\"None\")\n",
1110+
"pl.scatter(xyz[..., 0], xyz[...,1], c=refsr1a, cmap=pl.cm.viridis, vmin=10, vmax=50, edgecolor=\"None\")\n",
11111111
"pl.title(\"SR reflectivity\")\n",
11121112
"pl.xlim(-100000, 150000)\n",
11131113
"pl.ylim(-150000, 150000)\n",
11141114
"pl.grid()\n",
11151115
"ax = fig.add_subplot(122, aspect=\"equal\")\n",
1116-
"pl.scatter(xyz[..., 0], xyz[...,1], c=refgr1a, cmap=pl.cm.jet, vmin=10, vmax=50, edgecolor=\"None\")\n",
1116+
"pl.scatter(xyz[..., 0], xyz[...,1], c=refgr1a, cmap=pl.cm.viridis, vmin=10, vmax=50, edgecolor=\"None\")\n",
11171117
"pl.title(\"GR reflectivity\")\n",
11181118
"pl.xlim(-100000, 150000)\n",
11191119
"pl.ylim(-150000, 150000)\n",
@@ -1338,13 +1338,13 @@
13381338
"source": [
13391339
"fig = pl.figure(figsize=(12,8))\n",
13401340
"ax = fig.add_subplot(121, aspect=\"equal\")\n",
1341-
"pl.scatter(x, y, c=refsr1, cmap=pl.cm.jet, vmin=10, vmax=50, edgecolor=\"None\")\n",
1341+
"pl.scatter(x, y, c=refsr1, cmap=pl.cm.viridis, vmin=10, vmax=50, edgecolor=\"None\")\n",
13421342
"pl.title(\"SR reflectivity\")\n",
13431343
"pl.xlim(-100000, 150000)\n",
13441344
"pl.ylim(-150000, 150000)\n",
13451345
"pl.grid()\n",
13461346
"ax = fig.add_subplot(122, aspect=\"equal\")\n",
1347-
"pl.scatter(x, y, c=refgr1, cmap=pl.cm.jet, vmin=10, vmax=50, edgecolor=\"None\")\n",
1347+
"pl.scatter(x, y, c=refgr1, cmap=pl.cm.viridis, vmin=10, vmax=50, edgecolor=\"None\")\n",
13481348
"pl.title(\"GR reflectivity\")\n",
13491349
"pl.xlim(-100000, 150000)\n",
13501350
"pl.ylim(-150000, 150000)\n",

notebooks/python/mplintro.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@
109109
"source": [
110110
"If you want to enable `inline plotting` \n",
111111
"\n",
112-
"(**mandatory if you use the** [Virtual Machine for Cross-Platform Weather Radar Science](http://openradar.github.io))\n",
112+
"(**mandatory if you use the** [Virtual Machine for Cross-Platform Weather Radar Science](http://openradarscience.org/vm-docs/))\n",
113113
"\n",
114114
"```python\n",
115115
"# This magic just sets up matplotlib's interactive mode \n",

0 commit comments

Comments
 (0)