Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Generalizing tiling operations

オープン
#46 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
shell
領域
data, tooling

調査の方向性

まず gmt_data_server と GMT_Create_Session のロードパスを読み、次に gmtlib_file_is_srtmrequest、gmtlib_get_srtmlist、gmtlib_assemble_srtm を追跡します。任意のデータセットとタイルサイズに対応するタイリングフローが、標準化された tiles.nc グリッドと背景のデフォルト値とともに仕様化され、さらに海洋の命名方法の選択も解決されれば完了です。

索引モデルが issue の本文から書いたものです。

説明

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

  1. 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.
  2. Let the tile size be a variable
  3. Standardize the name of the tiles.nc grid
  4. 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.

主要言語
Shell
スター
7
フォーク
3
平均マージ
9時間 22分
マージ済み PR(30日)
1

環境構築

このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

GenericMappingTools/gmtserver-admin のほかの issue

GenericMappingTools/gmtserver-admin の issue をすべて見る

似ている issue

Shell/Bash の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。