From 342a94db36bfde8f0369327e6a5e2db8673db094 Mon Sep 17 00:00:00 2001 From: Paul Wessel Date: Wed, 8 Jul 2020 12:17:28 -1000 Subject: [PATCH 01/14] Add new keyword for refresh frequency --- doc/rst/source/datasets.rst | 1 + doc/rst/source/datasets/remote-data.rst | 118 ++++++++++++++++++++++++ doc/rst/source/gmt.conf.rst | 5 + src/gmt_defaults.h | 1 + src/gmt_init.c | 29 ++++++ src/gmt_keywords.txt | 1 + src/gmt_remote.c | 5 +- 7 files changed, 158 insertions(+), 2 deletions(-) create mode 100644 doc/rst/source/datasets/remote-data.rst diff --git a/doc/rst/source/datasets.rst b/doc/rst/source/datasets.rst index 8399f92d1c8..e239160302b 100644 --- a/doc/rst/source/datasets.rst +++ b/doc/rst/source/datasets.rst @@ -3,6 +3,7 @@ Datasets .. toctree:: + datasets/remote-files datasets/gshhg datasets/dcw datasets/earth-relief diff --git a/doc/rst/source/datasets/remote-data.rst b/doc/rst/source/datasets/remote-data.rst new file mode 100644 index 00000000000..9b1fea3db32 --- /dev/null +++ b/doc/rst/source/datasets/remote-data.rst @@ -0,0 +1,118 @@ +Remote Data Sets +================ + +A *remote data set* is a data set that is stored on one or more remote servers. It may +be a single grid file or a collection of subset tiles making up a larger grid. They +are not distributed with GMT or installed during the installation procedures. +GMT offers several remote global data grids that you can access via our *remote file* mechanism. +The first time you access one of these files, GMT will download the file (or a subset tile) from +the selected GMT server and save it to the *server* directory under your GMT user directory [~/.gmt]. +From then on we read the local file from there. + +By using the remote file mechanism you should know that these files, on the server, will change +from time to time (i.e., new versions are released, a problem in one file is fixed, or a dataset +becomes obsolete), and GMT will take actions accordingly. It is our policy to only supply the *latest* +version of any dataset that undergoes revisions. If you require previous versions for your work you +will need to get those data from the data provider separately. Unless you deactivate our remote data service, +GMT will do the following when you request a remote file in a GMT command: + +#. We check if the locally cached catalog with information about the data available from the server + is up-to-date or needs to be refreshed. If the file is older that the :term:`GMT_DATA_SERVER_UPDATE` + limit then we refresh the catalog. +#. When the catalog is refreshed, we determine if any of the data sets have been updated on the server, + and if any local copies you may have are now obsolete will will remove them to force a re-download from the server. + +Usage +----- + +We have processed and reformatted publicly available global data sets (grids and images) +and standardized their file names. In GMT, you may access such data +(or a subset only by using the **-R** option) by specifying the special name + + @remote_name_\ *rr*\ *u*\ [_\ *reg*\ ] + +where *rr* is a 2-digit integer specifying the grid/image resolution in the unit *u*, where +*u* is either **d**, **m** or **s** for arc degree, arc minute or arc second, respectively. +Optionally, you can append _\ **g** or _\ **p** to specifically get the gridline-registered or +pixel-registered version (if they both exist). If *reg* is not specified we will return +the pixel-registered version unless only the gridline-registered file is available. If you +do specify a specific registration and that version is not available you will bet an error message. +The codes for *rr*\ *u* and the optional *reg* that are supported will be listed in the sections +below describing the available data sets:. + +Many of the remote datasets have a preferred, default color table that will be used unless you +override that default by giving your desired CPT information. + +Data Space Concerns +------------------- + +There are several ways you can control the remote data process and the amount of space taken up by your +own server directory: + +#. You can select the GMT data server closest to you to minimize download time [:term:`GMT_DATA_SERVER`]. +#. You can set an upper limit on the file sizes that may be downloaded, or select 0 to turn off this + feature altogether [:term:`GMT_DATA_SERVER_LIMIT`]. +#. You can control how often GMT will refresh the catalog of information on your computer + [:term:`GMT_DATA_SERVER_UPDATE`] +#. You can clear the *server* directory, or perhaps just some subsets, any time via gmt :doc:`clear`. + +Offline Usage +------------- + +If you anticipate to be without an Internet connection (or have a very slow one), you can download +all (or some) of the remote files prior to losing connection, using the module :doc:`/gmtget`. You +can choose which data to download and limit it to grid spacings larger or equal to a limit, and you +can minimize space on your computer by requesting the JPEG2000 tiles *not* be converted until GMT +is accessing them. Here are some examples of usage. Download the entire cache directory used +in examples and tests:: + + gmt get -Dcache + +Get all the data for Earth but only for 1 arc minute and coarser, and leave tiles in JPEG2000 format:: + + gmt get -Ddata=earth -I1m -N + +As shown in the tables below, the largest datasets may take some time to download the data from GMT +server, so be patient! + +.. include:: ../data-updating.rst_ + +Technical Information +--------------------- + +Typically, the dataset is released by the dataset provider in a single, high-resolution format. +To optimize use of these data in GMT and to prevent download bottlenecks we have downsampled +the via Cartesian Gaussian filtering to prevent aliasing while preserving the latitude-dependent +resolution in the original grid or image. The full (6 sigma) filter-widths are indicated in +parenthesis for each resolution. To improve responsiveness, the larger files (i.e., currently +for node spacings 05m and smaller) have been split into smaller tiles. When the 06m or lower resolution +grids are accessed the first time we download the entire file, regardless of your selected region (**-R**). +However, for the tiled data sets we only download the tiles that are intersect selected region +the first time they are referenced. + +Single grids are provided as netCDF-4 maximum-lossless compressed short int grids, making the files +much smaller than their original source files without any loss of precision. To minimize download +speed, the dataset tiles are all stored as JPEG2000 images on the GMT server due to superior compression, +but once downloaded to your server directory they are converted to the same short int compressed netCDF4 +format for easier access. This step uses our GDAL bridge and thus requires that you have built GMT with +GDAL support *and* that your GDAL distribution was built with *openjpeg* support. + + +.. _jp2_compression: + +.. figure:: /_images/srtm1.* + :width: 500 px + :align: center + + Histogram of compression rates for the SRTM 1x1 arc second tiles. 100% reflects the full short integer + size of an uncompressed tile (~25 Mb). As can be seen, on average a JPEG2000 tile is only half the + size of the corresponding fully compressed (level 9) netCDF short int grid. This is why we + have chosen the JP2 format for tiles on the server. + +Cache File Updates +------------------ + +Remote cache files are our collection of miscellaneous files that are used throughout the GMT examples, +man pages, and test suite. There is no system nor catalog and files come and go as we need them. The cache +files are subject to similar rules as the remote data set when it comes to refreshing or deleting them. +If any of these files is precious to you we suggest you make a copy somewhere. diff --git a/doc/rst/source/gmt.conf.rst b/doc/rst/source/gmt.conf.rst index 1916291c1f7..6f9b60e3053 100644 --- a/doc/rst/source/gmt.conf.rst +++ b/doc/rst/source/gmt.conf.rst @@ -320,6 +320,11 @@ GMT Miscellaneous Parameters the maximum file size in bytes, or append k, m, or g for kilo-, mega-, or giga-bytes. + **GMT_DATA_SERVER_UPDATE** + Specifies how often we update the local catalog of data available on + the remote server and pruning expired data sets [1d]. Allowable time + units are **d** (days), **w** (week), **m** (month, here ~30 days). + **GMT_EXPORT_TYPE** This setting is only used by external interfaces and controls the data type used for table entries. Choose from double, diff --git a/src/gmt_defaults.h b/src/gmt_defaults.h index b6fa479dee2..9035e52436c 100644 --- a/src/gmt_defaults.h +++ b/src/gmt_defaults.h @@ -90,6 +90,7 @@ struct GMT_DEFAULTS { char format_time_stamp[GMT_LEN256]; /* Specify the format for writing time stamps (see strftime) */ /* GMT group */ size_t url_size_limit; + unsigned int refresh_time; /* Only refresh server catalog when the local copy is this old in days) */ unsigned int compatibility; /* Choose between 4 (GMT4) and up to latest version (5 for now) */ unsigned int auto_download; /* 0 (GMT_NO_DOWNLOAD) or 1 (GMT_YES_DOWNLOAD): For auto-downlaod of known files */ unsigned int interpolant; /* Choose between 0 (Linear), 1 (Akima), or 2 (Cubic spline) */ diff --git a/src/gmt_init.c b/src/gmt_init.c index eae6ebac907..024effde10c 100644 --- a/src/gmt_init.c +++ b/src/gmt_init.c @@ -175,6 +175,7 @@ static struct GMT5_params GMT5_keywords[]= { { 0, "GMT_AUTO_DOWNLOAD"}, { 0, "GMT_DATA_SERVER"}, { 0, "GMT_DATA_SERVER_LIMIT"}, + { 0, "GMT_DATA_SERVER_UPDATE"}, { 0, "GMT_COMPATIBILITY"}, { 0, "GMT_CUSTOM_LIBS"}, { 0, "GMT_EXPORT_TYPE"}, @@ -5994,6 +5995,8 @@ void gmt_conf (struct GMT_CTRL *GMT) { GMT->current.setting.auto_download = GMT_YES_DOWNLOAD; /* GMTCASE_GMT_DATA_SERVER_LIMIT */ GMT->current.setting.url_size_limit = 0; + /* GMTCASE_GMT_DATA_SERVER_UPDATE */ + GMT->current.setting.refresh_time = 1; /* GMT_CUSTOM_LIBS (default to none) */ /* GMT_EXPORT_TYPE */ GMT->current.setting.export_type = GMT_DOUBLE; @@ -10552,6 +10555,23 @@ unsigned int gmtlib_setparameter (struct GMT_CTRL *GMT, const char *keyword, cha } break; + case GMTCASE_GMT_DATA_SERVER_UPDATE: + if (lower_value[0]) { + size_t f, k = len - 1; + switch (lower_value[k]) { + case 'd': f = 1; break; + case 'w': f = 7; break; + case 'm': f = 30; break; + default: f = 1; break; + } + GMT->current.setting.refresh_time = atoi (lower_value) * f; + if (GMT->current.setting.refresh_time == 0) + error++; + } + else + error++; + break; + case GMTCASE_GMT_CUSTOM_LIBS: if (*value) { if (GMT->session.CUSTOM_LIBS) { @@ -11823,6 +11843,15 @@ char *gmtlib_putparameter (struct GMT_CTRL *GMT, const char *keyword) { snprintf (value, GMT_BUFSIZ, "%" PRIu64 "Gb", (uint64_t)GMT->current.setting.url_size_limit/(1024*1024*1024)); break; + case GMTCASE_GMT_DATA_SERVER_UPDATE: + if ((GMT->current.setting.refresh_time % 30) == 0) /* Whole "months" = 30 days */ + snprintf (value, GMT_BUFSIZ, "%dm", GMT->current.setting.refresh_time / 30); + if ((GMT->current.setting.refresh_time % 7) == 0) /* Whole weeks */ + snprintf (value, GMT_BUFSIZ, "%dw", GMT->current.setting.refresh_time / 7); + else /* Number of days */ + snprintf (value, GMT_BUFSIZ, "%dd", GMT->current.setting.refresh_time); + break; + case GMTCASE_GMT_CUSTOM_LIBS: strncpy (value, (GMT->session.CUSTOM_LIBS) ? GMT->session.CUSTOM_LIBS : "", GMT_BUFSIZ-1); break; diff --git a/src/gmt_keywords.txt b/src/gmt_keywords.txt index 1ff74a7e8c5..628a7c4cd29 100644 --- a/src/gmt_keywords.txt +++ b/src/gmt_keywords.txt @@ -62,6 +62,7 @@ GMT_COMPATIBILITY # Oldest GMT version syntax to parse without error [4 and up] GMT_CUSTOM_LIBS # List of custom GMT-compliant shared libraries GMT_DATA_SERVER # Where to download from [SOEST] GMT_DATA_SERVER_LIMIT # Max file size to download remotely +GMT_DATA_SERVER_UPDATE # Frequency for refreshing local data catalog GMT_EXPORT_TYPE # Default type when GMT exports data to external interfaces GMT_EXTRAPOLATE_VAL # How to deal with 1D extrapolated values GMT_FFT # Which FFT algorithm to use diff --git a/src/gmt_remote.c b/src/gmt_remote.c index 2cc908a283f..3a62a32b038 100644 --- a/src/gmt_remote.c +++ b/src/gmt_remote.c @@ -599,7 +599,8 @@ GMT_LOCAL int gmtremote_refresh (struct GMT_CTRL *GMT, unsigned int index) { * First we check that we have the GMT_HASH_SERVER_FILE in the server directory. * If we don't then we download it and return since no old file to compare to. * If we do find the hash file then we get its creation time [st_mtime] as - * well as the current system time. If the file is < 1 day old we are done. + * well as the current system time. If the file is < GMT->current.setting.refresh_time + * days old we are done. * If the file is older we rename it to *.old and download the latest hash file. * This is the same for both values of index (hash and info). For hash, we do more: * Next, we load the contents of both files and do a double loop to find the @@ -656,7 +657,7 @@ GMT_LOCAL int gmtremote_refresh (struct GMT_CTRL *GMT, unsigned int index) { mod_time = buf.st_mtime; #endif - if ((right_now - mod_time) > GMT_DAY2SEC_I) { /* Older than 1 day; Time to get a new index file */ + if ((right_now - mod_time) > (GMT_DAY2SEC_I * GMT->current.setting.refresh_time)) { /* Older than selected number of days; Time to get a new index file */ GMT_Report (GMT->parent, GMT_MSG_DEBUG, "File %s older than 24 hours, get latest from server.\n", indexpath); strcpy (new_indexpath, indexpath); /* Duplicate path name */ strcat (new_indexpath, ".new"); /* Append .new to the copied path */ From 1d544f27d27053999537ce9fd1efe54fe6c99d12 Mon Sep 17 00:00:00 2001 From: Paul Wessel Date: Wed, 8 Jul 2020 12:21:11 -1000 Subject: [PATCH 02/14] use o for month as elsewhere --- doc/rst/source/gmt.conf.rst | 2 +- src/gmt_init.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/rst/source/gmt.conf.rst b/doc/rst/source/gmt.conf.rst index 6f9b60e3053..1b8101ce1f3 100644 --- a/doc/rst/source/gmt.conf.rst +++ b/doc/rst/source/gmt.conf.rst @@ -323,7 +323,7 @@ GMT Miscellaneous Parameters **GMT_DATA_SERVER_UPDATE** Specifies how often we update the local catalog of data available on the remote server and pruning expired data sets [1d]. Allowable time - units are **d** (days), **w** (week), **m** (month, here ~30 days). + units are **d** (days), **w** (week), **o** (month, here 30 days). **GMT_EXPORT_TYPE** This setting is only used by external interfaces and controls the diff --git a/src/gmt_init.c b/src/gmt_init.c index 024effde10c..1465c3babba 100644 --- a/src/gmt_init.c +++ b/src/gmt_init.c @@ -10561,7 +10561,7 @@ unsigned int gmtlib_setparameter (struct GMT_CTRL *GMT, const char *keyword, cha switch (lower_value[k]) { case 'd': f = 1; break; case 'w': f = 7; break; - case 'm': f = 30; break; + case 'o': f = 30; break; default: f = 1; break; } GMT->current.setting.refresh_time = atoi (lower_value) * f; @@ -11845,8 +11845,8 @@ char *gmtlib_putparameter (struct GMT_CTRL *GMT, const char *keyword) { case GMTCASE_GMT_DATA_SERVER_UPDATE: if ((GMT->current.setting.refresh_time % 30) == 0) /* Whole "months" = 30 days */ - snprintf (value, GMT_BUFSIZ, "%dm", GMT->current.setting.refresh_time / 30); - if ((GMT->current.setting.refresh_time % 7) == 0) /* Whole weeks */ + snprintf (value, GMT_BUFSIZ, "%do", GMT->current.setting.refresh_time / 30); + else if ((GMT->current.setting.refresh_time % 7) == 0) /* Whole weeks */ snprintf (value, GMT_BUFSIZ, "%dw", GMT->current.setting.refresh_time / 7); else /* Number of days */ snprintf (value, GMT_BUFSIZ, "%dd", GMT->current.setting.refresh_time); From 36b9e96dc2bcf38bee5d9e6cc9a727d48724dc11 Mon Sep 17 00:00:00 2001 From: Paul Wessel Date: Wed, 8 Jul 2020 13:22:21 -1000 Subject: [PATCH 03/14] Rearrange datasets --- doc/rst/source/datasets.rst | 6 +- .../{earth-age.rst => earth-age.rst_} | 20 +-- ...earth-daynight.rst => earth-daynight.rst_} | 21 +-- .../{earth-masks.rst => earth-masks.rst_} | 22 +-- doc/rst/source/datasets/earth-relief.rst | 137 ------------------ doc/rst/source/datasets/earth-relief.rst_ | 64 ++++++++ doc/rst/source/datasets/remote-data.rst | 65 +++++---- 7 files changed, 119 insertions(+), 216 deletions(-) rename doc/rst/source/datasets/{earth-age.rst => earth-age.rst_} (73%) rename doc/rst/source/datasets/{earth-daynight.rst => earth-daynight.rst_} (84%) rename doc/rst/source/datasets/{earth-masks.rst => earth-masks.rst_} (77%) delete mode 100644 doc/rst/source/datasets/earth-relief.rst create mode 100644 doc/rst/source/datasets/earth-relief.rst_ diff --git a/doc/rst/source/datasets.rst b/doc/rst/source/datasets.rst index e239160302b..bd33c877d2b 100644 --- a/doc/rst/source/datasets.rst +++ b/doc/rst/source/datasets.rst @@ -3,10 +3,6 @@ Datasets .. toctree:: - datasets/remote-files + datasets/remote-data datasets/gshhg datasets/dcw - datasets/earth-relief - datasets/earth-daynight - datasets/earth-masks - datasets/earth-age diff --git a/doc/rst/source/datasets/earth-age.rst b/doc/rst/source/datasets/earth-age.rst_ similarity index 73% rename from doc/rst/source/datasets/earth-age.rst rename to doc/rst/source/datasets/earth-age.rst_ index a75ed5aa816..56b2171a958 100644 --- a/doc/rst/source/datasets/earth-age.rst +++ b/doc/rst/source/datasets/earth-age.rst_ @@ -1,5 +1,5 @@ Global Earth Seafloor Crustal Age Grids -======================================= +--------------------------------------- .. figure:: /_images/GMT_agefig.* :width: 710 px @@ -13,22 +13,12 @@ remote use in GMT. Usage ----- -We have processed and reformatted the EarthByte crustal age grids -and standardized their file names. In GMT, you may access a global crustal age grid -(or a subset only by using the **-R** option) by specifying the special name +You access a global crustal age grid by specifying the special name @earth_age_\ *rr*\ *u*\ [_\ *reg*\ ] -where *rr* is a 2-digit integer specifying the grid resolution in the unit *u*, where -*u* is either **d**, **m** or **s** for arc degree, arc minute or arc second, respectively. -Optionally, you can append _\ **g** or _\ **p** to specifically get the gridline-registered or -pixel-registered version (if they both exist). If *reg* is not specified we will return -the pixel-registered version unless only the gridline-registered file is available. The following codes for *rr*\ *u* and the optional *reg* are supported (dimensions are listed -for pixel-registered grids; gridline-registered grids increment dimensions by one). -The full (6 sigma) filter-widths used to downsample the 1 min resolution are indicated in -parenthesis. **Note**: Like the Earth relief data, grids of 5 arc minute and smaller resolutions -are tiled for faster download. +for pixel-registered grids; gridline-registered grids increment dimensions by one): .. _tbl-earth_age: @@ -53,7 +43,7 @@ the earth_age files being placed in an ``earth/earth_age`` sub-directory. If you specify a CPT, the default CPT for this data set will be used (*@age_chrons_GTS2012_2020.cpt*) Technical Information ---------------------- +~~~~~~~~~~~~~~~~~~~~~ We scale and reformat the original data to take up very little space so that downloads from the servers are as fast as possible. For the seafloor crustal age grid this means @@ -63,6 +53,6 @@ by netCDF lossless compression and chunking. The data are reported in Myr relat to the 2012 Geological Time Scale. Data References ---------------- +~~~~~~~~~~~~~~~ #. Seton et al. [2020, in review] [https://www.earthbyte.org/category/resources/data-models/seafloor-age/]. diff --git a/doc/rst/source/datasets/earth-daynight.rst b/doc/rst/source/datasets/earth-daynight.rst_ similarity index 84% rename from doc/rst/source/datasets/earth-daynight.rst rename to doc/rst/source/datasets/earth-daynight.rst_ index 0601e8d7783..932e135e0ba 100644 --- a/doc/rst/source/datasets/earth-daynight.rst +++ b/doc/rst/source/datasets/earth-daynight.rst_ @@ -1,5 +1,5 @@ Global Earth Day/Night Images -============================= +----------------------------- .. figure:: /_images/daynight.jpg :height: 888 px @@ -14,12 +14,7 @@ These images may be plotted with :doc:`/grdimage` or :doc:`/grdview` and manipul by :doc:`/grdmix`. The above example mixes both images according to a day-night mask and adds illumination from a corresponding Earth DEM. -Usage ------ - -We have processed and reformatted this publicly available global imagery -and standardized their file names. In GMT, you may access a global daytime image -by specifying the special names +You access a global daytime image by specifying the special names @earth_day_\ *rr*\ *u* @@ -27,10 +22,8 @@ Similarly for the nighttime view: @earth_night_\ *rr*\ *u* -Here, *rr* is a 2-digit integer specifying the image resolution in the unit *u*, where -*u* is either **d**, **m** or **s** for arc degree, arc minute or arc second, respectively. -Note there is no file extension specified. -The following codes for *rr*\ *u* are supported: +The following codes for *rr*\ *u* and the optional *reg* are supported (dimensions are listed +for pixel-registered grids; gridline-registered grids increment dimensions by one): .. _tbl-earth_relief: @@ -55,7 +48,7 @@ All of these images will, when downloaded, be placed in your ~/.gmt/server direc the ``earth/earth_day`` and ``earth/earth_night`` sub-directories. Technical Information ---------------------- +~~~~~~~~~~~~~~~~~~~~~ The 01m and lower resolution images are derivatives of NASA's Blue and Black marble image mosaics. We have downsampled them via Cartesian Gaussian filtering to prevent aliasing while preserving @@ -66,10 +59,8 @@ to the geotiff files on the remote server. **Note**: This data set is experiment format and delivery is likely to change in the future (e.g., via image tiles). To make the files as small as possible we have also downgraded them from 24-bit to 8-bit indexed images. -.. include:: ../data-updating.rst_ - Data References ---------------- +~~~~~~~~~~~~~~~ #. Blue Marble [https://visibleearth.nasa.gov/images/57752/blue-marble-land-surface-shallow-water-and-shaded-topography]. #. Black Marble: [https://earthobservatory.nasa.gov/features/NightLights/page3.php]. diff --git a/doc/rst/source/datasets/earth-masks.rst b/doc/rst/source/datasets/earth-masks.rst_ similarity index 77% rename from doc/rst/source/datasets/earth-masks.rst rename to doc/rst/source/datasets/earth-masks.rst_ index 4e745b2be60..aa0aa1bccdb 100644 --- a/doc/rst/source/datasets/earth-masks.rst +++ b/doc/rst/source/datasets/earth-masks.rst_ @@ -1,5 +1,5 @@ Global Earth Mask Grids -======================= +----------------------- .. figure:: /_images/GMT_earthmask.* :height: 888 px @@ -13,20 +13,14 @@ via the clipping in :doc:`/coast`, you may still want to perform calculations on gridded data and apply masks via :doc:`/grdmath`. Such mask grids can be computed via :doc:`/grdlandmask` but they can take a long time to compute for large regions, the full GSHHG resolution, and small grid spacings. For these reasons we offer -precalculated mask grids via the remote server mechanism. In GMT, you may access a -global mask grid (or a subset only by using the **-R** option) by specifying the -special name +precalculated mask grids via the remote server mechanism. + +You access a global mask grid by specifying the special name @earth_mask_\ *rr*\ *u*\ [_\ *reg*\ ] -where *rr* is a 2-digit integer specifying the grid resolution in the unit *u*, where -*u* is either **d**, **m** or **s** for arc degree, arc minute or arc second, respectively. -Optionally, you can append _\ **g** or _\ **p** to specifically get the gridline-registered or -pixel-registered version (if they both exist). If *reg* is not specified we will return -the pixel-registered version. All masks are stored as compressed byte-grids and take very -little space, hence no tiling is implemented. The following codes for *rr*\ *u* and the -optional *reg* are supported (dimensions are for the pixel-registered grid; add one to -each dimension for gridline-registered grids): +The following codes for *rr*\ *u* and the optional *reg* are supported (dimensions are listed +for pixel-registered grids; gridline-registered grids increment dimensions by one): .. _tbl-earth_masks: @@ -52,7 +46,7 @@ All of these data will, when downloaded, be placed in your ~/.gmt/server directo the Earth mask files being placed in an ``earth/earth_mask`` sub-directory. Technical Information ---------------------- +~~~~~~~~~~~~~~~~~~~~~ Given that GSHHG contains 5 levels (ocean, land, lake, island-in-lake, pond-in-island-in-lake) corresponding to levels 0-4, the mask grids were computed to reflect those 5 levels. This @@ -70,5 +64,3 @@ To make a pixel-registered mask that has NaNs on land and 1 in the oceans, use:: Finally, to make a pixel-registered mask that is 1 for lakes and NaN elsewhere, try:: gmt grdmath @earth_mask_01m 2 EQ 0 NAN = lakes_and_NaN.grd - -.. include:: ../data-updating.rst_ diff --git a/doc/rst/source/datasets/earth-relief.rst b/doc/rst/source/datasets/earth-relief.rst deleted file mode 100644 index 191e27b345d..00000000000 --- a/doc/rst/source/datasets/earth-relief.rst +++ /dev/null @@ -1,137 +0,0 @@ -Global Earth Relief Grids -========================= - -.. figure:: /_images/dem.jpg - :height: 888 px - :width: 1774 px - :align: center - :scale: 40 % - -In addition to the GSHHG coastlines, rivers, and borders data built into some -modules (:doc:`/coast`, :doc:`/gmtselect`, :doc:`/grdlandmask`), we offer several -remote global data grids that you can access via our *remote file* mechanism. -The first time you access one of these files we will download the file from -the GMT server and save it to the *server* directory under your GMT user directory (~/.gmt). -We then read the file from there. Should you have limited space then there -are ways to control how much is downloaded (see below). - -Usage ------ - -We have processed and reformatted publicly available global relief -grids and standardized their file names. In GMT, you may access a global relief grid -(or a subset only by using the **-R** option) by specifying the special name - - @earth_relief_\ *rr*\ *u*\ [_\ *reg*\ ] - -where *rr* is a 2-digit integer specifying the grid resolution in the unit *u*, where -*u* is either **d**, **m** or **s** for arc degree, arc minute or arc second, respectively. -Optionally, you can append _\ **g** or _\ **p** to specifically get the gridline-registered or -pixel-registered version (if they both exist). If *reg* is not specified we will return -the pixel-registered version unless only the gridline-registered file is available. -The following codes for *rr*\ *u* and the optional *reg* are supported (dimensions are listed -for pixel-registered grids; gridline-registered grids increment dimensions by one): - -.. _tbl-earth_relief: - -==== ================= === ======= ================================================== -Code Dimensions Reg Size Description -==== ================= === ======= ================================================== -01d 360 x 180 g,p 128 KB 1 arc degree global relief (SRTM15+V2.1 @ 111 km) -30m 720 x 360 g,p 435 KB 30 arc minute global relief (SRTM15+V2.1 @ 55 km) -20m 1080 x 540 g,p 918 KB 20 arc minute global relief (SRTM15+V2.1 @ 37 km) -15m 1440 x 720 g,p 1.6 MB 15 arc minute global relief (SRTM15+V2.1 @ 28 km) -10m 2160 x 1080 g,p 3.4 MB 10 arc minute global relief (SRTM15+V2.1 @ 18 km) -06m 3600 x 1800 g,p 8.8 MB 6 arc minute global relief (SRTM15+V2.1 @ 10 km) -05m 4320 x 2160 g,p 13 MB 5 arc minute global relief (SRTM15+V2.1 @ 9 km) -04m 5400 x 2700 g,p 19 MB 4 arc minute global relief (SRTM15+V2.1 @ 7.5 km) -03m 7200 x 3600 g,p 33 MB 3 arc minute global relief (SRTM15+V2.1 @ 5.6 km) -02m 10800 x 5400 g,p 71 MB 2 arc minute global relief (SRTM15+V2.1 @ 3.7 km) -01m 21600 x 10800 g,p 258 MB 1 arc minute global relief (SRTM15+V2.1 @ 1.9 km) -30s 43200 x 21600 g,p 935 MB 30 arc second global relief (SRTM15+V2.1 @ 1.0 km) -15s 86400 x 43200 p 3.2 GB 15 arc second global relief (SRTM15+V2.1) -03s 432000 x 216000 g 6.8 GB 3 arc second global relief (SRTM3S) -01s 1296000 x 432000 g 41 GB 1 arc second global relief (SRTM1S) -==== ================= === ======= ================================================== - -All of these data will, when downloaded, be placed in your ~/.gmt/server directory, with -the earth_relief files being placed in an ``earth/earth_relief`` sub-directory. If you -do not specify a CPT then this dataset default to the GMT master *geo*. - -Technical Information ---------------------- - -As you see, the 30s and lower resolutions are all derivatives of Scripps' SRTM15+V2.1 grid -(Tozer et al., 2019). We have downsampled it via Cartesian Gaussian filtering to prevent -aliasing while preserving the latitude-dependent resolution in the original 15 arc sec grid. -The full (6 sigma) filter-widths are indicated in parenthesis. The 3 and 1 arc second data -are the SRTM 1x1 degree tiles from NASA. To improve responsiveness, the larger files (i.e., -for grid spacings 05m and smaller) have been tiled as well. When the 06m or lower resolution -grids are accessed the first time we download the entire file, regardless of your selected region (**-R**). -However, for the tiled data sets we only download the tiles that are inside your selected region -the first time they are referenced. **Note**: The 3 and 1 arc second grids only extend -to latitudes ±60˚ and are only available over land. When these grids are accessed as -@earth_relief_01s or @earth_relief_03s we will automatically up-sample the relevant @earth_relief_15s -tiles to fill in the missing ocean values. If you just want the original land-only SRTM tiles -you may use the special names @srtm_relief_03s or @srtm_relief_01s instead. Almost all grids -are available in both gridline- and pixel-registered formats except the original pixel-registered -SRTM15+V2.1 (here called @earth_relief_15s) and the gridline-registered SRTM tiles. - -The dimensions above reflect the number of nodes covered by the global grids and the sizes refer -to the files on the remote server. For single grids, these are already in the final netCDF-4 -compressed short int grids, making the files much smaller than their original source files without -any loss of precision. To minimize download speed, the dataset tiles are all stored as JPEG2000 -images on the GMT server due to superior compression, but once downloaded to your server directory -they are converted to the same short int compressed netCDF4 format for easier access. This step -uses our GDAL bridge and thus requires that you have built GMT with GDAL support -*and* that your GDAL distribution was built with openjpeg support. - - -.. _jp2_compression: - -.. figure:: /_images/srtm1.* - :width: 500 px - :align: center - - Histogram of compression rates for the SRTM 1x1 arc second tiles. 100% reflects the full short integer - size of an uncompressed tile (~25 Mb). As can be seen, on average a JPEG2000 tile is only half the - size of the corresponding fully compressed (level 9) netCDF short int grid. This is why we - have chosen the JP2 format for tiles on the server. - -Data Space Concerns -------------------- - -There are several ways you can control the amount of space taken up by your own server directory: - -#. You can set an upper file size limit for download via the GMT default setting - :term:`GMT_DATA_SERVER_LIMIT`; the default is unlimited. -#. You can remove the entire server directory via gmt :doc:`/clear` data. -#. You can be clever and set up a crontab job that deletes data files you have not - touched in, say, 6 months (or some other interval). - -Offline Usage -------------- - -If you anticipate to be without an Internet connection (or a very slow one), you can download -all the remote files prior to losing connection, using the module :doc:`/gmtget`. You can choose -which data to download and limit it to grid spacings larger or equal to a limit, and you can -minimize space on your computer by requesting the JPEG2000 tiles not be converted until GMT -is accessing them. Here are some examples of usage. Download the entire cache directory used -in examples and tests:: - - gmt get -Dcache - -To get all the data for Earth but only for 30 arc sec and coarser, and leave as JPEG2000 tiles:: - - gmt get -Ddata=earth -I30s -N - -As shown in the table, the largest dataset may take some time to download the data from GMT server. Be patient! - -.. include:: ../data-updating.rst_ - -Data References ---------------- - -#. SRTM15+V2.1 [http://dx.doi.org/10.1029/2019EA000658]. -#. SRTMGL3 tiles: [https://lpdaac.usgs.gov/products/srtmgl3v003]. -#. SRTMGL1 tiles: [https://lpdaac.usgs.gov/products/srtmgl1v003]. diff --git a/doc/rst/source/datasets/earth-relief.rst_ b/doc/rst/source/datasets/earth-relief.rst_ new file mode 100644 index 00000000000..c3b620c6e52 --- /dev/null +++ b/doc/rst/source/datasets/earth-relief.rst_ @@ -0,0 +1,64 @@ +Global Earth Relief Grids +------------------------- + +.. figure:: /_images/dem.jpg + :height: 888 px + :width: 1774 px + :align: center + :scale: 40 % + +You access a global relief grid by specifying the special name + + @earth_relief_\ *rr*\ *u*\ [_\ *reg*\ ] + +The following codes for *rr*\ *u* and the optional *reg* are supported (dimensions are listed +for pixel-registered grids; gridline-registered grids increment dimensions by one): + +.. _tbl-earth_relief: + +==== ================= === ======= ================================================== +Code Dimensions Reg Size Description +==== ================= === ======= ================================================== +01d 360 x 180 g,p 128 KB 1 arc degree global relief (SRTM15+V2.1 @ 111 km) +30m 720 x 360 g,p 435 KB 30 arc minute global relief (SRTM15+V2.1 @ 55 km) +20m 1080 x 540 g,p 918 KB 20 arc minute global relief (SRTM15+V2.1 @ 37 km) +15m 1440 x 720 g,p 1.6 MB 15 arc minute global relief (SRTM15+V2.1 @ 28 km) +10m 2160 x 1080 g,p 3.4 MB 10 arc minute global relief (SRTM15+V2.1 @ 18 km) +06m 3600 x 1800 g,p 8.8 MB 6 arc minute global relief (SRTM15+V2.1 @ 10 km) +05m 4320 x 2160 g,p 13 MB 5 arc minute global relief (SRTM15+V2.1 @ 9 km) +04m 5400 x 2700 g,p 19 MB 4 arc minute global relief (SRTM15+V2.1 @ 7.5 km) +03m 7200 x 3600 g,p 33 MB 3 arc minute global relief (SRTM15+V2.1 @ 5.6 km) +02m 10800 x 5400 g,p 71 MB 2 arc minute global relief (SRTM15+V2.1 @ 3.7 km) +01m 21600 x 10800 g,p 258 MB 1 arc minute global relief (SRTM15+V2.1 @ 1.9 km) +30s 43200 x 21600 g,p 935 MB 30 arc second global relief (SRTM15+V2.1 @ 1.0 km) +15s 86400 x 43200 p 3.2 GB 15 arc second global relief (SRTM15+V2.1) +03s 432000 x 216000 g 6.8 GB 3 arc second global relief (SRTM3S) +01s 1296000 x 432000 g 41 GB 1 arc second global relief (SRTM1S) +==== ================= === ======= ================================================== + +All of these data will, when downloaded, be placed in your ~/.gmt/server directory, with +the earth_relief files being placed in an ``earth/earth_relief`` sub-directory. If you +do not specify a CPT then this dataset default to the GMT master *geo*. + +Technical Information +~~~~~~~~~~~~~~~~~~~~~ + +As you see, the 30s and lower resolutions are all derivatives of Scripps' SRTM15+V2.1 grid +(Tozer et al., 2019). We have downsampled it via Cartesian Gaussian filtering to prevent +aliasing while preserving the latitude-dependent resolution in the original 15 arc sec grid. +The full (6 sigma) filter-widths are indicated in parenthesis. The 3 and 1 arc second data +are the SRTM 1x1 degree tiles from NASA. **Note**: The 3 and 1 arc second grids only extend +to latitudes ±60˚ and are only available over land. When these grids are accessed as +@earth_relief_01s or @earth_relief_03s we will automatically up-sample the relevant @earth_relief_15s +tiles to fill in the missing ocean values. If you just want the original land-only SRTM tiles +you may use the special names @srtm_relief_03s or @srtm_relief_01s instead. Almost all grids +are available in both gridline- and pixel-registered formats except the original pixel-registered +SRTM15+V2.1 (here called @earth_relief_15s) and the gridline-registered SRTM tiles. + + +Data References +~~~~~~~~~~~~~~~ + +#. SRTM15+V2.1 [http://dx.doi.org/10.1029/2019EA000658]. +#. SRTMGL3 tiles: [https://lpdaac.usgs.gov/products/srtmgl3v003]. +#. SRTMGL1 tiles: [https://lpdaac.usgs.gov/products/srtmgl1v003]. diff --git a/doc/rst/source/datasets/remote-data.rst b/doc/rst/source/datasets/remote-data.rst index 9b1fea3db32..71eb1e61dbf 100644 --- a/doc/rst/source/datasets/remote-data.rst +++ b/doc/rst/source/datasets/remote-data.rst @@ -13,17 +13,17 @@ By using the remote file mechanism you should know that these files, on the serv from time to time (i.e., new versions are released, a problem in one file is fixed, or a dataset becomes obsolete), and GMT will take actions accordingly. It is our policy to only supply the *latest* version of any dataset that undergoes revisions. If you require previous versions for your work you -will need to get those data from the data provider separately. Unless you deactivate our remote data service, +will need to get those data from the data provider separately. Unless you deactivate the remote data service, GMT will do the following when you request a remote file in a GMT command: #. We check if the locally cached catalog with information about the data available from the server - is up-to-date or needs to be refreshed. If the file is older that the :term:`GMT_DATA_SERVER_UPDATE` + is up-to-date or if it needs to be refreshed. If the file is older that the :term:`GMT_DATA_SERVER_UPDATE` limit then we refresh the catalog. -#. When the catalog is refreshed, we determine if any of the data sets have been updated on the server, +#. When the catalog is refreshed, we determine the publication date for each dataset on the server, and if any local copies you may have are now obsolete will will remove them to force a re-download from the server. Usage ------ +~~~~~ We have processed and reformatted publicly available global data sets (grids and images) and standardized their file names. In GMT, you may access such data @@ -31,20 +31,21 @@ and standardized their file names. In GMT, you may access such data @remote_name_\ *rr*\ *u*\ [_\ *reg*\ ] -where *rr* is a 2-digit integer specifying the grid/image resolution in the unit *u*, where -*u* is either **d**, **m** or **s** for arc degree, arc minute or arc second, respectively. -Optionally, you can append _\ **g** or _\ **p** to specifically get the gridline-registered or -pixel-registered version (if they both exist). If *reg* is not specified we will return -the pixel-registered version unless only the gridline-registered file is available. If you -do specify a specific registration and that version is not available you will bet an error message. +where the leading @ symbol identifies the file as a remote data set, the *remote_name_* is specific +to the dataset and the *rr* code is a 2-digit integer specifying the grid/image +resolution in the unit *u*, where *u* is either **d**, **m** or **s** for arc degree, arc minute or +arc second, respectively. Optionally, you can append _\ **g** or _\ **p** to specifically get the +gridline-registered or pixel-registered version (if they both exist). If *reg* is not specified we +will return the pixel-registered version unless only the gridline-registered file is available. If you +do specify a specific registration and that version is not available you will get an error message. The codes for *rr*\ *u* and the optional *reg* that are supported will be listed in the sections -below describing the available data sets:. +below describing each of the available data sets. Many of the remote datasets have a preferred, default color table that will be used unless you override that default by giving your desired CPT information. -Data Space Concerns -------------------- +Controlling the Process +~~~~~~~~~~~~~~~~~~~~~~~ There are several ways you can control the remote data process and the amount of space taken up by your own server directory: @@ -54,15 +55,15 @@ own server directory: feature altogether [:term:`GMT_DATA_SERVER_LIMIT`]. #. You can control how often GMT will refresh the catalog of information on your computer [:term:`GMT_DATA_SERVER_UPDATE`] -#. You can clear the *server* directory, or perhaps just some subsets, any time via gmt :doc:`clear`. +#. You can clear the *server* directory, or perhaps just some subsets, any time via gmt :doc:`/clear`. Offline Usage -------------- +~~~~~~~~~~~~~ If you anticipate to be without an Internet connection (or have a very slow one), you can download -all (or some) of the remote files prior to losing connection, using the module :doc:`/gmtget`. You -can choose which data to download and limit it to grid spacings larger or equal to a limit, and you -can minimize space on your computer by requesting the JPEG2000 tiles *not* be converted until GMT +all (or some) of the remote files prior to losing connection with the module :doc:`/gmtget`. You +can choose which data to download and limit it to node spacings larger or equal to a limit, and you +can minimize space on your computer by requesting that any JPEG2000 tiles *not* be converted until GMT is accessing them. Here are some examples of usage. Download the entire cache directory used in examples and tests:: @@ -75,19 +76,16 @@ Get all the data for Earth but only for 1 arc minute and coarser, and leave tile As shown in the tables below, the largest datasets may take some time to download the data from GMT server, so be patient! -.. include:: ../data-updating.rst_ +File Compression +~~~~~~~~~~~~~~~~ -Technical Information ---------------------- - -Typically, the dataset is released by the dataset provider in a single, high-resolution format. +Typically, a dataset is released by the data provider in a single, high-resolution format. To optimize use of these data in GMT and to prevent download bottlenecks we have downsampled -the via Cartesian Gaussian filtering to prevent aliasing while preserving the latitude-dependent -resolution in the original grid or image. The full (6 sigma) filter-widths are indicated in -parenthesis for each resolution. To improve responsiveness, the larger files (i.e., currently +them via Cartesian Gaussian filtering to prevent aliasing while preserving the latitude-dependent +resolution in the original grid or image. To improve responsiveness, the larger files (i.e., currently for node spacings 05m and smaller) have been split into smaller tiles. When the 06m or lower resolution -grids are accessed the first time we download the entire file, regardless of your selected region (**-R**). -However, for the tiled data sets we only download the tiles that are intersect selected region +files are accessed the first time we download the entire file, regardless of your selected region (**-R**). +However, for the tiled data sets we only download the tiles that intersect your selected region the first time they are referenced. Single grids are provided as netCDF-4 maximum-lossless compressed short int grids, making the files @@ -110,9 +108,18 @@ GDAL support *and* that your GDAL distribution was built with *openjpeg* support have chosen the JP2 format for tiles on the server. Cache File Updates ------------------- +~~~~~~~~~~~~~~~~~~ Remote cache files are our collection of miscellaneous files that are used throughout the GMT examples, man pages, and test suite. There is no system nor catalog and files come and go as we need them. The cache files are subject to similar rules as the remote data set when it comes to refreshing or deleting them. If any of these files is precious to you we suggest you make a copy somewhere. + +.. include:: earth-relief.rst_ + +.. include:: earth-age.rst_ + +.. include:: earth-masks.rst_ + +.. include:: earth-daynight.rst_ + From 33ef48b96848a420e82ab07f4c08cf88b25b25d2 Mon Sep 17 00:00:00 2001 From: Paul Wessel Date: Wed, 8 Jul 2020 13:40:33 -1000 Subject: [PATCH 04/14] Update remote-data.rst --- doc/rst/source/datasets/remote-data.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/rst/source/datasets/remote-data.rst b/doc/rst/source/datasets/remote-data.rst index 71eb1e61dbf..6c1517c26e2 100644 --- a/doc/rst/source/datasets/remote-data.rst +++ b/doc/rst/source/datasets/remote-data.rst @@ -115,6 +115,16 @@ man pages, and test suite. There is no system nor catalog and files come and go files are subject to similar rules as the remote data set when it comes to refreshing or deleting them. If any of these files is precious to you we suggest you make a copy somewhere. +Getting a single grid +~~~~~~~~~~~~~~~~~~~~~ + +Should you need a single grid from any of our tiled dataset, e.g., to feed into other programs that do +not depend on GMT, you can create that via :doc:`/grdcut. For instance, to make a global grid from the +eight tiles that make up the 2m x 2m gridline-registered data, try:: + + gmt grdcut @earth_relief_02m_g -Gearth_at_2m.grd + + .. include:: earth-relief.rst_ .. include:: earth-age.rst_ From bc96e45543b1cd09c7025be58ab90df7d8122a25 Mon Sep 17 00:00:00 2001 From: Paul Wessel Date: Wed, 8 Jul 2020 18:16:19 -1000 Subject: [PATCH 05/14] Fix mem leaking when module called another module --- src/gmt_init.c | 2 +- src/gmt_prototypes.h | 2 +- src/gmt_remote.c | 82 +++++++++++++++++++++++--------------------- src/gmtget.c | 2 +- 4 files changed, 45 insertions(+), 43 deletions(-) diff --git a/src/gmt_init.c b/src/gmt_init.c index 1465c3babba..893e3a673c6 100644 --- a/src/gmt_init.c +++ b/src/gmt_init.c @@ -13647,7 +13647,7 @@ struct GMT_CTRL *gmt_init_module (struct GMTAPI_CTRL *API, const char *lib_name, if (options) { for (opt = *options; opt; opt = opt->next) { /* Loop over all options */ if (remote_first && gmtinit_might_be_remotefile (opt->arg)) { - gmt_refresh_server (GMT); /* Refresh hash and info tables as needed */ + gmt_refresh_server (API); /* Refresh hash and info tables as needed */ remote_first = false; } if (opt->arg[0] != '@') continue; /* No remote file argument given */ diff --git a/src/gmt_prototypes.h b/src/gmt_prototypes.h index 82674a4552f..f460d14cbd3 100644 --- a/src/gmt_prototypes.h +++ b/src/gmt_prototypes.h @@ -170,7 +170,7 @@ EXTERN_MSC double gmt_fft_any_wave (uint64_t k, unsigned int mode, struct GMT_FF /* gmt_remote.c: */ -EXTERN_MSC void gmt_refresh_server (struct GMT_CTRL *GMT); +EXTERN_MSC void gmt_refresh_server (struct GMTAPI_CTRL *API); EXTERN_MSC int gmt_download_file (struct GMT_CTRL *GMT, const char *name, char *url, char *localfile, bool mode); EXTERN_MSC int gmt_set_remote_and_local_filenames (struct GMT_CTRL *GMT, const char* file, char *local_path, char *remote_path, unsigned int mode); EXTERN_MSC int gmt_remote_dataset_id (struct GMTAPI_CTRL *API, const char *file); diff --git a/src/gmt_remote.c b/src/gmt_remote.c index 3a62a32b038..e3ae4ac2a6e 100644 --- a/src/gmt_remote.c +++ b/src/gmt_remote.c @@ -178,54 +178,55 @@ GMT_LOCAL int gmtremote_remove_item (struct GMTAPI_CTRL *API, char *path, bool d return error; } -GMT_LOCAL struct GMT_DATA_INFO *gmtremote_data_load (struct GMT_CTRL *GMT, int *n) { +GMT_LOCAL struct GMT_DATA_INFO *gmtremote_data_load (struct GMTAPI_CTRL *API, int *n) { /* Read contents of the info file into an array of structs */ int k = 0, nr; FILE *fp = NULL; struct GMT_DATA_INFO *I = NULL; char unit, line[GMT_LEN512] = {""}, file[PATH_MAX] = {""}, *c = NULL; + struct GMT_CTRL *GMT = API->GMT; snprintf (file, PATH_MAX, "%s/server/%s", GMT->session.USERDIR, GMT_INFO_SERVER_FILE); - GMT_Report (GMT->parent, GMT_MSG_DEBUG, "Load contents from %s\n", file); + GMT_Report (API, GMT_MSG_DEBUG, "Load contents from %s\n", file); *n = 0; if ((fp = fopen (file, "r")) == NULL) { - GMT_Report (GMT->parent, GMT_MSG_ERROR, "Unable to open file %s\n", file); + GMT_Report (API, GMT_MSG_ERROR, "Unable to open file %s\n", file); return NULL; } if (fgets (line, GMT_LEN256, fp) == NULL) { /* Try to get first record */ fclose (fp); - GMT_Report (GMT->parent, GMT_MSG_ERROR, "Read error first record in file %s\n", file); + GMT_Report (API, GMT_MSG_ERROR, "Read error first record in file %s\n", file); return NULL; } *n = atoi (line); /* Number of non-commented records to follow */ if (*n <= 0 || *n > GMT_BIG_CHUNK) { /* Probably not a good value */ fclose (fp); - GMT_Report (GMT->parent, GMT_MSG_ERROR, "Bad record counter in file %s\n", file); + GMT_Report (API, GMT_MSG_ERROR, "Bad record counter in file %s\n", file); return NULL; } if (fgets (line, GMT_LEN256, fp) == NULL) { /* Try to get second record */ fclose (fp); - GMT_Report (GMT->parent, GMT_MSG_ERROR, "Read error second record in file %s\n", file); + GMT_Report (API, GMT_MSG_ERROR, "Read error second record in file %s\n", file); return NULL; } if ((k = gmtremote_parse_version (line))) { fclose (fp); if (k == 2) - GMT_Report (GMT->parent, GMT_MSG_NOTICE, "Your GMT version too old to use the remote data mechanism - please upgrade to %s or later\n", line); + GMT_Report (API, GMT_MSG_NOTICE, "Your GMT version too old to use the remote data mechanism - please upgrade to %s or later\n", line); else - GMT_Report (GMT->parent, GMT_MSG_ERROR, "Unable to parse \"%s\" to extract GMT version\n", line); + GMT_Report (API, GMT_MSG_ERROR, "Unable to parse \"%s\" to extract GMT version\n", line); return NULL; } if ((I = gmt_M_memory (GMT, NULL, *n, struct GMT_DATA_INFO)) == NULL) { - GMT_Report (GMT->parent, GMT_MSG_ERROR, "Unable to allocated %d GMT_DATA_INFO structures!\n", *n); + GMT_Report (API, GMT_MSG_ERROR, "Unable to allocated %d GMT_DATA_INFO structures!\n", *n); return NULL; } while (fgets (line, GMT_LEN512, fp) != NULL) { if (line[0] == '#') continue; /* Skip any comments */ if ((nr = sscanf (line, "%s %s %s %c %lg %lg %s %lg %s %s %s %s %[^\n]", I[k].dir, I[k].file, I[k].inc, &I[k].reg, &I[k].scale, &I[k].offset, I[k].size, &I[k].tile_size, I[k].date, I[k].coverage, I[k].filler, I[k].CPT, I[k].remark)) != 13) { - GMT_Report (GMT->parent, GMT_MSG_WARNING, "File %s should have 13 fields but only %d read for record %d - download error???\n", file, nr, k); + GMT_Report (API, GMT_MSG_WARNING, "File %s should have 13 fields but only %d read for record %d - download error???\n", file, nr, k); gmt_M_free (GMT, I); fclose (fp); return NULL; @@ -245,8 +246,8 @@ GMT_LOCAL struct GMT_DATA_INFO *gmtremote_data_load (struct GMT_CTRL *GMT, int * fclose (fp); if (k != *n) { - GMT_Report (GMT->parent, GMT_MSG_WARNING, "File %s said it has %d records but only found %d - download error???\n", file, *n, k); - GMT_Report (GMT->parent, GMT_MSG_WARNING, "File %s should be deleted. Please try again\n", file); + GMT_Report (API, GMT_MSG_WARNING, "File %s said it has %d records but only found %d - download error???\n", file, *n, k); + GMT_Report (API, GMT_MSG_WARNING, "File %s should be deleted. Please try again\n", file); *n = 0; /* Flag that excrement hit the fan */ } /* Soft alphabetically on file names */ @@ -271,7 +272,7 @@ GMT_LOCAL struct GMT_DATA_INFO *gmtremote_data_load (struct GMT_CTRL *GMT, int * if (access (file, R_OK)) continue; /* No such file or directory yet */ /* Here we have a local copy of this remote file or directory - we examine its creation date */ if (stat (file, &buf)) { - GMT_Report (GMT->parent, GMT_MSG_WARNING, "Unable to get information about %s - skip\n", file); + GMT_Report (API, GMT_MSG_WARNING, "Unable to get information about %s - skip\n", file); continue; } /* Get its modification (creation) time */ @@ -293,7 +294,7 @@ GMT_LOCAL struct GMT_DATA_INFO *gmtremote_data_load (struct GMT_CTRL *GMT, int * } } /* If we get here we need to remove the outdated file or directory so we may download the latest on next try */ - if (gmtremote_remove_item (GMT->parent, file, I[k].tile_size > 0.0)) { + if (gmtremote_remove_item (API, file, I[k].tile_size > 0.0)) { GMT_Report (GMT->parent, GMT_MSG_WARNING, "Unable to remove %s \n", file); } } @@ -593,7 +594,7 @@ GMT_LOCAL struct GMT_DATA_HASH *gmtremote_hash_load (struct GMT_CTRL *GMT, char return (L); }; -GMT_LOCAL int gmtremote_refresh (struct GMT_CTRL *GMT, unsigned int index) { +GMT_LOCAL int gmtremote_refresh (struct GMTAPI_CTRL *API, unsigned int index) { /* This function is called every time we are about to access a @remotefile. * It is called twice: Once for the hash table and once for the info table. * First we check that we have the GMT_HASH_SERVER_FILE in the server directory. @@ -615,6 +616,7 @@ GMT_LOCAL int gmtremote_refresh (struct GMT_CTRL *GMT, unsigned int index) { time_t mod_time, right_now = time (NULL); /* Unix time right now */ char indexpath[PATH_MAX] = {""}, old_indexpath[PATH_MAX] = {""}, new_indexpath[PATH_MAX] = {""}, url[PATH_MAX] = {""}; const char *index_file = (index == GMT_HASH_INDEX) ? GMT_HASH_SERVER_FILE : GMT_INFO_SERVER_FILE; + struct GMT_CTRL *GMT = API->GMT; /* Short hand */ if (GMT->current.io.refreshed[index]) return GMT_NOERROR; /* Already been here */ @@ -624,13 +626,13 @@ GMT_LOCAL int gmtremote_refresh (struct GMT_CTRL *GMT, unsigned int index) { char serverdir[PATH_MAX] = {""}; snprintf (serverdir, PATH_MAX, "%s/server", GMT->session.USERDIR); if (access (serverdir, R_OK) && gmt_mkdir (serverdir)) { - GMT_Report (GMT->parent, GMT_MSG_ERROR, "Unable to create GMT server directory : %s\n", serverdir); + GMT_Report (API, GMT_MSG_ERROR, "Unable to create GMT server directory : %s\n", serverdir); return 1; } snprintf (url, PATH_MAX, "%s/%s", GMT->session.DATASERVER, index_file); - GMT_Report (GMT->parent, GMT_MSG_DEBUG, "Download remote file %s for the first time\n", url); + GMT_Report (API, GMT_MSG_DEBUG, "Download remote file %s for the first time\n", url); if (gmtremote_get_url (GMT, url, indexpath, NULL, index)) { - GMT_Report (GMT->parent, GMT_MSG_INFORMATION, "Failed to get remote file %s\n", url); + GMT_Report (API, GMT_MSG_INFORMATION, "Failed to get remote file %s\n", url); if (!access (indexpath, F_OK)) gmt_remove_file (GMT, indexpath); /* Remove index file just in case it got corrupted or zero size */ GMT->current.setting.auto_download = GMT_NO_DOWNLOAD; /* Temporarily turn off auto download in this session only */ GMT->current.io.internet_error = true; /* No point trying again */ @@ -640,14 +642,14 @@ GMT_LOCAL int gmtremote_refresh (struct GMT_CTRL *GMT, unsigned int index) { return GMT_NOERROR; } else - GMT_Report (GMT->parent, GMT_MSG_DEBUG, "Local file %s found\n", indexpath); + GMT_Report (API, GMT_MSG_DEBUG, "Local file %s found\n", indexpath); GMT->current.io.refreshed[index] = true; /* Done our job */ /* Here we have the existing index file and its path is in indexpath. Check how old it is */ if (stat (indexpath, &buf)) { - GMT_Report (GMT->parent, GMT_MSG_ERROR, "Unable to get information about %s - abort\n", indexpath); + GMT_Report (API, GMT_MSG_ERROR, "Unable to get information about %s - abort\n", indexpath); return 1; } /* Get its modification (creation) time */ @@ -658,27 +660,27 @@ GMT_LOCAL int gmtremote_refresh (struct GMT_CTRL *GMT, unsigned int index) { #endif if ((right_now - mod_time) > (GMT_DAY2SEC_I * GMT->current.setting.refresh_time)) { /* Older than selected number of days; Time to get a new index file */ - GMT_Report (GMT->parent, GMT_MSG_DEBUG, "File %s older than 24 hours, get latest from server.\n", indexpath); + GMT_Report (API, GMT_MSG_DEBUG, "File %s older than 24 hours, get latest from server.\n", indexpath); strcpy (new_indexpath, indexpath); /* Duplicate path name */ strcat (new_indexpath, ".new"); /* Append .new to the copied path */ strcpy (old_indexpath, indexpath); /* Duplicate path name */ strcat (old_indexpath, ".old"); /* Append .old to the copied path */ snprintf (url, PATH_MAX, "%s/%s", GMT->session.DATASERVER, index_file); /* Set remote path to new index file */ if (gmtremote_get_url (GMT, url, new_indexpath, indexpath, index)) { /* Get the new index file from server */ - GMT_Report (GMT->parent, GMT_MSG_DEBUG, "Failed to download %s - Internet troubles?\n", url); + GMT_Report (API, GMT_MSG_DEBUG, "Failed to download %s - Internet troubles?\n", url); if (!access (new_indexpath, F_OK)) gmt_remove_file (GMT, new_indexpath); /* Remove index file just in case it got corrupted or zero size */ return 1; /* Unable to update the file (no Internet?) - skip the tests */ } if (!access (old_indexpath, F_OK)) remove (old_indexpath); /* Remove old index file if it exists */ - GMT_Report (GMT->parent, GMT_MSG_DEBUG, "Rename %s to %s\n", indexpath, old_indexpath); + GMT_Report (API, GMT_MSG_DEBUG, "Rename %s to %s\n", indexpath, old_indexpath); if (gmt_rename_file (GMT, indexpath, old_indexpath, GMT_RENAME_FILE)) { /* Rename existing file to .old */ - GMT_Report (GMT->parent, GMT_MSG_ERROR, "Failed to rename %s to %s.\n", indexpath, old_indexpath); + GMT_Report (API, GMT_MSG_ERROR, "Failed to rename %s to %s.\n", indexpath, old_indexpath); return 1; } - GMT_Report (GMT->parent, GMT_MSG_DEBUG, "Rename %s to %s\n", new_indexpath, indexpath); + GMT_Report (API, GMT_MSG_DEBUG, "Rename %s to %s\n", new_indexpath, indexpath); if (gmt_rename_file (GMT, new_indexpath, indexpath, GMT_RENAME_FILE)) { /* Rename newly copied file to existing file */ - GMT_Report (GMT->parent, GMT_MSG_ERROR, "Failed to rename %s to %s.\n", new_indexpath, indexpath); + GMT_Report (API, GMT_MSG_ERROR, "Failed to rename %s to %s.\n", new_indexpath, indexpath); return 1; } @@ -701,26 +703,26 @@ GMT_LOCAL int gmtremote_refresh (struct GMT_CTRL *GMT, unsigned int index) { if (!strcmp (N[n].name, O[o].name)) { /* File is in the current hash table */ found = true; /* We will exit this loop regardless of what happens next below */ if (strcmp (N[n].hash, O[o].hash)) { /* New hash differs from entry in hash old file */ - GMT_Report (GMT->parent, GMT_MSG_DEBUG, "Server and cache versions of %s have different hash codes - must download new copy.\n", N[n].name); + GMT_Report (API, GMT_MSG_DEBUG, "Server and cache versions of %s have different hash codes - must download new copy.\n", N[n].name); gmt_remove_file (GMT, url); /* Need to re-download so be gone with it */ } else { /* Do size check */ struct stat buf; if (stat (url, &buf)) { - GMT_Report (GMT->parent, GMT_MSG_WARNING, "Could not determine size of file %s.\n", url); + GMT_Report (API, GMT_MSG_WARNING, "Could not determine size of file %s.\n", url); continue; } if (N[n].size != (size_t)buf.st_size) { /* Downloaded file size differ - need to re-download */ - GMT_Report (GMT->parent, GMT_MSG_DEBUG, "Server and cache versions of %s have different byte sizes (%" PRIuS " versus %" PRIuS ") - must download new copy.\n", N[n].name, N[n].size, (size_t)buf.st_size); + GMT_Report (API, GMT_MSG_DEBUG, "Server and cache versions of %s have different byte sizes (%" PRIuS " versus %" PRIuS ") - must download new copy.\n", N[n].name, N[n].size, (size_t)buf.st_size); gmt_remove_file (GMT, url); /* Need to re-download so be gone with it */ } else - GMT_Report (GMT->parent, GMT_MSG_DEBUG, "Server and cache versions of %s are identical - no need to download new file.\n", N[n].name); + GMT_Report (API, GMT_MSG_DEBUG, "Server and cache versions of %s are identical - no need to download new file.\n", N[n].name); } } } if (!found) { /* This file was present locally but is no longer part of files on the server and should be removed */ - GMT_Report (GMT->parent, GMT_MSG_DEBUG, "File %s no longer supported on server - deleting local copy.\n", O[o].name); + GMT_Report (API, GMT_MSG_DEBUG, "File %s no longer supported on server - deleting local copy.\n", O[o].name); gmt_remove_file (GMT, url); } } @@ -734,11 +736,11 @@ GMT_LOCAL int gmtremote_refresh (struct GMT_CTRL *GMT, unsigned int index) { GMT->current.io.new_data_list = true; /* Flag that we wish to delete datasets older than entries in this file */ } else - GMT_Report (GMT->parent, GMT_MSG_DEBUG, "File %s less than 24 hours old, refresh is premature.\n", indexpath); + GMT_Report (API, GMT_MSG_DEBUG, "File %s less than 24 hours old, refresh is premature.\n", indexpath); return GMT_NOERROR; } -void gmt_refresh_server (struct GMT_CTRL *GMT) { +void gmt_refresh_server (struct GMTAPI_CTRL *API) { /* Called once in gmt_begin from GMT_Create_Session, The following actions take place: * * The data info table is refreshed if missing or older than 24 hours. @@ -749,16 +751,16 @@ void gmt_refresh_server (struct GMT_CTRL *GMT) { * user requests it, it forces a download of the updated file. */ - if (gmtremote_refresh (GMT, GMT_INFO_INDEX)) /* Watch out for changes on the server info once a day */ - GMT_Report (GMT->parent, GMT_MSG_INFORMATION, "Unable to obtain remote information file %s\n", GMT_INFO_SERVER_FILE); - else { /* Get server file attribution info */ - if ((GMT->parent->remote_info = gmtremote_data_load (GMT, &GMT->parent->n_remote_info)) == NULL) { /* Failed to load the info file */ - GMT_Report (GMT->parent, GMT_MSG_INFORMATION, "Unable to read server information file\n"); + if (gmtremote_refresh (API, GMT_INFO_INDEX)) /* Watch out for changes on the server info once a day */ + GMT_Report (API, GMT_MSG_INFORMATION, "Unable to obtain remote information file %s\n", GMT_INFO_SERVER_FILE); + else if (API->remote_info == NULL) { /* Get server file attribution info if not yet loaded */ + if ((API->remote_info = gmtremote_data_load (API, &API->n_remote_info)) == NULL) { /* Failed to load the info file */ + GMT_Report (API, GMT_MSG_INFORMATION, "Unable to read server information file\n"); } } - if (gmtremote_refresh (GMT, GMT_HASH_INDEX)) { /* Watch out for changes on the server hash once a day */ - GMT_Report (GMT->parent, GMT_MSG_INFORMATION, "Unable to obtain remote hash table %s\n", GMT_HASH_SERVER_FILE); + if (gmtremote_refresh (API, GMT_HASH_INDEX)) { /* Watch out for changes on the server hash once a day */ + GMT_Report (API, GMT_MSG_INFORMATION, "Unable to obtain remote hash table %s\n", GMT_HASH_SERVER_FILE); } } diff --git a/src/gmtget.c b/src/gmtget.c index efccb6c7128..586a5e5a773 100644 --- a/src/gmtget.c +++ b/src/gmtget.c @@ -212,7 +212,7 @@ EXTERN_MSC int GMT_gmtget (void *V_API, int mode, void *args) { double world[4] = {-180.0, +180.0, -90.0, +90.0}; struct GMT_RECORD *Out = NULL; - gmt_refresh_server (GMT); /* Refresh hash and info tables as needed since we need to know what is there */ + gmt_refresh_server (API); /* Refresh hash and info tables as needed since we need to know what is there */ if (Ctrl->Q.active) { /* Must activate data output machinery for a DATASET with no numerical columns */ Out = gmt_new_record (GMT, NULL, message); From 268e46bbe533e7dfcb53109c1b10b266f067bf01 Mon Sep 17 00:00:00 2001 From: Dongdong Tian Date: Fri, 10 Jul 2020 19:45:12 -0400 Subject: [PATCH 06/14] Update doc/rst/source/datasets/remote-data.rst --- doc/rst/source/datasets/remote-data.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/rst/source/datasets/remote-data.rst b/doc/rst/source/datasets/remote-data.rst index 6c1517c26e2..8dcb63e6973 100644 --- a/doc/rst/source/datasets/remote-data.rst +++ b/doc/rst/source/datasets/remote-data.rst @@ -20,7 +20,7 @@ GMT will do the following when you request a remote file in a GMT command: is up-to-date or if it needs to be refreshed. If the file is older that the :term:`GMT_DATA_SERVER_UPDATE` limit then we refresh the catalog. #. When the catalog is refreshed, we determine the publication date for each dataset on the server, - and if any local copies you may have are now obsolete will will remove them to force a re-download from the server. + and if any local copies you may have are now obsolete we will remove them to force a re-download from the server. Usage ~~~~~ @@ -132,4 +132,3 @@ eight tiles that make up the 2m x 2m gridline-registered data, try:: .. include:: earth-masks.rst_ .. include:: earth-daynight.rst_ - From e3ee13a88b299bc1c5e44931f571416365b20b75 Mon Sep 17 00:00:00 2001 From: Dongdong Tian Date: Fri, 10 Jul 2020 19:45:18 -0400 Subject: [PATCH 07/14] Update doc/rst/source/datasets/remote-data.rst --- doc/rst/source/datasets/remote-data.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/rst/source/datasets/remote-data.rst b/doc/rst/source/datasets/remote-data.rst index 8dcb63e6973..7a70d68293e 100644 --- a/doc/rst/source/datasets/remote-data.rst +++ b/doc/rst/source/datasets/remote-data.rst @@ -119,7 +119,7 @@ Getting a single grid ~~~~~~~~~~~~~~~~~~~~~ Should you need a single grid from any of our tiled dataset, e.g., to feed into other programs that do -not depend on GMT, you can create that via :doc:`/grdcut. For instance, to make a global grid from the +not depend on GMT, you can create that via :doc:`/grdcut`. For instance, to make a global grid from the eight tiles that make up the 2m x 2m gridline-registered data, try:: gmt grdcut @earth_relief_02m_g -Gearth_at_2m.grd From efbd66290ce0a068cca70818200688fe693ec105 Mon Sep 17 00:00:00 2001 From: Dongdong Tian Date: Fri, 10 Jul 2020 19:45:59 -0400 Subject: [PATCH 08/14] Update heading levels --- doc/rst/source/datasets/earth-age.rst_ | 2 +- doc/rst/source/datasets/earth-daynight.rst_ | 3 +++ doc/rst/source/datasets/earth-masks.rst_ | 3 +++ doc/rst/source/datasets/earth-relief.rst_ | 3 +++ doc/rst/source/datasets/remote-data.rst | 12 ++++++------ 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/doc/rst/source/datasets/earth-age.rst_ b/doc/rst/source/datasets/earth-age.rst_ index 56b2171a958..35966a9f08e 100644 --- a/doc/rst/source/datasets/earth-age.rst_ +++ b/doc/rst/source/datasets/earth-age.rst_ @@ -11,7 +11,7 @@ the creation of crustal age grids since 1997 and we offer their latest version f remote use in GMT. Usage ------ +~~~~~ You access a global crustal age grid by specifying the special name diff --git a/doc/rst/source/datasets/earth-daynight.rst_ b/doc/rst/source/datasets/earth-daynight.rst_ index 932e135e0ba..7dd17733d24 100644 --- a/doc/rst/source/datasets/earth-daynight.rst_ +++ b/doc/rst/source/datasets/earth-daynight.rst_ @@ -14,6 +14,9 @@ These images may be plotted with :doc:`/grdimage` or :doc:`/grdview` and manipul by :doc:`/grdmix`. The above example mixes both images according to a day-night mask and adds illumination from a corresponding Earth DEM. +Usage +~~~~~ + You access a global daytime image by specifying the special names @earth_day_\ *rr*\ *u* diff --git a/doc/rst/source/datasets/earth-masks.rst_ b/doc/rst/source/datasets/earth-masks.rst_ index aa0aa1bccdb..a150eae29f9 100644 --- a/doc/rst/source/datasets/earth-masks.rst_ +++ b/doc/rst/source/datasets/earth-masks.rst_ @@ -15,6 +15,9 @@ via :doc:`/grdlandmask` but they can take a long time to compute for large regio the full GSHHG resolution, and small grid spacings. For these reasons we offer precalculated mask grids via the remote server mechanism. +Usage +~~~~~ + You access a global mask grid by specifying the special name @earth_mask_\ *rr*\ *u*\ [_\ *reg*\ ] diff --git a/doc/rst/source/datasets/earth-relief.rst_ b/doc/rst/source/datasets/earth-relief.rst_ index c3b620c6e52..4d3c9a06a32 100644 --- a/doc/rst/source/datasets/earth-relief.rst_ +++ b/doc/rst/source/datasets/earth-relief.rst_ @@ -7,6 +7,9 @@ Global Earth Relief Grids :align: center :scale: 40 % +Usage +~~~~~ + You access a global relief grid by specifying the special name @earth_relief_\ *rr*\ *u*\ [_\ *reg*\ ] diff --git a/doc/rst/source/datasets/remote-data.rst b/doc/rst/source/datasets/remote-data.rst index 7a70d68293e..a42e631e96b 100644 --- a/doc/rst/source/datasets/remote-data.rst +++ b/doc/rst/source/datasets/remote-data.rst @@ -23,7 +23,7 @@ GMT will do the following when you request a remote file in a GMT command: and if any local copies you may have are now obsolete we will remove them to force a re-download from the server. Usage -~~~~~ +----- We have processed and reformatted publicly available global data sets (grids and images) and standardized their file names. In GMT, you may access such data @@ -45,7 +45,7 @@ Many of the remote datasets have a preferred, default color table that will be u override that default by giving your desired CPT information. Controlling the Process -~~~~~~~~~~~~~~~~~~~~~~~ +----------------------- There are several ways you can control the remote data process and the amount of space taken up by your own server directory: @@ -58,7 +58,7 @@ own server directory: #. You can clear the *server* directory, or perhaps just some subsets, any time via gmt :doc:`/clear`. Offline Usage -~~~~~~~~~~~~~ +------------- If you anticipate to be without an Internet connection (or have a very slow one), you can download all (or some) of the remote files prior to losing connection with the module :doc:`/gmtget`. You @@ -77,7 +77,7 @@ As shown in the tables below, the largest datasets may take some time to downloa server, so be patient! File Compression -~~~~~~~~~~~~~~~~ +---------------- Typically, a dataset is released by the data provider in a single, high-resolution format. To optimize use of these data in GMT and to prevent download bottlenecks we have downsampled @@ -108,7 +108,7 @@ GDAL support *and* that your GDAL distribution was built with *openjpeg* support have chosen the JP2 format for tiles on the server. Cache File Updates -~~~~~~~~~~~~~~~~~~ +------------------ Remote cache files are our collection of miscellaneous files that are used throughout the GMT examples, man pages, and test suite. There is no system nor catalog and files come and go as we need them. The cache @@ -116,7 +116,7 @@ files are subject to similar rules as the remote data set when it comes to refre If any of these files is precious to you we suggest you make a copy somewhere. Getting a single grid -~~~~~~~~~~~~~~~~~~~~~ +--------------------- Should you need a single grid from any of our tiled dataset, e.g., to feed into other programs that do not depend on GMT, you can create that via :doc:`/grdcut`. For instance, to make a global grid from the From 25c58a165e2b7788de30ab36fdccec6d6ae5abd4 Mon Sep 17 00:00:00 2001 From: Paul Wessel Date: Fri, 10 Jul 2020 14:15:27 -1000 Subject: [PATCH 09/14] Update remote-data.rst --- doc/rst/source/datasets/remote-data.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/rst/source/datasets/remote-data.rst b/doc/rst/source/datasets/remote-data.rst index a42e631e96b..3afa0404e77 100644 --- a/doc/rst/source/datasets/remote-data.rst +++ b/doc/rst/source/datasets/remote-data.rst @@ -51,8 +51,8 @@ There are several ways you can control the remote data process and the amount of own server directory: #. You can select the GMT data server closest to you to minimize download time [:term:`GMT_DATA_SERVER`]. -#. You can set an upper limit on the file sizes that may be downloaded, or select 0 to turn off this - feature altogether [:term:`GMT_DATA_SERVER_LIMIT`]. +#. You can set an upper limit on the file sizes that may be downloaded [:term:`GMT_DATA_SERVER_LIMIT`]. +#. You can turn of the automatic download temporarily [:term:`GMT_AUTO_DOWNLOAD`]. #. You can control how often GMT will refresh the catalog of information on your computer [:term:`GMT_DATA_SERVER_UPDATE`] #. You can clear the *server* directory, or perhaps just some subsets, any time via gmt :doc:`/clear`. From 3ce718d7b62dc837852d4e1a9a9f28e9099c8451 Mon Sep 17 00:00:00 2001 From: Paul Wessel Date: Fri, 10 Jul 2020 14:31:31 -1000 Subject: [PATCH 10/14] Update name of new parameter GMT_DATA_UPDATE_INTERVAL --- doc/rst/source/datasets/remote-data.rst | 4 ++-- doc/rst/source/gmt.conf.rst | 2 +- src/gmt_init.c | 8 ++++---- src/gmt_keywords.txt | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/rst/source/datasets/remote-data.rst b/doc/rst/source/datasets/remote-data.rst index 3afa0404e77..c6f6da888df 100644 --- a/doc/rst/source/datasets/remote-data.rst +++ b/doc/rst/source/datasets/remote-data.rst @@ -17,7 +17,7 @@ will need to get those data from the data provider separately. Unless you deact GMT will do the following when you request a remote file in a GMT command: #. We check if the locally cached catalog with information about the data available from the server - is up-to-date or if it needs to be refreshed. If the file is older that the :term:`GMT_DATA_SERVER_UPDATE` + is up-to-date or if it needs to be refreshed. If the file is older that the :term:`GMT_DATA_UPDATE_INTERVAL` limit then we refresh the catalog. #. When the catalog is refreshed, we determine the publication date for each dataset on the server, and if any local copies you may have are now obsolete we will remove them to force a re-download from the server. @@ -54,7 +54,7 @@ own server directory: #. You can set an upper limit on the file sizes that may be downloaded [:term:`GMT_DATA_SERVER_LIMIT`]. #. You can turn of the automatic download temporarily [:term:`GMT_AUTO_DOWNLOAD`]. #. You can control how often GMT will refresh the catalog of information on your computer - [:term:`GMT_DATA_SERVER_UPDATE`] + [:term:`GMT_DATA_UPDATE_INTERVAL`] #. You can clear the *server* directory, or perhaps just some subsets, any time via gmt :doc:`/clear`. Offline Usage diff --git a/doc/rst/source/gmt.conf.rst b/doc/rst/source/gmt.conf.rst index 1b8101ce1f3..2ccf6725ec2 100644 --- a/doc/rst/source/gmt.conf.rst +++ b/doc/rst/source/gmt.conf.rst @@ -320,7 +320,7 @@ GMT Miscellaneous Parameters the maximum file size in bytes, or append k, m, or g for kilo-, mega-, or giga-bytes. - **GMT_DATA_SERVER_UPDATE** + **GMT_DATA_UPDATE_INTERVAL** Specifies how often we update the local catalog of data available on the remote server and pruning expired data sets [1d]. Allowable time units are **d** (days), **w** (week), **o** (month, here 30 days). diff --git a/src/gmt_init.c b/src/gmt_init.c index 893e3a673c6..7751376b334 100644 --- a/src/gmt_init.c +++ b/src/gmt_init.c @@ -175,7 +175,7 @@ static struct GMT5_params GMT5_keywords[]= { { 0, "GMT_AUTO_DOWNLOAD"}, { 0, "GMT_DATA_SERVER"}, { 0, "GMT_DATA_SERVER_LIMIT"}, - { 0, "GMT_DATA_SERVER_UPDATE"}, + { 0, "GMT_DATA_UPDATE_INTERVAL"}, { 0, "GMT_COMPATIBILITY"}, { 0, "GMT_CUSTOM_LIBS"}, { 0, "GMT_EXPORT_TYPE"}, @@ -5995,7 +5995,7 @@ void gmt_conf (struct GMT_CTRL *GMT) { GMT->current.setting.auto_download = GMT_YES_DOWNLOAD; /* GMTCASE_GMT_DATA_SERVER_LIMIT */ GMT->current.setting.url_size_limit = 0; - /* GMTCASE_GMT_DATA_SERVER_UPDATE */ + /* GMTCASE_GMT_DATA_UPDATE_INTERVAL */ GMT->current.setting.refresh_time = 1; /* GMT_CUSTOM_LIBS (default to none) */ /* GMT_EXPORT_TYPE */ @@ -10555,7 +10555,7 @@ unsigned int gmtlib_setparameter (struct GMT_CTRL *GMT, const char *keyword, cha } break; - case GMTCASE_GMT_DATA_SERVER_UPDATE: + case GMTCASE_GMT_DATA_UPDATE_INTERVAL: if (lower_value[0]) { size_t f, k = len - 1; switch (lower_value[k]) { @@ -11843,7 +11843,7 @@ char *gmtlib_putparameter (struct GMT_CTRL *GMT, const char *keyword) { snprintf (value, GMT_BUFSIZ, "%" PRIu64 "Gb", (uint64_t)GMT->current.setting.url_size_limit/(1024*1024*1024)); break; - case GMTCASE_GMT_DATA_SERVER_UPDATE: + case GMTCASE_GMT_DATA_UPDATE_INTERVAL: if ((GMT->current.setting.refresh_time % 30) == 0) /* Whole "months" = 30 days */ snprintf (value, GMT_BUFSIZ, "%do", GMT->current.setting.refresh_time / 30); else if ((GMT->current.setting.refresh_time % 7) == 0) /* Whole weeks */ diff --git a/src/gmt_keywords.txt b/src/gmt_keywords.txt index 628a7c4cd29..774e0d42d30 100644 --- a/src/gmt_keywords.txt +++ b/src/gmt_keywords.txt @@ -62,7 +62,7 @@ GMT_COMPATIBILITY # Oldest GMT version syntax to parse without error [4 and up] GMT_CUSTOM_LIBS # List of custom GMT-compliant shared libraries GMT_DATA_SERVER # Where to download from [SOEST] GMT_DATA_SERVER_LIMIT # Max file size to download remotely -GMT_DATA_SERVER_UPDATE # Frequency for refreshing local data catalog +GMT_DATA_UPDATE_INTERVAL # Frequency for refreshing local data catalog GMT_EXPORT_TYPE # Default type when GMT exports data to external interfaces GMT_EXTRAPOLATE_VAL # How to deal with 1D extrapolated values GMT_FFT # Which FFT algorithm to use From abec44d611ebb2779f3c961e424f38ab38460fa0 Mon Sep 17 00:00:00 2001 From: Dongdong Tian Date: Fri, 10 Jul 2020 20:33:52 -0400 Subject: [PATCH 11/14] List all datasets --- doc/rst/source/datasets/remote-data.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/rst/source/datasets/remote-data.rst b/doc/rst/source/datasets/remote-data.rst index c6f6da888df..a825f0926a4 100644 --- a/doc/rst/source/datasets/remote-data.rst +++ b/doc/rst/source/datasets/remote-data.rst @@ -41,6 +41,14 @@ do specify a specific registration and that version is not available you will ge The codes for *rr*\ *u* and the optional *reg* that are supported will be listed in the sections below describing each of the available data sets. + +Currently, GMT provides the following datasets (with their special names in parentheses) + +- `Global Earth Relief Grids`_ (``earth_relief``) +- `Global Earth Seafloor Crustal Age Grids`_ (``earth_age``) +- `Global Earth Mask Grids`_ (``earth_mask``) +- `Global Earth Day/Night Images`_ (``earth_day`` and ``earth_night``) + Many of the remote datasets have a preferred, default color table that will be used unless you override that default by giving your desired CPT information. From 90d24b334e8054639f7c817eaa53e7a82386d6ca Mon Sep 17 00:00:00 2001 From: Paul Wessel Date: Fri, 10 Jul 2020 15:45:10 -1000 Subject: [PATCH 12/14] add logos --- doc/fig/EarthByte_logo_small.png | Bin 0 -> 105668 bytes doc/fig/igpp.png | Bin 0 -> 8951 bytes doc/rst/source/datasets/earth-age.rst_ | 5 +++++ doc/rst/source/datasets/earth-relief.rst_ | 4 ++++ 4 files changed, 9 insertions(+) create mode 100644 doc/fig/EarthByte_logo_small.png create mode 100644 doc/fig/igpp.png diff --git a/doc/fig/EarthByte_logo_small.png b/doc/fig/EarthByte_logo_small.png new file mode 100644 index 0000000000000000000000000000000000000000..99e01de5977fd8a48936af6d8180943946a522ab GIT binary patch literal 105668 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%0DjT`9>ClO0eo9R>4(Ez=grE>!tid-Ny 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 AP5=M^ literal 0 HcmV?d00001 diff --git a/doc/fig/igpp.png b/doc/fig/igpp.png new file mode 100644 index 0000000000000000000000000000000000000000..c347a041f5eaa8d775926a3edc3be600f8e0f62e GIT binary patch literal 8951 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 Date: Fri, 10 Jul 2020 22:31:37 -0400 Subject: [PATCH 13/14] Add horizontal rules between datasets --- doc/rst/source/datasets/remote-data.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/rst/source/datasets/remote-data.rst b/doc/rst/source/datasets/remote-data.rst index a825f0926a4..3ce8ca170c1 100644 --- a/doc/rst/source/datasets/remote-data.rst +++ b/doc/rst/source/datasets/remote-data.rst @@ -132,11 +132,18 @@ eight tiles that make up the 2m x 2m gridline-registered data, try:: gmt grdcut @earth_relief_02m_g -Gearth_at_2m.grd +---- .. include:: earth-relief.rst_ +---- + .. include:: earth-age.rst_ +---- + .. include:: earth-masks.rst_ +---- + .. include:: earth-daynight.rst_ From 95b27bdfcdb6eadba438aad2aa5d7b89118836cd Mon Sep 17 00:00:00 2001 From: Paul Wessel Date: Fri, 10 Jul 2020 18:40:09 -1000 Subject: [PATCH 14/14] Add NASA logo and revise placements --- doc/fig/nasa-logo-web-rgb.png | Bin 0 -> 90451 bytes doc/rst/source/datasets/earth-age.rst_ | 8 +++----- doc/rst/source/datasets/earth-daynight.rst_ | 5 ++++- doc/rst/source/datasets/earth-relief.rst_ | 9 ++++----- doc/rst/source/datasets/remote-data.rst | 8 +++++--- 5 files changed, 16 insertions(+), 14 deletions(-) create mode 100644 doc/fig/nasa-logo-web-rgb.png diff --git a/doc/fig/nasa-logo-web-rgb.png b/doc/fig/nasa-logo-web-rgb.png new file mode 100644 index 0000000000000000000000000000000000000000..511e80812e89354fb523901818162787087f30d1 GIT binary patch literal 90451 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%0An{1Hd~ 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

