GenericMappingTools / GenericMappingTools/gmtserver-admin

Generalizing tiling operations

Ouverte
#46 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Shell
Étoiles
7
Forks
3
Merge moyen
9 h 22 min
PR mergées (30 j)
1

Description

These nots are mostly to myself to clarify how I did the tiling blending, but also for GMT contributes to comment on in case I am proposing the wrong path.

Currently, we only offer two tiled data sets: SRTM1s and SRTM3s. THey are not available everywhere (land only) so we also have a tiny srtm_tiles.nc grid that is true/false if a tile exist. Here is how GMT handles a request like gmt grdimage @earth_relief_01s -RFR -JM20c -B -pdf map:

1. During module initialization (_gmt_init_module_) we call _gmtlib_file_is_srtmrequest_. It checks if this is one of the two earth_relief_01|3s files, and if so it sets _ocean_ to true if we gave earth_relief instead of srtm_relief as the name. If not then we are done.
2. Next, _gmtlib_get_srtmlist_ is called. It builds the list of tile file names needed. To do this it uses the region (**-R**) rounded outwards to nearest tile size (here 1 degree). It then loops over all the imaginary tiles needed but if the relevant node in the grid srtm_tiles.nc is false we skip it since that tile is not present on the server. If ocean was determined to be true then we also add the file earth_relief_15s as the last file. The listfile is called =srtm##### (random unique ints) and placed in the temp dir. Its path is then used to replace the initial @earth_relief_01|3s file given to the module.
3. When the grid is accessed by GMT_Read_Data, we recognize the gridname using the _gmtlib_file_is_srtmlist_ function, and if true then we call _gmtlib_assemble_srtm_ which passes the list of tiles to **grdblend**. The resulting grid is passed back out to the module

All this works fine, but we need to generalize this to work for any dataset with any tile size, etc. This means we must

0. Use the dataset name (without _xxy) to mean a directory with tiles (instead of special names like srtm1). E.g., if we tiled the 15s grid then inside eart/earth_relief there would be a directory earth_relief_15s and no earth_relief_15s_p.grd file.
1. Let the tile size be a variable
2. Standardize the name of the tiles.nc grid
3. Generalize the notion of a background default grids for areas with no tiles.

I think the information needed to do this simply goes into the gmt_data_server file which is loaded into memory during GMT_Create_Session.

We may also consider not doing the with or without ocean options since that means different input names.

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par lire gmt_data_server et le chemin de chargement de GMT_Create_Session, puis suivez _gmtlib_file_is_srtmrequest_, _gmtlib_get_srtmlist_ et _gmtlib_assemble_srtm_. Le travail sera terminé lorsque le flux de tuilage sera spécifié pour des jeux de données et des tailles de tuile arbitraires, avec une grille tiles.nc standardisée et des valeurs par défaut pour l’arrière-plan ; le choix de nommage de l’océan doit également être tranché.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
shell
Domaine
data, tooling
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.