(eYQgT&4ncy5r1boU<9nsqW_4EnQlA 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 bpuqnDJ#{HkhXnji00000NkvXXu0mjf*PpW- literal 0 HcmV?d00001 diff --git a/doc/rst/source/datasets/earth-age.rst_ b/doc/rst/source/datasets/earth-age.rst_ index a7178377083..d84f8ecf6da 100644 --- a/doc/rst/source/datasets/earth-age.rst_ +++ b/doc/rst/source/datasets/earth-age.rst_ @@ -1,5 +1,8 @@ Global Earth Seafloor Crustal Age Grids --------------------------------------- +.. figure:: /_images/EarthByte_logo_small.png + :align: right + :scale: 20 % .. figure:: /_images/GMT_agefig.* :width: 710 px @@ -55,9 +58,4 @@ to the 2012 Geological Time Scale. Data References ~~~~~~~~~~~~~~~ - -.. figure:: /_images/EarthByte_logo_small.png - :align: right - :scale: 40 % - #. Seton et al. [2020, in review] [https://www.earthbyte.org/category/resources/data-models/seafloor-age/]. diff --git a/doc/rst/source/datasets/earth-daynight.rst_ b/doc/rst/source/datasets/earth-daynight.rst_ index 7dd17733d24..3f68c6bdc54 100644 --- a/doc/rst/source/datasets/earth-daynight.rst_ +++ b/doc/rst/source/datasets/earth-daynight.rst_ @@ -1,5 +1,8 @@ Global Earth Day/Night Images ----------------------------- +.. figure:: /_images/nasa-logo-web-rgb.png + :align: right + :scale: 20 % .. figure:: /_images/daynight.jpg :height: 888 px @@ -28,7 +31,7 @@ Similarly for the nighttime view: The following codes for *rr*\ *u* and the optional *reg* are supported (dimensions are listed for pixel-registered grids; gridline-registered grids increment dimensions by one): -.. _tbl-earth_relief: +.. _tbl-earth_daynight: ==== ================= ======= =========================================================== Code Dimensions Size Description diff --git a/doc/rst/source/datasets/earth-relief.rst_ b/doc/rst/source/datasets/earth-relief.rst_ index 1cf7cf9dda0..2cf8667fea5 100644 --- a/doc/rst/source/datasets/earth-relief.rst_ +++ b/doc/rst/source/datasets/earth-relief.rst_ @@ -1,6 +1,10 @@ Global Earth Relief Grids ------------------------- +.. figure:: /_images/igpp.png + :align: right + :scale: 20 % + .. figure:: /_images/dem.jpg :height: 888 px :width: 1774 px @@ -58,14 +62,9 @@ you may use the special names @srtm_relief_03s or @srtm_relief_01s instead. Almo are available in both gridline- and pixel-registered formats except the original pixel-registered SRTM15+V2.1 (here called @earth_relief_15s) and the gridline-registered SRTM tiles. - Data References ~~~~~~~~~~~~~~~ -.. figure:: /_images/igpp.png - :align: right - :scale: 40 % - #. SRTM15+V2.1 [http://dx.doi.org/10.1029/2019EA000658]. #. SRTMGL3 tiles: [https://lpdaac.usgs.gov/products/srtmgl3v003]. #. SRTMGL1 tiles: [https://lpdaac.usgs.gov/products/srtmgl1v003]. diff --git a/doc/rst/source/datasets/remote-data.rst b/doc/rst/source/datasets/remote-data.rst index 3ce8ca170c1..d94332f890f 100644 --- a/doc/rst/source/datasets/remote-data.rst +++ b/doc/rst/source/datasets/remote-data.rst @@ -46,8 +46,8 @@ Currently, GMT provides the following datasets (with their special names in pare - `Global Earth Relief Grids`_ (``earth_relief``) - `Global Earth Seafloor Crustal Age Grids`_ (``earth_age``) -- `Global Earth Mask Grids`_ (``earth_mask``) - `Global Earth Day/Night Images`_ (``earth_day`` and ``earth_night``) +- `Global Earth Mask Grids`_ (``earth_mask``) Many of the remote datasets have a preferred, default color table that will be used unless you override that default by giving your desired CPT information. @@ -142,8 +142,10 @@ eight tiles that make up the 2m x 2m gridline-registered data, try:: ---- -.. include:: earth-masks.rst_ +.. include:: earth-daynight.rst_ ---- -.. include:: earth-daynight.rst_ +.. include:: earth-masks.rst_ + +