diff --git a/6.2.0rc1/.buildinfo b/6.2.0rc1/.buildinfo
deleted file mode 100644
index f11bee36f1b..00000000000
--- a/6.2.0rc1/.buildinfo
+++ /dev/null
@@ -1,4 +0,0 @@
-# Sphinx build info version 1
-# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: 704e7c6fd8a3d162a3f46f17e63cd5b3
-tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/6.2.0rc1/_downloads/1bf15d8704e82078bd65bdbaf2670cac/GMT_RGBchart_a4.pdf b/6.2.0rc1/_downloads/1bf15d8704e82078bd65bdbaf2670cac/GMT_RGBchart_a4.pdf
deleted file mode 100644
index a6a66f701bc..00000000000
Binary files a/6.2.0rc1/_downloads/1bf15d8704e82078bd65bdbaf2670cac/GMT_RGBchart_a4.pdf and /dev/null differ
diff --git a/6.2.0rc1/_downloads/5e57ceb8ceac7fb1193bc266eb35f558/GMT_App_F_stand+_iso+.pdf b/6.2.0rc1/_downloads/5e57ceb8ceac7fb1193bc266eb35f558/GMT_App_F_stand+_iso+.pdf
deleted file mode 100644
index f0e443cb91d..00000000000
Binary files a/6.2.0rc1/_downloads/5e57ceb8ceac7fb1193bc266eb35f558/GMT_App_F_stand+_iso+.pdf and /dev/null differ
diff --git a/6.2.0rc1/_downloads/b4191445961ae4433bd9214a7272afed/GMT_RGBchart_tabloid.pdf b/6.2.0rc1/_downloads/b4191445961ae4433bd9214a7272afed/GMT_RGBchart_tabloid.pdf
deleted file mode 100644
index 6fa91e8ce5a..00000000000
Binary files a/6.2.0rc1/_downloads/b4191445961ae4433bd9214a7272afed/GMT_RGBchart_tabloid.pdf and /dev/null differ
diff --git a/6.2.0rc1/_downloads/bc8ef77a384576891629aafea817f88d/GMT_RGBchart_letter.pdf b/6.2.0rc1/_downloads/bc8ef77a384576891629aafea817f88d/GMT_RGBchart_letter.pdf
deleted file mode 100644
index 5a2ce32a719..00000000000
Binary files a/6.2.0rc1/_downloads/bc8ef77a384576891629aafea817f88d/GMT_RGBchart_letter.pdf and /dev/null differ
diff --git a/6.2.0rc1/_downloads/ef801362d57ad917caab91046983a94c/GMT_App_F_symbol_dingbats.pdf b/6.2.0rc1/_downloads/ef801362d57ad917caab91046983a94c/GMT_App_F_symbol_dingbats.pdf
deleted file mode 100644
index 2d94fe4385a..00000000000
Binary files a/6.2.0rc1/_downloads/ef801362d57ad917caab91046983a94c/GMT_App_F_symbol_dingbats.pdf and /dev/null differ
diff --git a/6.2.0rc1/_images/EarthByte_logo_small.png b/6.2.0rc1/_images/EarthByte_logo_small.png
deleted file mode 100644
index 3cabdf618cb..00000000000
Binary files a/6.2.0rc1/_images/EarthByte_logo_small.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT4_mode.png b/6.2.0rc1/_images/GMT4_mode.png
deleted file mode 100644
index 10c7102773e..00000000000
Binary files a/6.2.0rc1/_images/GMT4_mode.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT5_external.png b/6.2.0rc1/_images/GMT5_external.png
deleted file mode 100644
index ba40461c576..00000000000
Binary files a/6.2.0rc1/_images/GMT5_external.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT5_mode.png b/6.2.0rc1/_images/GMT5_mode.png
deleted file mode 100644
index e8e185329fe..00000000000
Binary files a/6.2.0rc1/_images/GMT5_mode.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT6_Summit_2019.jpg b/6.2.0rc1/_images/GMT6_Summit_2019.jpg
deleted file mode 100644
index 838556bea68..00000000000
Binary files a/6.2.0rc1/_images/GMT6_Summit_2019.jpg and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_custom.png b/6.2.0rc1/_images/GMT_-B_custom.png
deleted file mode 100644
index 9a1e4c2d275..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_custom.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_geo_1.png b/6.2.0rc1/_images/GMT_-B_geo_1.png
deleted file mode 100644
index a24cfcaf5d7..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_geo_1.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_geo_2.png b/6.2.0rc1/_images/GMT_-B_geo_2.png
deleted file mode 100644
index b0f6af920ed..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_geo_2.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_linear.png b/6.2.0rc1/_images/GMT_-B_linear.png
deleted file mode 100644
index 69e940707f4..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_linear.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_log.png b/6.2.0rc1/_images/GMT_-B_log.png
deleted file mode 100644
index 7a5dc5eb2e4..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_log.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_pow.png b/6.2.0rc1/_images/GMT_-B_pow.png
deleted file mode 100644
index 3e31ef2ccfc..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_pow.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_slanted.png b/6.2.0rc1/_images/GMT_-B_slanted.png
deleted file mode 100644
index cf4ed985299..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_slanted.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_time1.png b/6.2.0rc1/_images/GMT_-B_time1.png
deleted file mode 100644
index f2a55ccf873..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_time1.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_time2.png b/6.2.0rc1/_images/GMT_-B_time2.png
deleted file mode 100644
index c0ce417fae1..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_time2.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_time3.png b/6.2.0rc1/_images/GMT_-B_time3.png
deleted file mode 100644
index 65ff4969e65..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_time3.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_time4.png b/6.2.0rc1/_images/GMT_-B_time4.png
deleted file mode 100644
index c41b4c0d497..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_time4.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_time5.png b/6.2.0rc1/_images/GMT_-B_time5.png
deleted file mode 100644
index fe7de54917c..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_time5.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_time6.png b/6.2.0rc1/_images/GMT_-B_time6.png
deleted file mode 100644
index ecf5e02bba4..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_time6.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-B_time7.png b/6.2.0rc1/_images/GMT_-B_time7.png
deleted file mode 100644
index 344b1ab95cd..00000000000
Binary files a/6.2.0rc1/_images/GMT_-B_time7.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-J.png b/6.2.0rc1/_images/GMT_-J.png
deleted file mode 100644
index 88561245f23..00000000000
Binary files a/6.2.0rc1/_images/GMT_-J.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-R.png b/6.2.0rc1/_images/GMT_-R.png
deleted file mode 100644
index 36059430d4f..00000000000
Binary files a/6.2.0rc1/_images/GMT_-R.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-U.png b/6.2.0rc1/_images/GMT_-U.png
deleted file mode 100644
index fe184328cbb..00000000000
Binary files a/6.2.0rc1/_images/GMT_-U.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_-XY.png b/6.2.0rc1/_images/GMT_-XY.png
deleted file mode 100644
index 4bec131d399..00000000000
Binary files a/6.2.0rc1/_images/GMT_-XY.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_API_flow.png b/6.2.0rc1/_images/GMT_API_flow.png
deleted file mode 100644
index 6cc15dd8c30..00000000000
Binary files a/6.2.0rc1/_images/GMT_API_flow.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_API_use.png b/6.2.0rc1/_images/GMT_API_use.png
deleted file mode 100644
index 02ae41cf3a6..00000000000
Binary files a/6.2.0rc1/_images/GMT_API_use.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_E.png b/6.2.0rc1/_images/GMT_App_E.png
deleted file mode 100644
index 01064e22e60..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_E.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_F_stand+_iso+.png b/6.2.0rc1/_images/GMT_App_F_stand+_iso+.png
deleted file mode 100644
index 0345342f725..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_F_stand+_iso+.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_F_symbol_dingbats.png b/6.2.0rc1/_images/GMT_App_F_symbol_dingbats.png
deleted file mode 100644
index 5c73ad85a51..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_F_symbol_dingbats.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_G.png b/6.2.0rc1/_images/GMT_App_G.png
deleted file mode 100644
index 07c3b976502..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_G.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_J_1.png b/6.2.0rc1/_images/GMT_App_J_1.png
deleted file mode 100644
index 88ec227284b..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_J_1.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_J_2.png b/6.2.0rc1/_images/GMT_App_J_2.png
deleted file mode 100644
index 70d544cdb06..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_J_2.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_J_3.png b/6.2.0rc1/_images/GMT_App_J_3.png
deleted file mode 100644
index bdfbab59e82..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_J_3.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_K_1.png b/6.2.0rc1/_images/GMT_App_K_1.png
deleted file mode 100644
index a6e9fb1ec98..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_K_1.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_K_2.png b/6.2.0rc1/_images/GMT_App_K_2.png
deleted file mode 100644
index c59e1fb121c..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_K_2.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_K_3.png b/6.2.0rc1/_images/GMT_App_K_3.png
deleted file mode 100644
index add79ed57ae..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_K_3.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_K_4.png b/6.2.0rc1/_images/GMT_App_K_4.png
deleted file mode 100644
index afde3deb6fe..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_K_4.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_K_5.png b/6.2.0rc1/_images/GMT_App_K_5.png
deleted file mode 100644
index 8f3de234f89..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_K_5.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_M_1a.png b/6.2.0rc1/_images/GMT_App_M_1a.png
deleted file mode 100644
index 220c597f94a..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_M_1a.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_M_1b.png b/6.2.0rc1/_images/GMT_App_M_1b.png
deleted file mode 100644
index 19e25dce98a..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_M_1b.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_M_1c.png b/6.2.0rc1/_images/GMT_App_M_1c.png
deleted file mode 100644
index 56d3fca7f54..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_M_1c.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_M_1d.png b/6.2.0rc1/_images/GMT_App_M_1d.png
deleted file mode 100644
index 1a461c33900..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_M_1d.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_M_2.png b/6.2.0rc1/_images/GMT_App_M_2.png
deleted file mode 100644
index 06e70a252ea..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_M_2.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_N_1.png b/6.2.0rc1/_images/GMT_App_N_1.png
deleted file mode 100644
index 5ad76a0e576..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_N_1.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_O_1.png b/6.2.0rc1/_images/GMT_App_O_1.png
deleted file mode 100644
index 4c74a5127ac..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_O_1.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_O_2.png b/6.2.0rc1/_images/GMT_App_O_2.png
deleted file mode 100644
index 04cae3595d1..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_O_2.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_O_3.png b/6.2.0rc1/_images/GMT_App_O_3.png
deleted file mode 100644
index d1090c70d46..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_O_3.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_O_4.png b/6.2.0rc1/_images/GMT_App_O_4.png
deleted file mode 100644
index 1ad79a26129..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_O_4.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_O_5.png b/6.2.0rc1/_images/GMT_App_O_5.png
deleted file mode 100644
index b6f22cdd40b..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_O_5.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_O_6.png b/6.2.0rc1/_images/GMT_App_O_6.png
deleted file mode 100644
index 7994086ce4e..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_O_6.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_O_7.png b/6.2.0rc1/_images/GMT_App_O_7.png
deleted file mode 100644
index 1233e91aefc..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_O_7.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_O_8.png b/6.2.0rc1/_images/GMT_App_O_8.png
deleted file mode 100644
index 23744a699a9..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_O_8.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_App_O_9.png b/6.2.0rc1/_images/GMT_App_O_9.png
deleted file mode 100644
index 0a03e8482a1..00000000000
Binary files a/6.2.0rc1/_images/GMT_App_O_9.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_CPTscale.png b/6.2.0rc1/_images/GMT_CPTscale.png
deleted file mode 100644
index bc6bb31d606..00000000000
Binary files a/6.2.0rc1/_images/GMT_CPTscale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_Defaults_1a.png b/6.2.0rc1/_images/GMT_Defaults_1a.png
deleted file mode 100644
index 5fdfc30d291..00000000000
Binary files a/6.2.0rc1/_images/GMT_Defaults_1a.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_Defaults_1b.png b/6.2.0rc1/_images/GMT_Defaults_1b.png
deleted file mode 100644
index 1af41359370..00000000000
Binary files a/6.2.0rc1/_images/GMT_Defaults_1b.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_Defaults_1c.png b/6.2.0rc1/_images/GMT_Defaults_1c.png
deleted file mode 100644
index 165dd87d3f9..00000000000
Binary files a/6.2.0rc1/_images/GMT_Defaults_1c.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_Environment.png b/6.2.0rc1/_images/GMT_Environment.png
deleted file mode 100644
index ba1abf78097..00000000000
Binary files a/6.2.0rc1/_images/GMT_Environment.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_RGBchart.png b/6.2.0rc1/_images/GMT_RGBchart.png
deleted file mode 100644
index a384c068cfc..00000000000
Binary files a/6.2.0rc1/_images/GMT_RGBchart.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_SRTM.png b/6.2.0rc1/_images/GMT_SRTM.png
deleted file mode 100644
index 6801fb8d9de..00000000000
Binary files a/6.2.0rc1/_images/GMT_SRTM.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_TM.png b/6.2.0rc1/_images/GMT_TM.png
deleted file mode 100644
index 51ffc7b8f7c..00000000000
Binary files a/6.2.0rc1/_images/GMT_TM.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_agefig.png b/6.2.0rc1/_images/GMT_agefig.png
deleted file mode 100644
index 131813f2a2d..00000000000
Binary files a/6.2.0rc1/_images/GMT_agefig.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_albers.png b/6.2.0rc1/_images/GMT_albers.png
deleted file mode 100644
index ffe10fcd960..00000000000
Binary files a/6.2.0rc1/_images/GMT_albers.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_anchor.png b/6.2.0rc1/_images/GMT_anchor.png
deleted file mode 100644
index c501ae63846..00000000000
Binary files a/6.2.0rc1/_images/GMT_anchor.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_arrows.png b/6.2.0rc1/_images/GMT_arrows.png
deleted file mode 100644
index 16166564d38..00000000000
Binary files a/6.2.0rc1/_images/GMT_arrows.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_arrows_types.png b/6.2.0rc1/_images/GMT_arrows_types.png
deleted file mode 100644
index 2f7a812a911..00000000000
Binary files a/6.2.0rc1/_images/GMT_arrows_types.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_atan.png b/6.2.0rc1/_images/GMT_atan.png
deleted file mode 100644
index ff4cc9b32e0..00000000000
Binary files a/6.2.0rc1/_images/GMT_atan.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_autolegend.png b/6.2.0rc1/_images/GMT_autolegend.png
deleted file mode 100644
index fcf4be12ff6..00000000000
Binary files a/6.2.0rc1/_images/GMT_autolegend.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_az_equidistant.png b/6.2.0rc1/_images/GMT_az_equidistant.png
deleted file mode 100644
index 9dafc8422d9..00000000000
Binary files a/6.2.0rc1/_images/GMT_az_equidistant.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_base_symbols1.png b/6.2.0rc1/_images/GMT_base_symbols1.png
deleted file mode 100644
index 131a6b06c87..00000000000
Binary files a/6.2.0rc1/_images/GMT_base_symbols1.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_base_symbols2.png b/6.2.0rc1/_images/GMT_base_symbols2.png
deleted file mode 100644
index 0b0f3966811..00000000000
Binary files a/6.2.0rc1/_images/GMT_base_symbols2.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_base_symbols3.png b/6.2.0rc1/_images/GMT_base_symbols3.png
deleted file mode 100644
index 5adef1ab30f..00000000000
Binary files a/6.2.0rc1/_images/GMT_base_symbols3.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_base_symbols3D.png b/6.2.0rc1/_images/GMT_base_symbols3D.png
deleted file mode 100644
index f9869b66972..00000000000
Binary files a/6.2.0rc1/_images/GMT_base_symbols3D.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_base_symbols4.png b/6.2.0rc1/_images/GMT_base_symbols4.png
deleted file mode 100644
index 0715720e39d..00000000000
Binary files a/6.2.0rc1/_images/GMT_base_symbols4.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_base_symbols5.png b/6.2.0rc1/_images/GMT_base_symbols5.png
deleted file mode 100644
index 4f266050579..00000000000
Binary files a/6.2.0rc1/_images/GMT_base_symbols5.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_base_symbols6.png b/6.2.0rc1/_images/GMT_base_symbols6.png
deleted file mode 100644
index c0b0e4c8342..00000000000
Binary files a/6.2.0rc1/_images/GMT_base_symbols6.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_base_symbols7.png b/6.2.0rc1/_images/GMT_base_symbols7.png
deleted file mode 100644
index 38c17de775c..00000000000
Binary files a/6.2.0rc1/_images/GMT_base_symbols7.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_base_symbols8.png b/6.2.0rc1/_images/GMT_base_symbols8.png
deleted file mode 100644
index 60983372055..00000000000
Binary files a/6.2.0rc1/_images/GMT_base_symbols8.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_base_symbols9.png b/6.2.0rc1/_images/GMT_base_symbols9.png
deleted file mode 100644
index 9ab209ed073..00000000000
Binary files a/6.2.0rc1/_images/GMT_base_symbols9.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_bezier.png b/6.2.0rc1/_images/GMT_bezier.png
deleted file mode 100644
index a8d6006f972..00000000000
Binary files a/6.2.0rc1/_images/GMT_bezier.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_cap.png b/6.2.0rc1/_images/GMT_cap.png
deleted file mode 100644
index dcb98a9a251..00000000000
Binary files a/6.2.0rc1/_images/GMT_cap.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_cassini.png b/6.2.0rc1/_images/GMT_cassini.png
deleted file mode 100644
index 337782d72e6..00000000000
Binary files a/6.2.0rc1/_images/GMT_cassini.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_chunking.png b/6.2.0rc1/_images/GMT_chunking.png
deleted file mode 100644
index 9409e083286..00000000000
Binary files a/6.2.0rc1/_images/GMT_chunking.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_cmyk.png b/6.2.0rc1/_images/GMT_cmyk.png
deleted file mode 100644
index 3b122a77e0e..00000000000
Binary files a/6.2.0rc1/_images/GMT_cmyk.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_color_hsv.png b/6.2.0rc1/_images/GMT_color_hsv.png
deleted file mode 100644
index 6f49636be7e..00000000000
Binary files a/6.2.0rc1/_images/GMT_color_hsv.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_color_interpolate.png b/6.2.0rc1/_images/GMT_color_interpolate.png
deleted file mode 100644
index 3ef709a46c1..00000000000
Binary files a/6.2.0rc1/_images/GMT_color_interpolate.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_colorbar.png b/6.2.0rc1/_images/GMT_colorbar.png
deleted file mode 100644
index e2d107163e4..00000000000
Binary files a/6.2.0rc1/_images/GMT_colorbar.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_colorlist.png b/6.2.0rc1/_images/GMT_colorlist.png
deleted file mode 100644
index adc805a9fba..00000000000
Binary files a/6.2.0rc1/_images/GMT_colorlist.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_coverlogo.png b/6.2.0rc1/_images/GMT_coverlogo.png
deleted file mode 100644
index f2f7ee3c955..00000000000
Binary files a/6.2.0rc1/_images/GMT_coverlogo.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_cycle_1.png b/6.2.0rc1/_images/GMT_cycle_1.png
deleted file mode 100644
index 471e10c4d74..00000000000
Binary files a/6.2.0rc1/_images/GMT_cycle_1.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_cycle_2.png b/6.2.0rc1/_images/GMT_cycle_2.png
deleted file mode 100644
index 50ac5158b53..00000000000
Binary files a/6.2.0rc1/_images/GMT_cycle_2.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_cycle_3.png b/6.2.0rc1/_images/GMT_cycle_3.png
deleted file mode 100644
index ffcea137363..00000000000
Binary files a/6.2.0rc1/_images/GMT_cycle_3.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_cycle_4.png b/6.2.0rc1/_images/GMT_cycle_4.png
deleted file mode 100644
index 11a0f306dda..00000000000
Binary files a/6.2.0rc1/_images/GMT_cycle_4.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_cycle_5.png b/6.2.0rc1/_images/GMT_cycle_5.png
deleted file mode 100644
index 314eb849bb0..00000000000
Binary files a/6.2.0rc1/_images/GMT_cycle_5.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_cycle_6.png b/6.2.0rc1/_images/GMT_cycle_6.png
deleted file mode 100644
index ca77f46b392..00000000000
Binary files a/6.2.0rc1/_images/GMT_cycle_6.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_cyclic.png b/6.2.0rc1/_images/GMT_cyclic.png
deleted file mode 100644
index 3813d0b6eaa..00000000000
Binary files a/6.2.0rc1/_images/GMT_cyclic.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_dir_rose.png b/6.2.0rc1/_images/GMT_dir_rose.png
deleted file mode 100644
index 69498b4a1be..00000000000
Binary files a/6.2.0rc1/_images/GMT_dir_rose.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_earthmask.png b/6.2.0rc1/_images/GMT_earthmask.png
deleted file mode 100644
index 02340c5b2a6..00000000000
Binary files a/6.2.0rc1/_images/GMT_earthmask.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_eckert4.png b/6.2.0rc1/_images/GMT_eckert4.png
deleted file mode 100644
index cf04f40e74a..00000000000
Binary files a/6.2.0rc1/_images/GMT_eckert4.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_eckert6.png b/6.2.0rc1/_images/GMT_eckert6.png
deleted file mode 100644
index 6603da1a6de..00000000000
Binary files a/6.2.0rc1/_images/GMT_eckert6.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_equi_cyl.png b/6.2.0rc1/_images/GMT_equi_cyl.png
deleted file mode 100644
index 04c1e4263af..00000000000
Binary files a/6.2.0rc1/_images/GMT_equi_cyl.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_equidistant_conic.png b/6.2.0rc1/_images/GMT_equidistant_conic.png
deleted file mode 100644
index 4c53ce69bf5..00000000000
Binary files a/6.2.0rc1/_images/GMT_equidistant_conic.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_fatline.png b/6.2.0rc1/_images/GMT_fatline.png
deleted file mode 100644
index edea659f494..00000000000
Binary files a/6.2.0rc1/_images/GMT_fatline.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_gall_stereo.png b/6.2.0rc1/_images/GMT_gall_stereo.png
deleted file mode 100644
index 89d8de1a533..00000000000
Binary files a/6.2.0rc1/_images/GMT_gall_stereo.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_general_cyl.png b/6.2.0rc1/_images/GMT_general_cyl.png
deleted file mode 100644
index d1899083c4b..00000000000
Binary files a/6.2.0rc1/_images/GMT_general_cyl.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_gnomonic.png b/6.2.0rc1/_images/GMT_gnomonic.png
deleted file mode 100644
index 07a12399e1c..00000000000
Binary files a/6.2.0rc1/_images/GMT_gnomonic.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_grid2pix.png b/6.2.0rc1/_images/GMT_grid2pix.png
deleted file mode 100644
index 8a2f3876226..00000000000
Binary files a/6.2.0rc1/_images/GMT_grid2pix.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_grinten.png b/6.2.0rc1/_images/GMT_grinten.png
deleted file mode 100644
index 1d3fc20a613..00000000000
Binary files a/6.2.0rc1/_images/GMT_grinten.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_hammer.png b/6.2.0rc1/_images/GMT_hammer.png
deleted file mode 100644
index f13c8aa89b3..00000000000
Binary files a/6.2.0rc1/_images/GMT_hammer.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_hinge.png b/6.2.0rc1/_images/GMT_hinge.png
deleted file mode 100644
index ae1c562b1cc..00000000000
Binary files a/6.2.0rc1/_images/GMT_hinge.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_images.png b/6.2.0rc1/_images/GMT_images.png
deleted file mode 100644
index a222b1ca6bd..00000000000
Binary files a/6.2.0rc1/_images/GMT_images.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_inset.png b/6.2.0rc1/_images/GMT_inset.png
deleted file mode 100644
index 441fac5feae..00000000000
Binary files a/6.2.0rc1/_images/GMT_inset.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_joint.png b/6.2.0rc1/_images/GMT_joint.png
deleted file mode 100644
index 801c3f2b01f..00000000000
Binary files a/6.2.0rc1/_images/GMT_joint.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_lambert_az_hemi.png b/6.2.0rc1/_images/GMT_lambert_az_hemi.png
deleted file mode 100644
index d3ad0452eb6..00000000000
Binary files a/6.2.0rc1/_images/GMT_lambert_az_hemi.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_lambert_az_rect.png b/6.2.0rc1/_images/GMT_lambert_az_rect.png
deleted file mode 100644
index 489c3139bf0..00000000000
Binary files a/6.2.0rc1/_images/GMT_lambert_az_rect.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_lambert_conic.png b/6.2.0rc1/_images/GMT_lambert_conic.png
deleted file mode 100644
index b7025175171..00000000000
Binary files a/6.2.0rc1/_images/GMT_lambert_conic.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_latex.png b/6.2.0rc1/_images/GMT_latex.png
deleted file mode 100644
index 08ad40e9a0e..00000000000
Binary files a/6.2.0rc1/_images/GMT_latex.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_legend.png b/6.2.0rc1/_images/GMT_legend.png
deleted file mode 100644
index 9c97d283976..00000000000
Binary files a/6.2.0rc1/_images/GMT_legend.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_linear.png b/6.2.0rc1/_images/GMT_linear.png
deleted file mode 100644
index e5614d484b8..00000000000
Binary files a/6.2.0rc1/_images/GMT_linear.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_linear_cal.png b/6.2.0rc1/_images/GMT_linear_cal.png
deleted file mode 100644
index eeb7886cfad..00000000000
Binary files a/6.2.0rc1/_images/GMT_linear_cal.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_linear_d.png b/6.2.0rc1/_images/GMT_linear_d.png
deleted file mode 100644
index 418af9ae55b..00000000000
Binary files a/6.2.0rc1/_images/GMT_linear_d.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_linearrow.png b/6.2.0rc1/_images/GMT_linearrow.png
deleted file mode 100644
index 9868818e7bb..00000000000
Binary files a/6.2.0rc1/_images/GMT_linearrow.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_linecap.png b/6.2.0rc1/_images/GMT_linecap.png
deleted file mode 100644
index 8b240841c6f..00000000000
Binary files a/6.2.0rc1/_images/GMT_linecap.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_lineoffset.png b/6.2.0rc1/_images/GMT_lineoffset.png
deleted file mode 100644
index 106940737bf..00000000000
Binary files a/6.2.0rc1/_images/GMT_lineoffset.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_log.png b/6.2.0rc1/_images/GMT_log.png
deleted file mode 100644
index 25176a141a1..00000000000
Binary files a/6.2.0rc1/_images/GMT_log.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_mag_rose.png b/6.2.0rc1/_images/GMT_mag_rose.png
deleted file mode 100644
index e75c7e8651a..00000000000
Binary files a/6.2.0rc1/_images/GMT_mag_rose.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_map_frame_type.png b/6.2.0rc1/_images/GMT_map_frame_type.png
deleted file mode 100644
index 374878cb75d..00000000000
Binary files a/6.2.0rc1/_images/GMT_map_frame_type.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_mapscale.png b/6.2.0rc1/_images/GMT_mapscale.png
deleted file mode 100644
index 57ed6a5ceb6..00000000000
Binary files a/6.2.0rc1/_images/GMT_mapscale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_mercator.png b/6.2.0rc1/_images/GMT_mercator.png
deleted file mode 100644
index a6ebab3122e..00000000000
Binary files a/6.2.0rc1/_images/GMT_mercator.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_miller.png b/6.2.0rc1/_images/GMT_miller.png
deleted file mode 100644
index a50b2012aeb..00000000000
Binary files a/6.2.0rc1/_images/GMT_miller.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_misfit.png b/6.2.0rc1/_images/GMT_misfit.png
deleted file mode 100644
index 1790aa0afd8..00000000000
Binary files a/6.2.0rc1/_images/GMT_misfit.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_mollweide.png b/6.2.0rc1/_images/GMT_mollweide.png
deleted file mode 100644
index 650133e4079..00000000000
Binary files a/6.2.0rc1/_images/GMT_mollweide.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_movie_canvas.png b/6.2.0rc1/_images/GMT_movie_canvas.png
deleted file mode 100644
index 310afe79ab2..00000000000
Binary files a/6.2.0rc1/_images/GMT_movie_canvas.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_movie_progress.png b/6.2.0rc1/_images/GMT_movie_progress.png
deleted file mode 100644
index 5d5427901e9..00000000000
Binary files a/6.2.0rc1/_images/GMT_movie_progress.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_nearneighbor.png b/6.2.0rc1/_images/GMT_nearneighbor.png
deleted file mode 100644
index 9843f2bae1c..00000000000
Binary files a/6.2.0rc1/_images/GMT_nearneighbor.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_obl_baja.png b/6.2.0rc1/_images/GMT_obl_baja.png
deleted file mode 100644
index e0d22147ba4..00000000000
Binary files a/6.2.0rc1/_images/GMT_obl_baja.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_obl_merc.png b/6.2.0rc1/_images/GMT_obl_merc.png
deleted file mode 100644
index 2daf7eec866..00000000000
Binary files a/6.2.0rc1/_images/GMT_obl_merc.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_obl_nz.png b/6.2.0rc1/_images/GMT_obl_nz.png
deleted file mode 100644
index 27672f48589..00000000000
Binary files a/6.2.0rc1/_images/GMT_obl_nz.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_orthographic.png b/6.2.0rc1/_images/GMT_orthographic.png
deleted file mode 100644
index 8e49bdc2254..00000000000
Binary files a/6.2.0rc1/_images/GMT_orthographic.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_panel.png b/6.2.0rc1/_images/GMT_panel.png
deleted file mode 100644
index a3d3ce7d265..00000000000
Binary files a/6.2.0rc1/_images/GMT_panel.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_perspective.png b/6.2.0rc1/_images/GMT_perspective.png
deleted file mode 100644
index b6ebc39f857..00000000000
Binary files a/6.2.0rc1/_images/GMT_perspective.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_polar.png b/6.2.0rc1/_images/GMT_polar.png
deleted file mode 100644
index c45b64bd577..00000000000
Binary files a/6.2.0rc1/_images/GMT_polar.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_polyconic.png b/6.2.0rc1/_images/GMT_polyconic.png
deleted file mode 100644
index f06c983ce8b..00000000000
Binary files a/6.2.0rc1/_images/GMT_polyconic.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_pow.png b/6.2.0rc1/_images/GMT_pow.png
deleted file mode 100644
index 24e5f7ca7e3..00000000000
Binary files a/6.2.0rc1/_images/GMT_pow.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_pstext_clearance.png b/6.2.0rc1/_images/GMT_pstext_clearance.png
deleted file mode 100644
index a24f28ae47b..00000000000
Binary files a/6.2.0rc1/_images/GMT_pstext_clearance.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_pstext_justify.png b/6.2.0rc1/_images/GMT_pstext_justify.png
deleted file mode 100644
index 12b3a7cf07d..00000000000
Binary files a/6.2.0rc1/_images/GMT_pstext_justify.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_record.png b/6.2.0rc1/_images/GMT_record.png
deleted file mode 100644
index 5cf1cffc425..00000000000
Binary files a/6.2.0rc1/_images/GMT_record.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_registration.png b/6.2.0rc1/_images/GMT_registration.png
deleted file mode 100644
index 96ac218a697..00000000000
Binary files a/6.2.0rc1/_images/GMT_registration.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_robinson.png b/6.2.0rc1/_images/GMT_robinson.png
deleted file mode 100644
index 4154682c23d..00000000000
Binary files a/6.2.0rc1/_images/GMT_robinson.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_seamount_cum_inc.png b/6.2.0rc1/_images/GMT_seamount_cum_inc.png
deleted file mode 100644
index cab46b4135a..00000000000
Binary files a/6.2.0rc1/_images/GMT_seamount_cum_inc.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_seamount_flux.png b/6.2.0rc1/_images/GMT_seamount_flux.png
deleted file mode 100644
index d9316e9b703..00000000000
Binary files a/6.2.0rc1/_images/GMT_seamount_flux.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_seamount_map.png b/6.2.0rc1/_images/GMT_seamount_map.png
deleted file mode 100644
index 452af543c77..00000000000
Binary files a/6.2.0rc1/_images/GMT_seamount_map.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_seamount_types.png b/6.2.0rc1/_images/GMT_seamount_types.png
deleted file mode 100644
index f7fc6547953..00000000000
Binary files a/6.2.0rc1/_images/GMT_seamount_types.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_seislegend.png b/6.2.0rc1/_images/GMT_seislegend.png
deleted file mode 100644
index d81ebd25f04..00000000000
Binary files a/6.2.0rc1/_images/GMT_seislegend.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_sinus_int.png b/6.2.0rc1/_images/GMT_sinus_int.png
deleted file mode 100644
index 9358e3d638e..00000000000
Binary files a/6.2.0rc1/_images/GMT_sinus_int.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_sinusoidal.png b/6.2.0rc1/_images/GMT_sinusoidal.png
deleted file mode 100644
index e615b0fd11c..00000000000
Binary files a/6.2.0rc1/_images/GMT_sinusoidal.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_slope2intensity.png b/6.2.0rc1/_images/GMT_slope2intensity.png
deleted file mode 100644
index 47195693f95..00000000000
Binary files a/6.2.0rc1/_images/GMT_slope2intensity.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_slopes.png b/6.2.0rc1/_images/GMT_slopes.png
deleted file mode 100644
index a4de8fed8a2..00000000000
Binary files a/6.2.0rc1/_images/GMT_slopes.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_stereographic_general.png b/6.2.0rc1/_images/GMT_stereographic_general.png
deleted file mode 100644
index 1252a3f2a96..00000000000
Binary files a/6.2.0rc1/_images/GMT_stereographic_general.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_stereographic_polar.png b/6.2.0rc1/_images/GMT_stereographic_polar.png
deleted file mode 100644
index 203db9e239f..00000000000
Binary files a/6.2.0rc1/_images/GMT_stereographic_polar.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_stereographic_rect.png b/6.2.0rc1/_images/GMT_stereographic_rect.png
deleted file mode 100644
index 98919a0c479..00000000000
Binary files a/6.2.0rc1/_images/GMT_stereographic_rect.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_stereonets.png b/6.2.0rc1/_images/GMT_stereonets.png
deleted file mode 100644
index 1f3d5c39f76..00000000000
Binary files a/6.2.0rc1/_images/GMT_stereonets.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_title_fade.png b/6.2.0rc1/_images/GMT_title_fade.png
deleted file mode 100644
index db3cc4ae28a..00000000000
Binary files a/6.2.0rc1/_images/GMT_title_fade.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_transverse_merc.png b/6.2.0rc1/_images/GMT_transverse_merc.png
deleted file mode 100644
index c5808ccf453..00000000000
Binary files a/6.2.0rc1/_images/GMT_transverse_merc.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_1.png b/6.2.0rc1/_images/GMT_tut_1.png
deleted file mode 100644
index 02c072ab0a6..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_1.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_10.png b/6.2.0rc1/_images/GMT_tut_10.png
deleted file mode 100644
index 785e89082da..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_10.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_11.png b/6.2.0rc1/_images/GMT_tut_11.png
deleted file mode 100644
index 9f682f473f4..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_11.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_12.png b/6.2.0rc1/_images/GMT_tut_12.png
deleted file mode 100644
index 782ea7f61c2..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_12.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_13.png b/6.2.0rc1/_images/GMT_tut_13.png
deleted file mode 100644
index 43941f0411a..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_13.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_14.png b/6.2.0rc1/_images/GMT_tut_14.png
deleted file mode 100644
index e27e7dcfe53..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_14.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_15.png b/6.2.0rc1/_images/GMT_tut_15.png
deleted file mode 100644
index 8f1629de810..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_15.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_16.png b/6.2.0rc1/_images/GMT_tut_16.png
deleted file mode 100644
index 551738842de..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_16.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_17.png b/6.2.0rc1/_images/GMT_tut_17.png
deleted file mode 100644
index eac126ca9d6..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_17.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_18.png b/6.2.0rc1/_images/GMT_tut_18.png
deleted file mode 100644
index 9b4fa19cc4a..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_18.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_19.png b/6.2.0rc1/_images/GMT_tut_19.png
deleted file mode 100644
index 412fd992a12..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_19.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_2.png b/6.2.0rc1/_images/GMT_tut_2.png
deleted file mode 100644
index 0ba863f8308..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_2.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_3.png b/6.2.0rc1/_images/GMT_tut_3.png
deleted file mode 100644
index a866a85677e..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_3.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_4.png b/6.2.0rc1/_images/GMT_tut_4.png
deleted file mode 100644
index 9540b97b2bb..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_4.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_5.png b/6.2.0rc1/_images/GMT_tut_5.png
deleted file mode 100644
index 1cafa80eb2a..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_5.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_6.png b/6.2.0rc1/_images/GMT_tut_6.png
deleted file mode 100644
index cbc8ff5e7a2..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_6.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_7.png b/6.2.0rc1/_images/GMT_tut_7.png
deleted file mode 100644
index 8c56ce2d87f..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_7.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_8.png b/6.2.0rc1/_images/GMT_tut_8.png
deleted file mode 100644
index 43e4ffa4ffd..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_8.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_tut_9.png b/6.2.0rc1/_images/GMT_tut_9.png
deleted file mode 100644
index c6add35fc1f..00000000000
Binary files a/6.2.0rc1/_images/GMT_tut_9.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_utm_zones.png b/6.2.0rc1/_images/GMT_utm_zones.png
deleted file mode 100644
index 485735f1706..00000000000
Binary files a/6.2.0rc1/_images/GMT_utm_zones.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_vector.png b/6.2.0rc1/_images/GMT_vector.png
deleted file mode 100644
index 7492310223f..00000000000
Binary files a/6.2.0rc1/_images/GMT_vector.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_vector4.png b/6.2.0rc1/_images/GMT_vector4.png
deleted file mode 100644
index e10d1d5e2a0..00000000000
Binary files a/6.2.0rc1/_images/GMT_vector4.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_vertscale.png b/6.2.0rc1/_images/GMT_vertscale.png
deleted file mode 100644
index 0d4668501ae..00000000000
Binary files a/6.2.0rc1/_images/GMT_vertscale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_volcano.png b/6.2.0rc1/_images/GMT_volcano.png
deleted file mode 100644
index a0a06b84bfb..00000000000
Binary files a/6.2.0rc1/_images/GMT_volcano.png and /dev/null differ
diff --git a/6.2.0rc1/_images/GMT_winkel.png b/6.2.0rc1/_images/GMT_winkel.png
deleted file mode 100644
index 12c9b5c8d7b..00000000000
Binary files a/6.2.0rc1/_images/GMT_winkel.png and /dev/null differ
diff --git a/6.2.0rc1/_images/anim01.gif b/6.2.0rc1/_images/anim01.gif
deleted file mode 100644
index 57356a09c60..00000000000
Binary files a/6.2.0rc1/_images/anim01.gif and /dev/null differ
diff --git a/6.2.0rc1/_images/anim02.gif b/6.2.0rc1/_images/anim02.gif
deleted file mode 100644
index f9ab8bd0d6f..00000000000
Binary files a/6.2.0rc1/_images/anim02.gif and /dev/null differ
diff --git a/6.2.0rc1/_images/anim03.gif b/6.2.0rc1/_images/anim03.gif
deleted file mode 100644
index 578ddfde4fb..00000000000
Binary files a/6.2.0rc1/_images/anim03.gif and /dev/null differ
diff --git a/6.2.0rc1/_images/anim04.gif b/6.2.0rc1/_images/anim04.gif
deleted file mode 100644
index 6c423620653..00000000000
Binary files a/6.2.0rc1/_images/anim04.gif and /dev/null differ
diff --git a/6.2.0rc1/_images/anim04.png b/6.2.0rc1/_images/anim04.png
deleted file mode 100644
index 64ecc99dfd6..00000000000
Binary files a/6.2.0rc1/_images/anim04.png and /dev/null differ
diff --git a/6.2.0rc1/_images/anim05.gif b/6.2.0rc1/_images/anim05.gif
deleted file mode 100644
index 71ef8bcacae..00000000000
Binary files a/6.2.0rc1/_images/anim05.gif and /dev/null differ
diff --git a/6.2.0rc1/_images/atlantwhitesided.png b/6.2.0rc1/_images/atlantwhitesided.png
deleted file mode 100644
index 4e1af06dbd0..00000000000
Binary files a/6.2.0rc1/_images/atlantwhitesided.png and /dev/null differ
diff --git a/6.2.0rc1/_images/atlantwhitesided_high.png b/6.2.0rc1/_images/atlantwhitesided_high.png
deleted file mode 100644
index e5087159595..00000000000
Binary files a/6.2.0rc1/_images/atlantwhitesided_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/atlantwhitesided_low.png b/6.2.0rc1/_images/atlantwhitesided_low.png
deleted file mode 100644
index 560ba61eb30..00000000000
Binary files a/6.2.0rc1/_images/atlantwhitesided_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/beluga.png b/6.2.0rc1/_images/beluga.png
deleted file mode 100644
index b955cf84d88..00000000000
Binary files a/6.2.0rc1/_images/beluga.png and /dev/null differ
diff --git a/6.2.0rc1/_images/beluga_high.png b/6.2.0rc1/_images/beluga_high.png
deleted file mode 100644
index 26a989ea0af..00000000000
Binary files a/6.2.0rc1/_images/beluga_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/beluga_low.png b/6.2.0rc1/_images/beluga_low.png
deleted file mode 100644
index 35736af8667..00000000000
Binary files a/6.2.0rc1/_images/beluga_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/bottlenose.png b/6.2.0rc1/_images/bottlenose.png
deleted file mode 100644
index c44035b1988..00000000000
Binary files a/6.2.0rc1/_images/bottlenose.png and /dev/null differ
diff --git a/6.2.0rc1/_images/bottlenose_high.png b/6.2.0rc1/_images/bottlenose_high.png
deleted file mode 100644
index cadcd05b5f2..00000000000
Binary files a/6.2.0rc1/_images/bottlenose_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/bottlenose_low.png b/6.2.0rc1/_images/bottlenose_low.png
deleted file mode 100644
index c18acbf5286..00000000000
Binary files a/6.2.0rc1/_images/bottlenose_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/bowhead.png b/6.2.0rc1/_images/bowhead.png
deleted file mode 100644
index 7fe0eb06d31..00000000000
Binary files a/6.2.0rc1/_images/bowhead.png and /dev/null differ
diff --git a/6.2.0rc1/_images/bowhead_high.png b/6.2.0rc1/_images/bowhead_high.png
deleted file mode 100644
index e9677bf275e..00000000000
Binary files a/6.2.0rc1/_images/bowhead_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/bowhead_low.png b/6.2.0rc1/_images/bowhead_low.png
deleted file mode 100644
index cfaa0996580..00000000000
Binary files a/6.2.0rc1/_images/bowhead_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/burmeistersporpoise.png b/6.2.0rc1/_images/burmeistersporpoise.png
deleted file mode 100644
index 9eaba397538..00000000000
Binary files a/6.2.0rc1/_images/burmeistersporpoise.png and /dev/null differ
diff --git a/6.2.0rc1/_images/burmeistersporpoise_high.png b/6.2.0rc1/_images/burmeistersporpoise_high.png
deleted file mode 100644
index edbea49ce59..00000000000
Binary files a/6.2.0rc1/_images/burmeistersporpoise_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/burmeistersporpoise_low.png b/6.2.0rc1/_images/burmeistersporpoise_low.png
deleted file mode 100644
index 7142b2eb9dd..00000000000
Binary files a/6.2.0rc1/_images/burmeistersporpoise_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/commondolphin.png b/6.2.0rc1/_images/commondolphin.png
deleted file mode 100644
index d018d2bceb0..00000000000
Binary files a/6.2.0rc1/_images/commondolphin.png and /dev/null differ
diff --git a/6.2.0rc1/_images/commondolphin_high.png b/6.2.0rc1/_images/commondolphin_high.png
deleted file mode 100644
index 80687a8ff0b..00000000000
Binary files a/6.2.0rc1/_images/commondolphin_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/commondolphin_low.png b/6.2.0rc1/_images/commondolphin_low.png
deleted file mode 100644
index 598570ed9c0..00000000000
Binary files a/6.2.0rc1/_images/commondolphin_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/commondolphin_midhigh.png b/6.2.0rc1/_images/commondolphin_midhigh.png
deleted file mode 100644
index 680a25eb5ed..00000000000
Binary files a/6.2.0rc1/_images/commondolphin_midhigh.png and /dev/null differ
diff --git a/6.2.0rc1/_images/commondolphin_midlow.png b/6.2.0rc1/_images/commondolphin_midlow.png
deleted file mode 100644
index 9e813d13f77..00000000000
Binary files a/6.2.0rc1/_images/commondolphin_midlow.png and /dev/null differ
diff --git a/6.2.0rc1/_images/commonporpoise.png b/6.2.0rc1/_images/commonporpoise.png
deleted file mode 100644
index 0c4db45fd57..00000000000
Binary files a/6.2.0rc1/_images/commonporpoise.png and /dev/null differ
diff --git a/6.2.0rc1/_images/commonporpoise_high.png b/6.2.0rc1/_images/commonporpoise_high.png
deleted file mode 100644
index cb6b567a23d..00000000000
Binary files a/6.2.0rc1/_images/commonporpoise_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/commonporpoise_low.png b/6.2.0rc1/_images/commonporpoise_low.png
deleted file mode 100644
index a503cdaafb2..00000000000
Binary files a/6.2.0rc1/_images/commonporpoise_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/cuviersbeaked.png b/6.2.0rc1/_images/cuviersbeaked.png
deleted file mode 100644
index 38bbeebbff0..00000000000
Binary files a/6.2.0rc1/_images/cuviersbeaked.png and /dev/null differ
diff --git a/6.2.0rc1/_images/cuviersbeaked_high.png b/6.2.0rc1/_images/cuviersbeaked_high.png
deleted file mode 100644
index 70afd5a088b..00000000000
Binary files a/6.2.0rc1/_images/cuviersbeaked_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/cuviersbeaked_low.png b/6.2.0rc1/_images/cuviersbeaked_low.png
deleted file mode 100644
index 1ddc7917bef..00000000000
Binary files a/6.2.0rc1/_images/cuviersbeaked_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/daynight.jpg b/6.2.0rc1/_images/daynight.jpg
deleted file mode 100644
index db546cc7563..00000000000
Binary files a/6.2.0rc1/_images/daynight.jpg and /dev/null differ
diff --git a/6.2.0rc1/_images/dcw-figure.png b/6.2.0rc1/_images/dcw-figure.png
deleted file mode 100644
index 03fa7396d42..00000000000
Binary files a/6.2.0rc1/_images/dcw-figure.png and /dev/null differ
diff --git a/6.2.0rc1/_images/dem.jpg b/6.2.0rc1/_images/dem.jpg
deleted file mode 100644
index d4dc576e0a3..00000000000
Binary files a/6.2.0rc1/_images/dem.jpg and /dev/null differ
diff --git a/6.2.0rc1/_images/ex01.png b/6.2.0rc1/_images/ex01.png
deleted file mode 100644
index f54f5ee9bac..00000000000
Binary files a/6.2.0rc1/_images/ex01.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex02.png b/6.2.0rc1/_images/ex02.png
deleted file mode 100644
index 6f8297a3159..00000000000
Binary files a/6.2.0rc1/_images/ex02.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex03.png b/6.2.0rc1/_images/ex03.png
deleted file mode 100644
index fd633a321c1..00000000000
Binary files a/6.2.0rc1/_images/ex03.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex04.png b/6.2.0rc1/_images/ex04.png
deleted file mode 100644
index fbd2796b177..00000000000
Binary files a/6.2.0rc1/_images/ex04.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex05.png b/6.2.0rc1/_images/ex05.png
deleted file mode 100644
index 2416d493023..00000000000
Binary files a/6.2.0rc1/_images/ex05.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex06.png b/6.2.0rc1/_images/ex06.png
deleted file mode 100644
index 7807e4ce97e..00000000000
Binary files a/6.2.0rc1/_images/ex06.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex07.png b/6.2.0rc1/_images/ex07.png
deleted file mode 100644
index 6166e23b3b7..00000000000
Binary files a/6.2.0rc1/_images/ex07.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex08.png b/6.2.0rc1/_images/ex08.png
deleted file mode 100644
index 97ce4e76570..00000000000
Binary files a/6.2.0rc1/_images/ex08.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex09.png b/6.2.0rc1/_images/ex09.png
deleted file mode 100644
index 0e3e7c2204b..00000000000
Binary files a/6.2.0rc1/_images/ex09.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex10.png b/6.2.0rc1/_images/ex10.png
deleted file mode 100644
index d589a0d51c4..00000000000
Binary files a/6.2.0rc1/_images/ex10.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex11.png b/6.2.0rc1/_images/ex11.png
deleted file mode 100644
index 25208ff4629..00000000000
Binary files a/6.2.0rc1/_images/ex11.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex12.png b/6.2.0rc1/_images/ex12.png
deleted file mode 100644
index 34849b38c46..00000000000
Binary files a/6.2.0rc1/_images/ex12.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex13.png b/6.2.0rc1/_images/ex13.png
deleted file mode 100644
index 28af440db68..00000000000
Binary files a/6.2.0rc1/_images/ex13.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex14.png b/6.2.0rc1/_images/ex14.png
deleted file mode 100644
index 387a8d504f4..00000000000
Binary files a/6.2.0rc1/_images/ex14.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex15.png b/6.2.0rc1/_images/ex15.png
deleted file mode 100644
index f468adac8a8..00000000000
Binary files a/6.2.0rc1/_images/ex15.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex16.png b/6.2.0rc1/_images/ex16.png
deleted file mode 100644
index 5486c8266ca..00000000000
Binary files a/6.2.0rc1/_images/ex16.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex17.png b/6.2.0rc1/_images/ex17.png
deleted file mode 100644
index c32436fbf9d..00000000000
Binary files a/6.2.0rc1/_images/ex17.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex18.png b/6.2.0rc1/_images/ex18.png
deleted file mode 100644
index fc93080db82..00000000000
Binary files a/6.2.0rc1/_images/ex18.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex19.png b/6.2.0rc1/_images/ex19.png
deleted file mode 100644
index 82649883c19..00000000000
Binary files a/6.2.0rc1/_images/ex19.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex20.png b/6.2.0rc1/_images/ex20.png
deleted file mode 100644
index 47718a29acb..00000000000
Binary files a/6.2.0rc1/_images/ex20.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex21.png b/6.2.0rc1/_images/ex21.png
deleted file mode 100644
index 07f055ff44b..00000000000
Binary files a/6.2.0rc1/_images/ex21.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex22.png b/6.2.0rc1/_images/ex22.png
deleted file mode 100644
index f8410b2882a..00000000000
Binary files a/6.2.0rc1/_images/ex22.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex23.png b/6.2.0rc1/_images/ex23.png
deleted file mode 100644
index 3279231a0cf..00000000000
Binary files a/6.2.0rc1/_images/ex23.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex24.png b/6.2.0rc1/_images/ex24.png
deleted file mode 100644
index 79f0478e369..00000000000
Binary files a/6.2.0rc1/_images/ex24.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex25.png b/6.2.0rc1/_images/ex25.png
deleted file mode 100644
index e0f8d221155..00000000000
Binary files a/6.2.0rc1/_images/ex25.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex26.png b/6.2.0rc1/_images/ex26.png
deleted file mode 100644
index f781aeb3de9..00000000000
Binary files a/6.2.0rc1/_images/ex26.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex27.png b/6.2.0rc1/_images/ex27.png
deleted file mode 100644
index e90d18cc557..00000000000
Binary files a/6.2.0rc1/_images/ex27.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex28.png b/6.2.0rc1/_images/ex28.png
deleted file mode 100644
index bbfc0934774..00000000000
Binary files a/6.2.0rc1/_images/ex28.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex29.png b/6.2.0rc1/_images/ex29.png
deleted file mode 100644
index d9f227431c9..00000000000
Binary files a/6.2.0rc1/_images/ex29.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex30.png b/6.2.0rc1/_images/ex30.png
deleted file mode 100644
index dd6ad6ff914..00000000000
Binary files a/6.2.0rc1/_images/ex30.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex31.png b/6.2.0rc1/_images/ex31.png
deleted file mode 100644
index 0dc323a9507..00000000000
Binary files a/6.2.0rc1/_images/ex31.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex32.png b/6.2.0rc1/_images/ex32.png
deleted file mode 100644
index be899d6e491..00000000000
Binary files a/6.2.0rc1/_images/ex32.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex33.png b/6.2.0rc1/_images/ex33.png
deleted file mode 100644
index 2a7264924a2..00000000000
Binary files a/6.2.0rc1/_images/ex33.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex34.png b/6.2.0rc1/_images/ex34.png
deleted file mode 100644
index 79aa8439b26..00000000000
Binary files a/6.2.0rc1/_images/ex34.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex35.png b/6.2.0rc1/_images/ex35.png
deleted file mode 100644
index f4624e76e02..00000000000
Binary files a/6.2.0rc1/_images/ex35.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex36.png b/6.2.0rc1/_images/ex36.png
deleted file mode 100644
index 5c02996a8ff..00000000000
Binary files a/6.2.0rc1/_images/ex36.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex37.png b/6.2.0rc1/_images/ex37.png
deleted file mode 100644
index e1bc91cc3ed..00000000000
Binary files a/6.2.0rc1/_images/ex37.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex38.png b/6.2.0rc1/_images/ex38.png
deleted file mode 100644
index 03986585932..00000000000
Binary files a/6.2.0rc1/_images/ex38.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex39.png b/6.2.0rc1/_images/ex39.png
deleted file mode 100644
index ba0f7496e9e..00000000000
Binary files a/6.2.0rc1/_images/ex39.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex40.png b/6.2.0rc1/_images/ex40.png
deleted file mode 100644
index afe9f651c24..00000000000
Binary files a/6.2.0rc1/_images/ex40.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex41.png b/6.2.0rc1/_images/ex41.png
deleted file mode 100644
index f10f68d14bb..00000000000
Binary files a/6.2.0rc1/_images/ex41.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex42.png b/6.2.0rc1/_images/ex42.png
deleted file mode 100644
index 61e32e34485..00000000000
Binary files a/6.2.0rc1/_images/ex42.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex43.png b/6.2.0rc1/_images/ex43.png
deleted file mode 100644
index e31868d9f79..00000000000
Binary files a/6.2.0rc1/_images/ex43.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex44.png b/6.2.0rc1/_images/ex44.png
deleted file mode 100644
index 47769f85c4d..00000000000
Binary files a/6.2.0rc1/_images/ex44.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex45.png b/6.2.0rc1/_images/ex45.png
deleted file mode 100644
index 30d689fc197..00000000000
Binary files a/6.2.0rc1/_images/ex45.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex46.png b/6.2.0rc1/_images/ex46.png
deleted file mode 100644
index 61e88f8f0d5..00000000000
Binary files a/6.2.0rc1/_images/ex46.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex47.png b/6.2.0rc1/_images/ex47.png
deleted file mode 100644
index acbdbefc3d6..00000000000
Binary files a/6.2.0rc1/_images/ex47.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex48.png b/6.2.0rc1/_images/ex48.png
deleted file mode 100644
index 1cc32597450..00000000000
Binary files a/6.2.0rc1/_images/ex48.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex49.png b/6.2.0rc1/_images/ex49.png
deleted file mode 100644
index 49bb709b1a2..00000000000
Binary files a/6.2.0rc1/_images/ex49.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex50.png b/6.2.0rc1/_images/ex50.png
deleted file mode 100644
index 4507eb68b4e..00000000000
Binary files a/6.2.0rc1/_images/ex50.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex51.png b/6.2.0rc1/_images/ex51.png
deleted file mode 100644
index 34b93b3f2b4..00000000000
Binary files a/6.2.0rc1/_images/ex51.png and /dev/null differ
diff --git a/6.2.0rc1/_images/ex52.png b/6.2.0rc1/_images/ex52.png
deleted file mode 100644
index fa262050e9b..00000000000
Binary files a/6.2.0rc1/_images/ex52.png and /dev/null differ
diff --git a/6.2.0rc1/_images/finwhale.png b/6.2.0rc1/_images/finwhale.png
deleted file mode 100644
index c1e325129f1..00000000000
Binary files a/6.2.0rc1/_images/finwhale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/finwhale_high.png b/6.2.0rc1/_images/finwhale_high.png
deleted file mode 100644
index 9a39cc75085..00000000000
Binary files a/6.2.0rc1/_images/finwhale_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/finwhale_low.png b/6.2.0rc1/_images/finwhale_low.png
deleted file mode 100644
index 5e6433d1355..00000000000
Binary files a/6.2.0rc1/_images/finwhale_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/formatpicture.png b/6.2.0rc1/_images/formatpicture.png
deleted file mode 100644
index 3a49aa0b4a1..00000000000
Binary files a/6.2.0rc1/_images/formatpicture.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-cleavage.png b/6.2.0rc1/_images/geo-cleavage.png
deleted file mode 100644
index 010e3740635..00000000000
Binary files a/6.2.0rc1/_images/geo-cleavage.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-cleavage_hor.png b/6.2.0rc1/_images/geo-cleavage_hor.png
deleted file mode 100644
index 841bef89e38..00000000000
Binary files a/6.2.0rc1/_images/geo-cleavage_hor.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-cleavage_vert.png b/6.2.0rc1/_images/geo-cleavage_vert.png
deleted file mode 100644
index b940c1da5ac..00000000000
Binary files a/6.2.0rc1/_images/geo-cleavage_vert.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-foliation-2.png b/6.2.0rc1/_images/geo-foliation-2.png
deleted file mode 100644
index 3752adb8743..00000000000
Binary files a/6.2.0rc1/_images/geo-foliation-2.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-foliation-3.png b/6.2.0rc1/_images/geo-foliation-3.png
deleted file mode 100644
index 1f1f5d5d824..00000000000
Binary files a/6.2.0rc1/_images/geo-foliation-3.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-foliation.png b/6.2.0rc1/_images/geo-foliation.png
deleted file mode 100644
index 2debf43866f..00000000000
Binary files a/6.2.0rc1/_images/geo-foliation.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-foliation_hor.png b/6.2.0rc1/_images/geo-foliation_hor.png
deleted file mode 100644
index e9b64494867..00000000000
Binary files a/6.2.0rc1/_images/geo-foliation_hor.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-foliation_vert.png b/6.2.0rc1/_images/geo-foliation_vert.png
deleted file mode 100644
index 1dfbfed3d63..00000000000
Binary files a/6.2.0rc1/_images/geo-foliation_vert.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-joint.png b/6.2.0rc1/_images/geo-joint.png
deleted file mode 100644
index 92b3b8dbbe9..00000000000
Binary files a/6.2.0rc1/_images/geo-joint.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-joint_hor.png b/6.2.0rc1/_images/geo-joint_hor.png
deleted file mode 100644
index c8564a2cac8..00000000000
Binary files a/6.2.0rc1/_images/geo-joint_hor.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-joint_vert.png b/6.2.0rc1/_images/geo-joint_vert.png
deleted file mode 100644
index 1b76bdd2cd9..00000000000
Binary files a/6.2.0rc1/_images/geo-joint_vert.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-lineation-2.png b/6.2.0rc1/_images/geo-lineation-2.png
deleted file mode 100644
index d512c8b0ed3..00000000000
Binary files a/6.2.0rc1/_images/geo-lineation-2.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-lineation-3.png b/6.2.0rc1/_images/geo-lineation-3.png
deleted file mode 100644
index d67cd71b0b0..00000000000
Binary files a/6.2.0rc1/_images/geo-lineation-3.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-lineation.png b/6.2.0rc1/_images/geo-lineation.png
deleted file mode 100644
index bcf6f4d76af..00000000000
Binary files a/6.2.0rc1/_images/geo-lineation.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-lineation_hor.png b/6.2.0rc1/_images/geo-lineation_hor.png
deleted file mode 100644
index d233356b28a..00000000000
Binary files a/6.2.0rc1/_images/geo-lineation_hor.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-lineation_vert.png b/6.2.0rc1/_images/geo-lineation_vert.png
deleted file mode 100644
index 7253a6e9a00..00000000000
Binary files a/6.2.0rc1/_images/geo-lineation_vert.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-plane.png b/6.2.0rc1/_images/geo-plane.png
deleted file mode 100644
index 1e0b053a3d6..00000000000
Binary files a/6.2.0rc1/_images/geo-plane.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-plane_gentle.png b/6.2.0rc1/_images/geo-plane_gentle.png
deleted file mode 100644
index cb6a28eda47..00000000000
Binary files a/6.2.0rc1/_images/geo-plane_gentle.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-plane_hor.png b/6.2.0rc1/_images/geo-plane_hor.png
deleted file mode 100644
index c938bdfe521..00000000000
Binary files a/6.2.0rc1/_images/geo-plane_hor.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-plane_inv.png b/6.2.0rc1/_images/geo-plane_inv.png
deleted file mode 100644
index 5a20e760a33..00000000000
Binary files a/6.2.0rc1/_images/geo-plane_inv.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-plane_medium.png b/6.2.0rc1/_images/geo-plane_medium.png
deleted file mode 100644
index b283a11d60a..00000000000
Binary files a/6.2.0rc1/_images/geo-plane_medium.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-plane_rake.png b/6.2.0rc1/_images/geo-plane_rake.png
deleted file mode 100644
index 8488a52ac6a..00000000000
Binary files a/6.2.0rc1/_images/geo-plane_rake.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-plane_steep.png b/6.2.0rc1/_images/geo-plane_steep.png
deleted file mode 100644
index 46eca16ff3e..00000000000
Binary files a/6.2.0rc1/_images/geo-plane_steep.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-plane_und.png b/6.2.0rc1/_images/geo-plane_und.png
deleted file mode 100644
index 403171fccc7..00000000000
Binary files a/6.2.0rc1/_images/geo-plane_und.png and /dev/null differ
diff --git a/6.2.0rc1/_images/geo-plane_vert.png b/6.2.0rc1/_images/geo-plane_vert.png
deleted file mode 100644
index 66311ebfa89..00000000000
Binary files a/6.2.0rc1/_images/geo-plane_vert.png and /dev/null differ
diff --git a/6.2.0rc1/_images/gimp-sliders+panel.png b/6.2.0rc1/_images/gimp-sliders+panel.png
deleted file mode 100644
index 247650558cc..00000000000
Binary files a/6.2.0rc1/_images/gimp-sliders+panel.png and /dev/null differ
diff --git a/6.2.0rc1/_images/graywhale.png b/6.2.0rc1/_images/graywhale.png
deleted file mode 100644
index fb82388c675..00000000000
Binary files a/6.2.0rc1/_images/graywhale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/graywhale_high.png b/6.2.0rc1/_images/graywhale_high.png
deleted file mode 100644
index df6b34b8d92..00000000000
Binary files a/6.2.0rc1/_images/graywhale_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/graywhale_low.png b/6.2.0rc1/_images/graywhale_low.png
deleted file mode 100644
index 26ccd585adc..00000000000
Binary files a/6.2.0rc1/_images/graywhale_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/grdflexure_approx.png b/6.2.0rc1/_images/grdflexure_approx.png
deleted file mode 100644
index 76a47493150..00000000000
Binary files a/6.2.0rc1/_images/grdflexure_approx.png and /dev/null differ
diff --git a/6.2.0rc1/_images/gshhg.jpg b/6.2.0rc1/_images/gshhg.jpg
deleted file mode 100644
index 73ab9a2db14..00000000000
Binary files a/6.2.0rc1/_images/gshhg.jpg and /dev/null differ
diff --git a/6.2.0rc1/_images/hsv-cone.png b/6.2.0rc1/_images/hsv-cone.png
deleted file mode 100644
index c7588f1bc58..00000000000
Binary files a/6.2.0rc1/_images/hsv-cone.png and /dev/null differ
diff --git a/6.2.0rc1/_images/humpbacktail_one.png b/6.2.0rc1/_images/humpbacktail_one.png
deleted file mode 100644
index 421e995a6fc..00000000000
Binary files a/6.2.0rc1/_images/humpbacktail_one.png and /dev/null differ
diff --git a/6.2.0rc1/_images/humpbacktail_one_low.png b/6.2.0rc1/_images/humpbacktail_one_low.png
deleted file mode 100644
index a277177ba64..00000000000
Binary files a/6.2.0rc1/_images/humpbacktail_one_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/humpbacktail_two.png b/6.2.0rc1/_images/humpbacktail_two.png
deleted file mode 100644
index 8eb7d64d664..00000000000
Binary files a/6.2.0rc1/_images/humpbacktail_two.png and /dev/null differ
diff --git a/6.2.0rc1/_images/humpbacktail_two_low.png b/6.2.0rc1/_images/humpbacktail_two_low.png
deleted file mode 100644
index 544d4ce5ee9..00000000000
Binary files a/6.2.0rc1/_images/humpbacktail_two_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/igpp.png b/6.2.0rc1/_images/igpp.png
deleted file mode 100644
index 790e6ec7cce..00000000000
Binary files a/6.2.0rc1/_images/igpp.png and /dev/null differ
diff --git a/6.2.0rc1/_images/jumpback.png b/6.2.0rc1/_images/jumpback.png
deleted file mode 100644
index 9ada7d9e599..00000000000
Binary files a/6.2.0rc1/_images/jumpback.png and /dev/null differ
diff --git a/6.2.0rc1/_images/jumpback_high.png b/6.2.0rc1/_images/jumpback_high.png
deleted file mode 100644
index f27c1309142..00000000000
Binary files a/6.2.0rc1/_images/jumpback_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/jumpback_low.png b/6.2.0rc1/_images/jumpback_low.png
deleted file mode 100644
index 4dde12b08db..00000000000
Binary files a/6.2.0rc1/_images/jumpback_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/killerwhale.png b/6.2.0rc1/_images/killerwhale.png
deleted file mode 100644
index 9cc715b8d15..00000000000
Binary files a/6.2.0rc1/_images/killerwhale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/killerwhale_high.png b/6.2.0rc1/_images/killerwhale_high.png
deleted file mode 100644
index 75be219efed..00000000000
Binary files a/6.2.0rc1/_images/killerwhale_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/killerwhale_low.png b/6.2.0rc1/_images/killerwhale_low.png
deleted file mode 100644
index 23480a3658f..00000000000
Binary files a/6.2.0rc1/_images/killerwhale_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/longfinnedpilotwhale.png b/6.2.0rc1/_images/longfinnedpilotwhale.png
deleted file mode 100644
index cd5ecb8c23e..00000000000
Binary files a/6.2.0rc1/_images/longfinnedpilotwhale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/longfinnedpilotwhale_high.png b/6.2.0rc1/_images/longfinnedpilotwhale_high.png
deleted file mode 100644
index 63292a6bd06..00000000000
Binary files a/6.2.0rc1/_images/longfinnedpilotwhale_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/longfinnedpilotwhale_low.png b/6.2.0rc1/_images/longfinnedpilotwhale_low.png
deleted file mode 100644
index 6160f71a94a..00000000000
Binary files a/6.2.0rc1/_images/longfinnedpilotwhale_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/minkewhale.png b/6.2.0rc1/_images/minkewhale.png
deleted file mode 100644
index 3c3995c201f..00000000000
Binary files a/6.2.0rc1/_images/minkewhale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/minkewhale_high.png b/6.2.0rc1/_images/minkewhale_high.png
deleted file mode 100644
index ba75296c4b9..00000000000
Binary files a/6.2.0rc1/_images/minkewhale_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/minkewhale_low.png b/6.2.0rc1/_images/minkewhale_low.png
deleted file mode 100644
index 07de851acc7..00000000000
Binary files a/6.2.0rc1/_images/minkewhale_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/nasa-logo-web-rgb.png b/6.2.0rc1/_images/nasa-logo-web-rgb.png
deleted file mode 100644
index 65315e87774..00000000000
Binary files a/6.2.0rc1/_images/nasa-logo-web-rgb.png and /dev/null differ
diff --git a/6.2.0rc1/_images/northernrightwhale.png b/6.2.0rc1/_images/northernrightwhale.png
deleted file mode 100644
index 3251d50da45..00000000000
Binary files a/6.2.0rc1/_images/northernrightwhale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/northernrightwhale_high.png b/6.2.0rc1/_images/northernrightwhale_high.png
deleted file mode 100644
index a2de1024d63..00000000000
Binary files a/6.2.0rc1/_images/northernrightwhale_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/northernrightwhale_low.png b/6.2.0rc1/_images/northernrightwhale_low.png
deleted file mode 100644
index 3061c80c9d4..00000000000
Binary files a/6.2.0rc1/_images/northernrightwhale_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/pigmyspermwhale.png b/6.2.0rc1/_images/pigmyspermwhale.png
deleted file mode 100644
index 0cf3bfbe2a5..00000000000
Binary files a/6.2.0rc1/_images/pigmyspermwhale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/pigmyspermwhale_high.png b/6.2.0rc1/_images/pigmyspermwhale_high.png
deleted file mode 100644
index 52914bfcb81..00000000000
Binary files a/6.2.0rc1/_images/pigmyspermwhale_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/pigmyspermwhale_low.png b/6.2.0rc1/_images/pigmyspermwhale_low.png
deleted file mode 100644
index fdc828ac160..00000000000
Binary files a/6.2.0rc1/_images/pigmyspermwhale_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/pirata.png b/6.2.0rc1/_images/pirata.png
deleted file mode 100644
index afcf4533c17..00000000000
Binary files a/6.2.0rc1/_images/pirata.png and /dev/null differ
diff --git a/6.2.0rc1/_images/psevents_intensity.png b/6.2.0rc1/_images/psevents_intensity.png
deleted file mode 100644
index 14bee87bc4b..00000000000
Binary files a/6.2.0rc1/_images/psevents_intensity.png and /dev/null differ
diff --git a/6.2.0rc1/_images/psevents_labels.png b/6.2.0rc1/_images/psevents_labels.png
deleted file mode 100644
index 4344c8ecd90..00000000000
Binary files a/6.2.0rc1/_images/psevents_labels.png and /dev/null differ
diff --git a/6.2.0rc1/_images/psevents_size.png b/6.2.0rc1/_images/psevents_size.png
deleted file mode 100644
index bdde395e2cb..00000000000
Binary files a/6.2.0rc1/_images/psevents_size.png and /dev/null differ
diff --git a/6.2.0rc1/_images/psevents_transparency.png b/6.2.0rc1/_images/psevents_transparency.png
deleted file mode 100644
index 5cc19a7ecb1..00000000000
Binary files a/6.2.0rc1/_images/psevents_transparency.png and /dev/null differ
diff --git a/6.2.0rc1/_images/rendering.png b/6.2.0rc1/_images/rendering.png
deleted file mode 100644
index c8521b5a3b9..00000000000
Binary files a/6.2.0rc1/_images/rendering.png and /dev/null differ
diff --git a/6.2.0rc1/_images/rissosdolphin.png b/6.2.0rc1/_images/rissosdolphin.png
deleted file mode 100644
index a4612f1f96d..00000000000
Binary files a/6.2.0rc1/_images/rissosdolphin.png and /dev/null differ
diff --git a/6.2.0rc1/_images/rissosdolphin_high.png b/6.2.0rc1/_images/rissosdolphin_high.png
deleted file mode 100644
index 36040066c75..00000000000
Binary files a/6.2.0rc1/_images/rissosdolphin_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/rissosdolphin_low.png b/6.2.0rc1/_images/rissosdolphin_low.png
deleted file mode 100644
index 4219dce9ad0..00000000000
Binary files a/6.2.0rc1/_images/rissosdolphin_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/seiwhale.png b/6.2.0rc1/_images/seiwhale.png
deleted file mode 100644
index 376b05e2c6f..00000000000
Binary files a/6.2.0rc1/_images/seiwhale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/seiwhale_high.png b/6.2.0rc1/_images/seiwhale_high.png
deleted file mode 100644
index 7ec99f69dbb..00000000000
Binary files a/6.2.0rc1/_images/seiwhale_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/seiwhale_low.png b/6.2.0rc1/_images/seiwhale_low.png
deleted file mode 100644
index 613e6fab50d..00000000000
Binary files a/6.2.0rc1/_images/seiwhale_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/shortfinnedpilotwhale.png b/6.2.0rc1/_images/shortfinnedpilotwhale.png
deleted file mode 100644
index c3cc703f95f..00000000000
Binary files a/6.2.0rc1/_images/shortfinnedpilotwhale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/shortfinnedpilotwhale_high.png b/6.2.0rc1/_images/shortfinnedpilotwhale_high.png
deleted file mode 100644
index c020d92e585..00000000000
Binary files a/6.2.0rc1/_images/shortfinnedpilotwhale_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/shortfinnedpilotwhale_low.png b/6.2.0rc1/_images/shortfinnedpilotwhale_low.png
deleted file mode 100644
index 5fca7928684..00000000000
Binary files a/6.2.0rc1/_images/shortfinnedpilotwhale_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/southernrightwhale.png b/6.2.0rc1/_images/southernrightwhale.png
deleted file mode 100644
index a18e9e7815a..00000000000
Binary files a/6.2.0rc1/_images/southernrightwhale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/southernrightwhale_high.png b/6.2.0rc1/_images/southernrightwhale_high.png
deleted file mode 100644
index b48ee74f85e..00000000000
Binary files a/6.2.0rc1/_images/southernrightwhale_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/southernrightwhale_low.png b/6.2.0rc1/_images/southernrightwhale_low.png
deleted file mode 100644
index 06705cdc6d9..00000000000
Binary files a/6.2.0rc1/_images/southernrightwhale_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/spectacledporpoise.png b/6.2.0rc1/_images/spectacledporpoise.png
deleted file mode 100644
index 2069045f4db..00000000000
Binary files a/6.2.0rc1/_images/spectacledporpoise.png and /dev/null differ
diff --git a/6.2.0rc1/_images/spectacledporpoise_high.png b/6.2.0rc1/_images/spectacledporpoise_high.png
deleted file mode 100644
index ff478390c91..00000000000
Binary files a/6.2.0rc1/_images/spectacledporpoise_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/spectacledporpoise_low.png b/6.2.0rc1/_images/spectacledporpoise_low.png
deleted file mode 100644
index 2dbe223ed11..00000000000
Binary files a/6.2.0rc1/_images/spectacledporpoise_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/spermwhale.png b/6.2.0rc1/_images/spermwhale.png
deleted file mode 100644
index 6ff70452f8e..00000000000
Binary files a/6.2.0rc1/_images/spermwhale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/spermwhale_high.png b/6.2.0rc1/_images/spermwhale_high.png
deleted file mode 100644
index f516415e544..00000000000
Binary files a/6.2.0rc1/_images/spermwhale_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/spermwhale_low.png b/6.2.0rc1/_images/spermwhale_low.png
deleted file mode 100644
index 31ac9e65292..00000000000
Binary files a/6.2.0rc1/_images/spermwhale_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/spermwhaletail.png b/6.2.0rc1/_images/spermwhaletail.png
deleted file mode 100644
index 600d2e36073..00000000000
Binary files a/6.2.0rc1/_images/spermwhaletail.png and /dev/null differ
diff --git a/6.2.0rc1/_images/spermwhaletail_high.png b/6.2.0rc1/_images/spermwhaletail_high.png
deleted file mode 100644
index ba4fc3e6266..00000000000
Binary files a/6.2.0rc1/_images/spermwhaletail_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/spermwhaletail_low.png b/6.2.0rc1/_images/spermwhaletail_low.png
deleted file mode 100644
index 24b8e5eed7c..00000000000
Binary files a/6.2.0rc1/_images/spermwhaletail_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/srightwhaledolphin.png b/6.2.0rc1/_images/srightwhaledolphin.png
deleted file mode 100644
index 2493eeb5405..00000000000
Binary files a/6.2.0rc1/_images/srightwhaledolphin.png and /dev/null differ
diff --git a/6.2.0rc1/_images/srightwhaledolphin_high.png b/6.2.0rc1/_images/srightwhaledolphin_high.png
deleted file mode 100644
index bc702ac0af0..00000000000
Binary files a/6.2.0rc1/_images/srightwhaledolphin_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/srightwhaledolphin_low.png b/6.2.0rc1/_images/srightwhaledolphin_low.png
deleted file mode 100644
index b5461ffbcdb..00000000000
Binary files a/6.2.0rc1/_images/srightwhaledolphin_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/srtm1.png b/6.2.0rc1/_images/srtm1.png
deleted file mode 100644
index 116d64b4517..00000000000
Binary files a/6.2.0rc1/_images/srtm1.png and /dev/null differ
diff --git a/6.2.0rc1/_images/stripeddolphin.png b/6.2.0rc1/_images/stripeddolphin.png
deleted file mode 100644
index dd22184abea..00000000000
Binary files a/6.2.0rc1/_images/stripeddolphin.png and /dev/null differ
diff --git a/6.2.0rc1/_images/stripeddolphin_high.png b/6.2.0rc1/_images/stripeddolphin_high.png
deleted file mode 100644
index 27e87ae5d8a..00000000000
Binary files a/6.2.0rc1/_images/stripeddolphin_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/stripeddolphin_low.png b/6.2.0rc1/_images/stripeddolphin_low.png
deleted file mode 100644
index 55e02033205..00000000000
Binary files a/6.2.0rc1/_images/stripeddolphin_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/unidentifiedbeakedwhale.png b/6.2.0rc1/_images/unidentifiedbeakedwhale.png
deleted file mode 100644
index 79b66b53b11..00000000000
Binary files a/6.2.0rc1/_images/unidentifiedbeakedwhale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/unidentifiedbeakedwhale_high.png b/6.2.0rc1/_images/unidentifiedbeakedwhale_high.png
deleted file mode 100644
index fc4e67d5ba7..00000000000
Binary files a/6.2.0rc1/_images/unidentifiedbeakedwhale_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/unidentifiedbeakedwhale_low.png b/6.2.0rc1/_images/unidentifiedbeakedwhale_low.png
deleted file mode 100644
index 0e1e22b326a..00000000000
Binary files a/6.2.0rc1/_images/unidentifiedbeakedwhale_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/unidentifieddolphin.png b/6.2.0rc1/_images/unidentifieddolphin.png
deleted file mode 100644
index 9fbc4989e22..00000000000
Binary files a/6.2.0rc1/_images/unidentifieddolphin.png and /dev/null differ
diff --git a/6.2.0rc1/_images/unidentifieddolphin_high.png b/6.2.0rc1/_images/unidentifieddolphin_high.png
deleted file mode 100644
index 506cff6246a..00000000000
Binary files a/6.2.0rc1/_images/unidentifieddolphin_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/unidentifieddolphin_low.png b/6.2.0rc1/_images/unidentifieddolphin_low.png
deleted file mode 100644
index 6ea8a31f7d1..00000000000
Binary files a/6.2.0rc1/_images/unidentifieddolphin_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/unidentifiedwhale.png b/6.2.0rc1/_images/unidentifiedwhale.png
deleted file mode 100644
index 4657a2d844d..00000000000
Binary files a/6.2.0rc1/_images/unidentifiedwhale.png and /dev/null differ
diff --git a/6.2.0rc1/_images/unidentifiedwhale_high.png b/6.2.0rc1/_images/unidentifiedwhale_high.png
deleted file mode 100644
index 7a92e4820c8..00000000000
Binary files a/6.2.0rc1/_images/unidentifiedwhale_high.png and /dev/null differ
diff --git a/6.2.0rc1/_images/unidentifiedwhale_low.png b/6.2.0rc1/_images/unidentifiedwhale_low.png
deleted file mode 100644
index bdc6140e3bc..00000000000
Binary files a/6.2.0rc1/_images/unidentifiedwhale_low.png and /dev/null differ
diff --git a/6.2.0rc1/_images/vertical-slice.png b/6.2.0rc1/_images/vertical-slice.png
deleted file mode 100644
index 53b22834ca8..00000000000
Binary files a/6.2.0rc1/_images/vertical-slice.png and /dev/null differ
diff --git a/6.2.0rc1/_images/xcode-1.png b/6.2.0rc1/_images/xcode-1.png
deleted file mode 100644
index 10aee50dbcb..00000000000
Binary files a/6.2.0rc1/_images/xcode-1.png and /dev/null differ
diff --git a/6.2.0rc1/_images/xcode-2.png b/6.2.0rc1/_images/xcode-2.png
deleted file mode 100644
index 51cf9c5c369..00000000000
Binary files a/6.2.0rc1/_images/xcode-2.png and /dev/null differ
diff --git a/6.2.0rc1/_images/xcode-3.png b/6.2.0rc1/_images/xcode-3.png
deleted file mode 100644
index e8ffd8af1d7..00000000000
Binary files a/6.2.0rc1/_images/xcode-3.png and /dev/null differ
diff --git a/6.2.0rc1/_images/xcode-4.png b/6.2.0rc1/_images/xcode-4.png
deleted file mode 100644
index 3a619bf9673..00000000000
Binary files a/6.2.0rc1/_images/xcode-4.png and /dev/null differ
diff --git a/6.2.0rc1/_images/xcode-5.png b/6.2.0rc1/_images/xcode-5.png
deleted file mode 100644
index aa5c192a472..00000000000
Binary files a/6.2.0rc1/_images/xcode-5.png and /dev/null differ
diff --git a/6.2.0rc1/_images/xcode-6.png b/6.2.0rc1/_images/xcode-6.png
deleted file mode 100644
index 84e8a0e5ad5..00000000000
Binary files a/6.2.0rc1/_images/xcode-6.png and /dev/null differ
diff --git a/6.2.0rc1/_images/xcode-7.png b/6.2.0rc1/_images/xcode-7.png
deleted file mode 100644
index b0e8dc04d3f..00000000000
Binary files a/6.2.0rc1/_images/xcode-7.png and /dev/null differ
diff --git a/6.2.0rc1/_images/xcode-8.png b/6.2.0rc1/_images/xcode-8.png
deleted file mode 100644
index d5026a1cfb4..00000000000
Binary files a/6.2.0rc1/_images/xcode-8.png and /dev/null differ
diff --git a/6.2.0rc1/_panels_static/panels-bootstrap.5fd3999ee7762ccc51105388f4a9d115.css b/6.2.0rc1/_panels_static/panels-bootstrap.5fd3999ee7762ccc51105388f4a9d115.css
deleted file mode 100644
index 1b057df2f20..00000000000
--- a/6.2.0rc1/_panels_static/panels-bootstrap.5fd3999ee7762ccc51105388f4a9d115.css
+++ /dev/null
@@ -1 +0,0 @@
-.badge{border-radius:.25rem;display:inline-block;font-size:75%;font-weight:700;line-height:1;padding:.25em .4em;text-align:center;vertical-align:baseline;white-space:nowrap}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{border-radius:10rem;padding-left:.6em;padding-right:.6em}.badge-primary{background-color:#007bff;color:#fff}.badge-primary[href]:focus,.badge-primary[href]:hover{background-color:#0062cc;color:#fff;text-decoration:none}.badge-secondary{background-color:#6c757d;color:#fff}.badge-secondary[href]:focus,.badge-secondary[href]:hover{background-color:#545b62;color:#fff;text-decoration:none}.badge-success{background-color:#28a745;color:#fff}.badge-success[href]:focus,.badge-success[href]:hover{background-color:#1e7e34;color:#fff;text-decoration:none}.badge-info{background-color:#17a2b8;color:#fff}.badge-info[href]:focus,.badge-info[href]:hover{background-color:#117a8b;color:#fff;text-decoration:none}.badge-warning{background-color:#ffc107;color:#212529}.badge-warning[href]:focus,.badge-warning[href]:hover{background-color:#d39e00;color:#212529;text-decoration:none}.badge-danger{background-color:#dc3545;color:#fff}.badge-danger[href]:focus,.badge-danger[href]:hover{background-color:#bd2130;color:#fff;text-decoration:none}.badge-light{background-color:#f8f9fa;color:#212529}.badge-light[href]:focus,.badge-light[href]:hover{background-color:#dae0e5;color:#212529;text-decoration:none}.badge-dark{background-color:#343a40;color:#fff}.badge-dark[href]:focus,.badge-dark[href]:hover{background-color:#1d2124;color:#fff;text-decoration:none}.border-0{border:0 !important}.border-top-0{border-top:0 !important}.border-right-0{border-right:0 !important}.border-bottom-0{border-bottom:0 !important}.border-left-0{border-left:0 !important}.p-0{padding:0 !important}.pt-0,.py-0{padding-top:0 !important}.pr-0,.px-0{padding-right:0 !important}.pb-0,.py-0{padding-bottom:0 !important}.pl-0,.px-0{padding-left:0 !important}.p-1{padding:.25rem !important}.pt-1,.py-1{padding-top:.25rem !important}.pr-1,.px-1{padding-right:.25rem !important}.pb-1,.py-1{padding-bottom:.25rem !important}.pl-1,.px-1{padding-left:.25rem !important}.p-2{padding:.5rem !important}.pt-2,.py-2{padding-top:.5rem !important}.pr-2,.px-2{padding-right:.5rem !important}.pb-2,.py-2{padding-bottom:.5rem !important}.pl-2,.px-2{padding-left:.5rem !important}.p-3{padding:1rem !important}.pt-3,.py-3{padding-top:1rem !important}.pr-3,.px-3{padding-right:1rem !important}.pb-3,.py-3{padding-bottom:1rem !important}.pl-3,.px-3{padding-left:1rem !important}.p-4{padding:1.5rem !important}.pt-4,.py-4{padding-top:1.5rem !important}.pr-4,.px-4{padding-right:1.5rem !important}.pb-4,.py-4{padding-bottom:1.5rem !important}.pl-4,.px-4{padding-left:1.5rem !important}.p-5{padding:3rem !important}.pt-5,.py-5{padding-top:3rem !important}.pr-5,.px-5{padding-right:3rem !important}.pb-5,.py-5{padding-bottom:3rem !important}.pl-5,.px-5{padding-left:3rem !important}.m-0{margin:0 !important}.mt-0,.my-0{margin-top:0 !important}.mr-0,.mx-0{margin-right:0 !important}.mb-0,.my-0{margin-bottom:0 !important}.ml-0,.mx-0{margin-left:0 !important}.m-1{margin:.25rem !important}.mt-1,.my-1{margin-top:.25rem !important}.mr-1,.mx-1{margin-right:.25rem !important}.mb-1,.my-1{margin-bottom:.25rem !important}.ml-1,.mx-1{margin-left:.25rem !important}.m-2{margin:.5rem !important}.mt-2,.my-2{margin-top:.5rem !important}.mr-2,.mx-2{margin-right:.5rem !important}.mb-2,.my-2{margin-bottom:.5rem !important}.ml-2,.mx-2{margin-left:.5rem !important}.m-3{margin:1rem !important}.mt-3,.my-3{margin-top:1rem !important}.mr-3,.mx-3{margin-right:1rem !important}.mb-3,.my-3{margin-bottom:1rem !important}.ml-3,.mx-3{margin-left:1rem !important}.m-4{margin:1.5rem !important}.mt-4,.my-4{margin-top:1.5rem !important}.mr-4,.mx-4{margin-right:1.5rem !important}.mb-4,.my-4{margin-bottom:1.5rem !important}.ml-4,.mx-4{margin-left:1.5rem !important}.m-5{margin:3rem !important}.mt-5,.my-5{margin-top:3rem !important}.mr-5,.mx-5{margin-right:3rem !important}.mb-5,.my-5{margin-bottom:3rem !important}.ml-5,.mx-5{margin-left:3rem !important}.btn{background-color:transparent;border:1px solid transparent;border-radius:.25rem;color:#212529;cursor:pointer;display:inline-block;font-size:1rem;font-weight:400;line-height:1.5;padding:.375rem .75rem;text-align:center;transition:color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none;vertical-align:middle}.btn:hover{color:#212529;text-decoration:none}.btn:visited{color:#212529}.btn.focus,.btn:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,0.25);outline:0}.btn.disabled,.btn:disabled{opacity:.65}@media (prefers-reduced-motion: reduce){.btn{transition:none}}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{background-color:#007bff;border-color:#007bff;color:#fff}.btn-primary:visited{color:#fff}.btn-primary:hover{background-color:#0069d9;border-color:#0062cc;color:#fff}.btn-primary.focus,.btn-primary:focus{background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(0,123,255,0.5);color:#fff}.btn-primary.disabled,.btn-primary:disabled{background-color:#007bff;border-color:#007bff;color:#fff}.btn-primary.active:not(:disabled):not(.disabled),.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{background-color:#0062cc;border-color:#005cbf;color:#fff}.btn-primary.active:not(:disabled):not(.disabled):focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,0.5)}.btn-secondary{background-color:#6c757d;border-color:#6c757d;color:#fff}.btn-secondary:visited{color:#fff}.btn-secondary:hover{background-color:#5a6268;border-color:#545b62;color:#fff}.btn-secondary.focus,.btn-secondary:focus{background-color:#5a6268;border-color:#545b62;box-shadow:0 0 0 .2rem rgba(108,117,125,0.5);color:#fff}.btn-secondary.disabled,.btn-secondary:disabled{background-color:#6c757d;border-color:#6c757d;color:#fff}.btn-secondary.active:not(:disabled):not(.disabled),.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{background-color:#545b62;border-color:#4e555b;color:#fff}.btn-secondary.active:not(:disabled):not(.disabled):focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-success{background-color:#28a745;border-color:#28a745;color:#fff}.btn-success:visited{color:#fff}.btn-success:hover{background-color:#218838;border-color:#1e7e34;color:#fff}.btn-success.focus,.btn-success:focus{background-color:#218838;border-color:#1e7e34;box-shadow:0 0 0 .2rem rgba(40,167,69,0.5);color:#fff}.btn-success.disabled,.btn-success:disabled{background-color:#28a745;border-color:#28a745;color:#fff}.btn-success.active:not(:disabled):not(.disabled),.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{background-color:#1e7e34;border-color:#1c7430;color:#fff}.btn-success.active:not(:disabled):not(.disabled):focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-info{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.btn-info:visited{color:#fff}.btn-info:hover{background-color:#138496;border-color:#117a8b;color:#fff}.btn-info.focus,.btn-info:focus{background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(23,162,184,0.5);color:#fff}.btn-info.disabled,.btn-info:disabled{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.btn-info.active:not(:disabled):not(.disabled),.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{background-color:#117a8b;border-color:#10707f;color:#fff}.btn-info.active:not(:disabled):not(.disabled):focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-warning{background-color:#ffc107;border-color:#ffc107;color:#212529}.btn-warning:visited{color:#212529}.btn-warning:hover{background-color:#e0a800;border-color:#d39e00;color:#212529}.btn-warning.focus,.btn-warning:focus{background-color:#e0a800;border-color:#d39e00;box-shadow:0 0 0 .2rem rgba(255,193,7,0.5);color:#212529}.btn-warning.disabled,.btn-warning:disabled{background-color:#ffc107;border-color:#ffc107;color:#212529}.btn-warning.active:not(:disabled):not(.disabled),.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{background-color:#d39e00;border-color:#c69500;color:#212529}.btn-warning.active:not(:disabled):not(.disabled):focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-danger{background-color:#dc3545;border-color:#dc3545;color:#fff}.btn-danger:visited{color:#fff}.btn-danger:hover{background-color:#c82333;border-color:#bd2130;color:#fff}.btn-danger.focus,.btn-danger:focus{background-color:#c82333;border-color:#bd2130;box-shadow:0 0 0 .2rem rgba(220,53,69,0.5);color:#fff}.btn-danger.disabled,.btn-danger:disabled{background-color:#dc3545;border-color:#dc3545;color:#fff}.btn-danger.active:not(:disabled):not(.disabled),.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{background-color:#bd2130;border-color:#b21f2d;color:#fff}.btn-danger.active:not(:disabled):not(.disabled):focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-light{background-color:#f8f9fa;border-color:#f8f9fa;color:#212529}.btn-light:visited{color:#212529}.btn-light:hover{background-color:#e2e6ea;border-color:#dae0e5;color:#212529}.btn-light.focus,.btn-light:focus{background-color:#e2e6ea;border-color:#dae0e5;box-shadow:0 0 0 .2rem rgba(248,249,250,0.5);color:#212529}.btn-light.disabled,.btn-light:disabled{background-color:#f8f9fa;border-color:#f8f9fa;color:#212529}.btn-light.active:not(:disabled):not(.disabled),.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{background-color:#dae0e5;border-color:#d3d9df;color:#212529}.btn-light.active:not(:disabled):not(.disabled):focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-dark{background-color:#343a40;border-color:#343a40;color:#fff}.btn-dark:visited{color:#fff}.btn-dark:hover{background-color:#23272b;border-color:#1d2124;color:#fff}.btn-dark.focus,.btn-dark:focus{background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(52,58,64,0.5);color:#fff}.btn-dark.disabled,.btn-dark:disabled{background-color:#343a40;border-color:#343a40;color:#fff}.btn-dark.active:not(:disabled):not(.disabled),.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{background-color:#1d2124;border-color:#171a1d;color:#fff}.btn-dark.active:not(:disabled):not(.disabled):focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-outline-primary{border-color:#007bff;color:#007bff}.btn-outline-primary:visited{color:#007bff}.btn-outline-primary:hover{background-color:#007bff;border-color:#007bff;color:#fff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,0.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{background-color:transparent;color:#007bff}.btn-outline-primary.active:not(:disabled):not(.disabled),.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{background-color:#007bff;border-color:#007bff;color:#fff}.btn-outline-primary.active:not(:disabled):not(.disabled):focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,0.5)}.btn-outline-secondary{border-color:#6c757d;color:#6c757d}.btn-outline-secondary:visited{color:#6c757d}.btn-outline-secondary:hover{background-color:#6c757d;border-color:#6c757d;color:#fff}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{background-color:transparent;color:#6c757d}.btn-outline-secondary.active:not(:disabled):not(.disabled),.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{background-color:#6c757d;border-color:#6c757d;color:#fff}.btn-outline-secondary.active:not(:disabled):not(.disabled):focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,0.5)}.btn-outline-success{border-color:#28a745;color:#28a745}.btn-outline-success:visited{color:#28a745}.btn-outline-success:hover{background-color:#28a745;border-color:#28a745;color:#fff}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{background-color:transparent;color:#28a745}.btn-outline-success.active:not(:disabled):not(.disabled),.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{background-color:#28a745;border-color:#28a745;color:#fff}.btn-outline-success.active:not(:disabled):not(.disabled):focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,0.5)}.btn-outline-info{border-color:#17a2b8;color:#17a2b8}.btn-outline-info:visited{color:#17a2b8}.btn-outline-info:hover{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{background-color:transparent;color:#17a2b8}.btn-outline-info.active:not(:disabled):not(.disabled),.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{background-color:#17a2b8;border-color:#17a2b8;color:#fff}.btn-outline-info.active:not(:disabled):not(.disabled):focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,0.5)}.btn-outline-warning{border-color:#ffc107;color:#ffc107}.btn-outline-warning:visited{color:#ffc107}.btn-outline-warning:hover{background-color:#ffc107;border-color:#ffc107;color:#212529}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{background-color:transparent;color:#ffc107}.btn-outline-warning.active:not(:disabled):not(.disabled),.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{background-color:#ffc107;border-color:#ffc107;color:#212529}.btn-outline-warning.active:not(:disabled):not(.disabled):focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,0.5)}.btn-outline-danger{border-color:#dc3545;color:#dc3545}.btn-outline-danger:visited{color:#dc3545}.btn-outline-danger:hover{background-color:#dc3545;border-color:#dc3545;color:#fff}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{background-color:transparent;color:#dc3545}.btn-outline-danger.active:not(:disabled):not(.disabled),.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{background-color:#dc3545;border-color:#dc3545;color:#fff}.btn-outline-danger.active:not(:disabled):not(.disabled):focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,0.5)}.btn-outline-light{border-color:#f8f9fa;color:#f8f9fa}.btn-outline-light:visited{color:#f8f9fa}.btn-outline-light:hover{background-color:#f8f9fa;border-color:#f8f9fa;color:#212529}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{background-color:transparent;color:#f8f9fa}.btn-outline-light.active:not(:disabled):not(.disabled),.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{background-color:#f8f9fa;border-color:#f8f9fa;color:#212529}.btn-outline-light.active:not(:disabled):not(.disabled):focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,0.5)}.btn-outline-dark{border-color:#343a40;color:#343a40}.btn-outline-dark:visited{color:#343a40}.btn-outline-dark:hover{background-color:#343a40;border-color:#343a40;color:#fff}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{background-color:transparent;color:#343a40}.btn-outline-dark.active:not(:disabled):not(.disabled),.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{background-color:#343a40;border-color:#343a40;color:#fff}.btn-outline-dark.active:not(:disabled):not(.disabled):focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,0.5)}.btn-link{color:#007bff;font-weight:400;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{box-shadow:none;text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{border-radius:.3rem;font-size:1.25rem;line-height:1.5;padding:.5rem 1rem}.btn-group-sm>.btn,.btn-sm{border-radius:.2rem;font-size:.875rem;line-height:1.5;padding:.25rem .5rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input.btn-block[type=button],input.btn-block[type=reset],input.btn-block[type=submit]{width:100%}.stretched-link::after{background-color:rgba(0,0,0,0);bottom:0;content:'';left:0;pointer-events:auto;position:absolute;right:0;top:0;z-index:1}.text-wrap{white-space:normal !important}.card{background-clip:border-box;background-color:#fff;border:1px solid rgba(0,0,0,0.125);border-radius:.25rem;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;position:relative;word-wrap:break-word}.card>hr{margin-left:0;margin-right:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-bottom:0;margin-top:-.375rem}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{background-color:rgba(0,0,0,0.03);border-bottom:1px solid rgba(0,0,0,0.125);margin-bottom:0;padding:.75rem 1.25rem}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{background-color:rgba(0,0,0,0.03);border-top:1px solid rgba(0,0,0,0.125);padding:.75rem 1.25rem}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{border-bottom:0;margin-bottom:-.75rem;margin-left:-.625rem;margin-right:-.625rem}.card-header-pills{margin-left:-.625rem;margin-right:-.625rem}.card-img-overlay{bottom:0;left:0;padding:1.25rem;position:absolute;right:0;top:0}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-left-radius:calc(.25rem - 1px);border-bottom-right-radius:calc(.25rem - 1px)}.w-100{width:100% !important}.shadow{box-shadow:0 0.5rem 1rem rgba(0,0,0,0.15) !important}.bg-primary{background-color:#007bff !important}button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc !important}a.bg-primary:focus,a.bg-primary:hover{background-color:#0062cc !important}a.text-primary:focus,a.text-primary:hover{color:#121416 !important}.bg-secondary{background-color:#6c757d !important}button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62 !important}a.bg-secondary:focus,a.bg-secondary:hover{background-color:#545b62 !important}a.text-secondary:focus,a.text-secondary:hover{color:#121416 !important}.bg-success{background-color:#28a745 !important}button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34 !important}a.bg-success:focus,a.bg-success:hover{background-color:#1e7e34 !important}a.text-success:focus,a.text-success:hover{color:#121416 !important}.bg-info{background-color:#17a2b8 !important}button.bg-info:focus,button.bg-info:hover{background-color:#117a8b !important}a.bg-info:focus,a.bg-info:hover{background-color:#117a8b !important}a.text-info:focus,a.text-info:hover{color:#121416 !important}.bg-warning{background-color:#ffc107 !important}button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00 !important}a.bg-warning:focus,a.bg-warning:hover{background-color:#d39e00 !important}a.text-warning:focus,a.text-warning:hover{color:#121416 !important}.bg-danger{background-color:#dc3545 !important}button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130 !important}a.bg-danger:focus,a.bg-danger:hover{background-color:#bd2130 !important}a.text-danger:focus,a.text-danger:hover{color:#121416 !important}.bg-light{background-color:#f8f9fa !important}button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5 !important}a.bg-light:focus,a.bg-light:hover{background-color:#dae0e5 !important}a.text-light:focus,a.text-light:hover{color:#121416 !important}.bg-dark{background-color:#343a40 !important}button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124 !important}a.bg-dark:focus,a.bg-dark:hover{background-color:#1d2124 !important}a.text-dark:focus,a.text-dark:hover{color:#121416 !important}.bg-white{background-color:#fff !important}button.bg-white:focus,button.bg-white:hover{background-color:#e6e6e6 !important}a.bg-white:focus,a.bg-white:hover{background-color:#e6e6e6 !important}a.text-white:focus,a.text-white:hover{color:#121416 !important}.text-primary{color:#007bff !important}.text-secondary{color:#6c757d !important}.text-success{color:#28a745 !important}.text-info{color:#17a2b8 !important}.text-warning{color:#ffc107 !important}.text-danger{color:#dc3545 !important}.text-light{color:#f8f9fa !important}.text-dark{color:#343a40 !important}.text-white{color:#fff !important}.text-body{color:#212529 !important}.text-muted{color:#6c757d !important}.text-black-50{color:rgba(0,0,0,0.5) !important}.text-white-50{color:rgba(255,255,255,0.5) !important}.bg-transparent{background-color:transparent !important}.text-justify{text-align:justify !important}.text-left{text-align:left !important}.text-right{text-align:right !important}.text-center{text-align:center !important}.font-weight-light{font-weight:300 !important}.font-weight-lighter{font-weight:lighter !important}.font-weight-normal{font-weight:400 !important}.font-weight-bold{font-weight:700 !important}.font-weight-bolder{font-weight:bolder !important}.font-italic{font-style:italic !important}.container{margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;width:100%}@media (min-width: 576px){.container{max-width:540px}}@media (min-width: 768px){.container{max-width:720px}}@media (min-width: 992px){.container{max-width:960px}}@media (min-width: 1200px){.container{max-width:1140px}}.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;width:100%}@media (min-width: 576px){.container,.container-sm{max-width:540px}}@media (min-width: 768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width: 992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width: 1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-left:-15px;margin-right:-15px}.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{padding-left:15px;padding-right:15px;position:relative;width:100%}@media (min-width: 576px){.col-sm{flex-basis:0;flex-grow:1;-ms-flex-positive:1;-ms-flex-preferred-size:0;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;max-width:100%;width:auto}.col-sm-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-sm-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-sm-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-sm-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-sm-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media (min-width: 768px){.col-md{flex-basis:0;flex-grow:1;-ms-flex-positive:1;-ms-flex-preferred-size:0;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;max-width:100%;width:auto}.col-md-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-md-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-md-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-md-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-md-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media (min-width: 992px){.col-lg{flex-basis:0;flex-grow:1;-ms-flex-positive:1;-ms-flex-preferred-size:0;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;max-width:100%;width:auto}.col-lg-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-lg-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-lg-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-lg-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-lg-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}@media (min-width: 1200px){.col-xl{flex-basis:0;flex-grow:1;-ms-flex-positive:1;-ms-flex-preferred-size:0;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;max-width:100%;width:auto}.col-xl-1{-ms-flex:0 0 8.33333%;flex:0 0 8.33333%;max-width:8.33333%}.col-xl-2{-ms-flex:0 0 16.66667%;flex:0 0 16.66667%;max-width:16.66667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.33333%;flex:0 0 33.33333%;max-width:33.33333%}.col-xl-5{-ms-flex:0 0 41.66667%;flex:0 0 41.66667%;max-width:41.66667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.33333%;flex:0 0 58.33333%;max-width:58.33333%}.col-xl-8{-ms-flex:0 0 66.66667%;flex:0 0 66.66667%;max-width:66.66667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.33333%;flex:0 0 83.33333%;max-width:83.33333%}.col-xl-11{-ms-flex:0 0 91.66667%;flex:0 0 91.66667%;max-width:91.66667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}}.d-flex{display:-ms-flexbox !important;display:flex !important}.sphinx-bs,.sphinx-bs *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.sphinx-bs p{margin-top:0}
diff --git a/6.2.0rc1/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css b/6.2.0rc1/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css
deleted file mode 100644
index fc14abc85d6..00000000000
--- a/6.2.0rc1/_panels_static/panels-main.c949a650a448cc0ae9fd3441c0e17fb0.css
+++ /dev/null
@@ -1 +0,0 @@
-details.dropdown .summary-title{padding-right:3em !important;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}details.dropdown:hover{cursor:pointer}details.dropdown .summary-content{cursor:default}details.dropdown summary{list-style:none;padding:1em}details.dropdown summary .octicon.no-title{vertical-align:middle}details.dropdown[open] summary .octicon.no-title{visibility:hidden}details.dropdown summary::-webkit-details-marker{display:none}details.dropdown summary:focus{outline:none}details.dropdown summary:hover .summary-up svg,details.dropdown summary:hover .summary-down svg{opacity:1}details.dropdown .summary-up svg,details.dropdown .summary-down svg{display:block;opacity:.6}details.dropdown .summary-up,details.dropdown .summary-down{pointer-events:none;position:absolute;right:1em;top:.75em}details.dropdown[open] .summary-down{visibility:hidden}details.dropdown:not([open]) .summary-up{visibility:hidden}details.dropdown.fade-in[open] summary~*{-moz-animation:panels-fade-in .5s ease-in-out;-webkit-animation:panels-fade-in .5s ease-in-out;animation:panels-fade-in .5s ease-in-out}details.dropdown.fade-in-slide-down[open] summary~*{-moz-animation:panels-fade-in .5s ease-in-out, panels-slide-down .5s ease-in-out;-webkit-animation:panels-fade-in .5s ease-in-out, panels-slide-down .5s ease-in-out;animation:panels-fade-in .5s ease-in-out, panels-slide-down .5s ease-in-out}@keyframes panels-fade-in{0%{opacity:0}100%{opacity:1}}@keyframes panels-slide-down{0%{transform:translate(0, -10px)}100%{transform:translate(0, 0)}}.octicon{display:inline-block;fill:currentColor;vertical-align:text-top}.tabbed-content{box-shadow:0 -.0625rem var(--tabs-color-overline),0 .0625rem var(--tabs-color-underline);display:none;order:99;padding-bottom:.75rem;padding-top:.75rem;width:100%}.tabbed-content>:first-child{margin-top:0 !important}.tabbed-content>:last-child{margin-bottom:0 !important}.tabbed-content>.tabbed-set{margin:0}.tabbed-set{border-radius:.125rem;display:flex;flex-wrap:wrap;margin:1em 0;position:relative}.tabbed-set>input{opacity:0;position:absolute}.tabbed-set>input:checked+label{border-color:var(--tabs-color-label-active);color:var(--tabs-color-label-active)}.tabbed-set>input:checked+label+.tabbed-content{display:block}.tabbed-set>input:focus+label{outline-style:auto}.tabbed-set>input:not(.focus-visible)+label{outline:none;-webkit-tap-highlight-color:transparent}.tabbed-set>label{border-bottom:.125rem solid transparent;color:var(--tabs-color-label-inactive);cursor:pointer;font-size:var(--tabs-size-label);font-weight:700;padding:1em 1.25em .5em;transition:color 250ms;width:auto;z-index:1}html .tabbed-set>label:hover{color:var(--tabs-color-label-active)}
diff --git a/6.2.0rc1/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css b/6.2.0rc1/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css
deleted file mode 100644
index adc61662228..00000000000
--- a/6.2.0rc1/_panels_static/panels-variables.06eb56fa6e07937060861dad626602ad.css
+++ /dev/null
@@ -1,7 +0,0 @@
-:root {
---tabs-color-label-active: hsla(231, 99%, 66%, 1);
---tabs-color-label-inactive: rgba(178, 206, 245, 0.62);
---tabs-color-overline: rgb(207, 236, 238);
---tabs-color-underline: rgb(207, 236, 238);
---tabs-size-label: 1rem;
-}
\ No newline at end of file
diff --git a/6.2.0rc1/_sources/animations.rst.txt b/6.2.0rc1/_sources/animations.rst.txt
deleted file mode 100644
index 23441f9a26d..00000000000
--- a/6.2.0rc1/_sources/animations.rst.txt
+++ /dev/null
@@ -1,83 +0,0 @@
-Animations
-==========
-
-Here we will explore what is
-involved in creating animations (i.e., movies). Of course, an animation
-is nothing more than a series of individual images played back in an
-orderly fashion. Here, these images will have been created with GMT.
-A GMT movie is made with the :doc:`movie ` module that takes care of all the
-book-keeping of making a movie (advancing frame counters, converting each
-plot to a raster image, assembling the images into a movie). The user
-is left to focus on the creation of a main frame script (that will have access
-to special variables to know which frame it is as well as user-defined data)
-and optional scripts that
-prepares files for the movie, lays down a constant background plot, and
-appends a constant foreground plot. The :doc:`movie ` module explains
-the available options and gives simple examples. Below are more advanced
-movie examples. You can generate anything from tiny animated gif files
-for your PowerPoint or KeyNote presentations or a full-featured movie with
-thousands of frames at HD or 4k resolution. **Note**: Several of the movie
-examples have been purposefully made simpler by selecting lower frame rates
-and coarser grids so that the automatic building of the documentation (which
-includes the animations) does not take excessive time.
-
-.. cssclass:: gmtgallery
-
-.. jinja::
-
- {% for i in range(1, 6) %}
- {% set i = '%02d' % i %}
- - .. figure:: /_images/anim{{i}}.*
- :target: ./animations/anim{{i}}.html
-
- :ref:`anim{{i}}`
-
- {% endfor %}
-
-.. cssclass:: gmtmovie
-
-- .. youtube:: 3vB53hoLsls
- :width: 100%
-
- :doc:`/animations/anim06`
-
-- .. youtube:: KfBwQlyjz5w
- :width: 100%
-
- :doc:`/animations/anim07`
-
-- .. youtube:: H0RyjHRhJ3g
- :width: 100%
-
- :doc:`/animations/anim08`
-
-- .. youtube:: LTxlR5LuJ8g
- :width: 100%
-
- :doc:`/animations/anim09`
-
-- .. youtube:: FLzYVo7wXAg
- :width: 100%
-
- :doc:`/animations/anim10`
-
-- .. youtube:: nmxy9yb2cR8
- :width: 100%
-
- :doc:`/animations/anim11`
-
-- .. youtube:: X8TojLs0NYk
- :width: 100%
-
- :doc:`/animations/anim12`
-
-- .. youtube:: S-kRGxwOGJw
- :width: 100%
-
- :doc:`/animations/anim13`
-
-.. toctree::
- :hidden:
- :glob:
-
- animations/anim*
diff --git a/6.2.0rc1/_sources/animations/anim01.rst.txt b/6.2.0rc1/_sources/animations/anim01.rst.txt
deleted file mode 100644
index ea23fa12ca7..00000000000
--- a/6.2.0rc1/_sources/animations/anim01.rst.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-.. _anim01:
-
-(1) Animation of the sine function
-----------------------------------
-
-Our first animation is not very ambitious: We wish to plot the sine
-function from 0-360 and take snap shots every 20. To get a smooth curve
-we must sample the function much more frequently; we settle on 10 times
-more frequently than the frame spacing. We place a bright red circle at
-the leading edge of the curve, and as we move forward in time (here,
-angles) we dim the older circles to a dark red color. We add a label
-that indicates the current angle value. Once the 18 frames are completed
-we convert them to a single animated GIF file.
-
-.. literalinclude:: /_verbatim/anim01.txt
- :language: bash
-
-Make sure you understand the purpose of all the steps in our script. In
-this case we did some trial-and-error to determine the exact values to
-use for the map projection, the region, the spacing around the frame,
-etc. so that the final result gave a reasonable layout. Do this planning
-on a single PostScript plot before running a lengthy animation script.
-
-.. figure:: /_images/anim01.*
- :width: 400 px
- :align: center
-
- Animation of a simple sine function.
diff --git a/6.2.0rc1/_sources/animations/anim02.rst.txt b/6.2.0rc1/_sources/animations/anim02.rst.txt
deleted file mode 100644
index c4dfbfe150a..00000000000
--- a/6.2.0rc1/_sources/animations/anim02.rst.txt
+++ /dev/null
@@ -1,26 +0,0 @@
-.. _anim02:
-
-(2) Examining DEMs using variable illumination
-----------------------------------------------
-
-Our next animation uses a gridded topography for parts of Colorado (US);
-the file is distributed with the tutorial examples. Here, we want to use
-:doc:`grdimage ` to generate a shaded-relief
-image sequence in which we sweep the illumination azimuth around the
-entire horizon. The resulting animation illustrates how changing the
-illumination azimuth can bring out subtle features (or artifacts) in the
-gridded data. The red arrow points in the direction of the illumination.
-
-.. literalinclude:: /_verbatim/anim02.txt
- :language: bash
-
-As you can see, these sorts of animations are not terribly difficult to
-put together, especially since our vantage point is fixed. In the next
-example we will move the "camera" around and must therefore deal with
-how to frame perspective views.
-
-.. figure:: /_images/anim02.*
- :width: 400 px
- :align: center
-
- Animation of a DEM using variable illumination.
diff --git a/6.2.0rc1/_sources/animations/anim03.rst.txt b/6.2.0rc1/_sources/animations/anim03.rst.txt
deleted file mode 100644
index 84b0dccca6f..00000000000
--- a/6.2.0rc1/_sources/animations/anim03.rst.txt
+++ /dev/null
@@ -1,20 +0,0 @@
-.. _anim03:
-
-(3) Orbiting a static map
--------------------------
-
-Our third animation keeps a fixed gridded data set but moves the camera
-angle around the full 360. We use
-:doc:`grdview ` to generate a shaded-relief
-image sequence. No additional
-information is plotted on the image. As before we produce an animated
-GIF image.
-
-.. literalinclude:: /_verbatim/anim03.txt
- :language: bash
-
-.. figure:: /_images/anim03.*
- :width: 400 px
- :align: center
-
- Orbiting a static map.
diff --git a/6.2.0rc1/_sources/animations/anim04.rst.txt b/6.2.0rc1/_sources/animations/anim04.rst.txt
deleted file mode 100644
index e71af49c3f8..00000000000
--- a/6.2.0rc1/_sources/animations/anim04.rst.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-.. _anim04:
-
-(4) Flying over topography
---------------------------
-
-Our next animation simulates what an imaginary satellite might see as it
-passes in a great circle from New York to Miami at an altitude of 160
-km. We use the general perspective view projection with
-:doc:`grdimage ` and use
-:doc:`project ` to create a great circle path
-between the two cities, sampled every 5 km. The main part of the script
-will make the DVD-quality frames from different view points, draw the
-path on the ground, and add frame numbers to each frame. As this
-animation generates 355 frames we can use 3rd party tools to turn the
-image sequence into a MPEG-4 movie. **Note**: At the moment,
-:doc:`grdview ` cannot use general perspective
-view projection to allow "fly-through" animations like Fledermaus; we
-expect to add this functionality in a future version.
-
-.. literalinclude:: /_verbatim/anim04.txt
- :language: bash
-
-
-.. Need to include the following 0 px wide dummy image for video poster
-
-.. only:: html
-
- .. image:: /_images/anim04.png
- :width: 0 px
-
-.. raw:: html
-
-
diff --git a/6.2.0rc1/_sources/animations/anim05.rst.txt b/6.2.0rc1/_sources/animations/anim05.rst.txt
deleted file mode 100644
index 618b7e4118f..00000000000
--- a/6.2.0rc1/_sources/animations/anim05.rst.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-.. _anim05:
-
-(5) Control spline gridding via eigenvalues
--------------------------------------------
-
-Our next animation performs gridding using cubic splines but
-restricts the solution to using only the first *k* eigenvalues
-of the 52 that are required for an exact interpolation of this
-data set consisting of 52 points. We use
-:doc:`greenspline ` to grid the data and select
-an ever-increasing number of eigenvalues, then show a contour
-map of the evolving surface. The data misfits are indicated
-by the colored circles; as we approach the full solution these
-all become white (no misfit). These 52 frames are well suited
-for an animated GIF.
-
-.. literalinclude:: /_verbatim/anim05.txt
- :language: bash
-
-.. figure:: /_images/anim05.*
- :width: 400 px
- :align: center
-
- Evolution of a splined grid.
diff --git a/6.2.0rc1/_sources/animations/anim06.rst.txt b/6.2.0rc1/_sources/animations/anim06.rst.txt
deleted file mode 100644
index ea7ed858fd4..00000000000
--- a/6.2.0rc1/_sources/animations/anim06.rst.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-.. _anim06:
-
-(6) Demonstrate aliasing by sampling a chirp
---------------------------------------------
-
-We demonstrate aliasing by sampling a linear chirp signal and then try to reconstruct
-the original signal using a cubic spline interpolator through the samples. Ideally, we
-should do this via the Shannon-Whittaker sinc function but alas not in GMT yet. As the
-frequency of the chirp increases we find it harder and harder to reconstruct a reasonable
-representation of the original signal from the samples. The morale is you need to sample
-data as often as you are able to. Here, we added a title slide visible for 6 seconds, then
-fade out to the animation. The scripts are a bit longer due to lots of little details.
-The finished movie is available in our YouTube channel as well:
-https://youtu.be/3vB53hoLsls
-The movie took ~3 minutes to render on a 24-core MacPro 2013.
-
-.. literalinclude:: /_verbatim/anim06.txt
- :language: bash
-
-.. youtube:: 3vB53hoLsls
- :width: 100%
diff --git a/6.2.0rc1/_sources/animations/anim07.rst.txt b/6.2.0rc1/_sources/animations/anim07.rst.txt
deleted file mode 100644
index 7a03ecd7df5..00000000000
--- a/6.2.0rc1/_sources/animations/anim07.rst.txt
+++ /dev/null
@@ -1,24 +0,0 @@
-.. _anim07:
-
-(7) Spinning Earth showing crustal ages
-----------------------------------------
-
-Animation of a spinning Earth showing the crustal ages from EarthByte for the oceans
-and topographic relief on land, with shading given by the global relief and modified
-by position relative to an artificial sun in the east. A progress slice is added as well.
-We add a 1 second fade in and a 1 second fade out for the animation
-
-- DEM: @earth_relief_02m
-- Ages: @earth_age_02m.grd
-
-The resulting movie was presented at the Fall 2019 AGU meeting in an eLighting talk:
-P. Wessel, 2019, GMT science animations for the masses, Abstract IN21B-11.
-The finished movie is available in our YouTube channel as well (without fading):
-https://youtu.be/KfBwQlyjz5w
-The movie took ~2.5 hours to render on a 24-core MacPro 2013.
-
-.. literalinclude:: /_verbatim/anim07.txt
- :language: bash
-
-.. youtube:: KfBwQlyjz5w
- :width: 100%
diff --git a/6.2.0rc1/_sources/animations/anim08.rst.txt b/6.2.0rc1/_sources/animations/anim08.rst.txt
deleted file mode 100644
index 36ea8128bbf..00000000000
--- a/6.2.0rc1/_sources/animations/anim08.rst.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-.. _anim08:
-
-(8) One year (2018) of Pacific seismicity events
------------------------------------------------------
-
-Animation of all simplicity in the Pacific basin during 2018 that exceeded
-a threshold of magnitude 5. We then plot the earthquakes as they occurred on
-a map that moves in longitude from west to east, with a deliberate pause near
-Longitude 200 so we can watch the near-daily magnitude 5.2 quakes that hit the
-Big Island of Hawaii during the 3-month 2018 eruption. We scale magnitude to
-symbol size (spherical circle diameter in km) and announce each quake by magnifying
-size and whitening the color for a little bit. Later the symbols fade to darker
-color and smaller sizes but remain for the duration of the movie.
-
-- DEM: @earth_relief_02m
-- Line: ridge.txt
-
-The resulting movie was presented at the Fall 2019 AGU meeting in an eLighting talk:
-P. Wessel, 2019, GMT science animations for the masses, Abstract IN21B-11.
-The finished movie is available in our YouTube channel as well:
-https://youtu.be/H0RyjHRhJ3g
-The movie took ~1 hour to render on a 24-core MacPro 2013.
-
-.. literalinclude:: /_verbatim/anim08.txt
- :language: bash
-
-.. youtube:: H0RyjHRhJ3g
- :width: 100%
diff --git a/6.2.0rc1/_sources/animations/anim09.rst.txt b/6.2.0rc1/_sources/animations/anim09.rst.txt
deleted file mode 100644
index f36dc3adf00..00000000000
--- a/6.2.0rc1/_sources/animations/anim09.rst.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-.. _anim09:
-
-(9) Flying over the Antarctic Ridge and the East Pacific Rise
-=============================================================
-
-Animation of a simulated fly-over of the Pacific basin mid-ocean ridge system.
-It uses a premade flight path that originally was derived from a data file
-of the world's ridges, then filtered and manipulated to give the equidistant
-path to simulate a constant velocity at the given altitude, with synthetic
-banking as we turn to follow the path. We use the 30 arc second global relief
-grid and overlay a few labels for named features.
-
-- Grid: @earth_relief_30s
-- Path: MOR_PAC_twist_path.txt
-- Labels: MOR_names.txt
-
-We create a global intensity grid using shading from East and a CPT file; these are
-created by the preflight script.
-We add a 1 second fade in and a 1 second fade out for the animation
-The resulting movie was presented at the Fall 2019 AGU meeting in an eLighting talk:
-P. Wessel, 2019, GMT science animations for the masses, Abstract IN21B-11.
-
-The finished movie is available in our YouTube channel as well (without fading):
-https://youtu.be/LTxlR5LuJ8g
-
-The movie took ~6 hours to render on a 24-core MacPro 2013.
-
-.. literalinclude:: /_verbatim/anim09.txt
- :language: bash
-
-.. youtube:: LTxlR5LuJ8g
- :width: 100%
diff --git a/6.2.0rc1/_sources/animations/anim10.rst.txt b/6.2.0rc1/_sources/animations/anim10.rst.txt
deleted file mode 100644
index 2f49e5ecd14..00000000000
--- a/6.2.0rc1/_sources/animations/anim10.rst.txt
+++ /dev/null
@@ -1,29 +0,0 @@
-.. _anim10:
-
-(10) The effect of sub-pixeling
-===============================
-
-GMT animations all start with designing plots that are created using the
-PostScript language. It is therefore vector graphics with no limitations
-imposed by pixel resolutions. However, to make an animation we must render
-these PostScript plots into raster images (we use PNG) and a pixel resolution
-enters. Unlike printed media (laserwriters), the dots-per-unit in an animation
-is much lower, and compromizes are made when vector graphics must be turned
-into pixels. GMT's movie module (and psconvert for still images) offers the
-option of sub-pixeling. It means the image is temporarily enlarged to have
-more pixels than requested, then shrunk back down. These steps tend to make
-the lower-resolution images better than the raw rendering. Here we show
-the effect of different sub-pixel settings - notice how the movies with
-little or no sub-pixeling "jitters" as time goes by.
-The resulting movie was presented at the Fall 2019 AGU meeting in an eLighting talk:
-P. Wessel, 2019, GMT science animations for the masses, Abstract IN21B-11.
-The finished movie is available in our YouTube channel as well:
-https://youtu.be/FLzYVo7wXAg
-The movie took ~2 minutes to render on a 24-core MacPro 2013.
-Demonstrate the effect of sub-pixeling
-
-.. literalinclude:: /_verbatim/anim10.txt
- :language: bash
-
-.. youtube:: FLzYVo7wXAg
- :width: 100%
diff --git a/6.2.0rc1/_sources/animations/anim11.rst.txt b/6.2.0rc1/_sources/animations/anim11.rst.txt
deleted file mode 100644
index 2b7b9e99022..00000000000
--- a/6.2.0rc1/_sources/animations/anim11.rst.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-.. _anim11:
-
-(11) Wrapping the Marbles on a Sphere
-=====================================
-
-Using :doc:`/grdmix`, we are blending the NASA day and night views from the Blue and Black Marble mosaic
-images using a day-night mask set for the summer solstice midnight in Hawaii
-on June 20, 2020. In addition, we adjust the colors using the intensities derived
-from the slopes of the earth relief grid. We spin the view point around at 24 frames per second
-where each frame advances the viewpoint 0.25 degrees of longitude.
-
-.. literalinclude:: /_verbatim/anim11.txt
- :language: bash
-
-.. youtube:: nmxy9yb2cR8
- :width: 100%
diff --git a/6.2.0rc1/_sources/animations/anim12.rst.txt b/6.2.0rc1/_sources/animations/anim12.rst.txt
deleted file mode 100644
index dabf5edd7a7..00000000000
--- a/6.2.0rc1/_sources/animations/anim12.rst.txt
+++ /dev/null
@@ -1,17 +0,0 @@
-.. _anim12:
-
-(12) Image and Grid Manipulations
-=================================
-
-We again use :doc:`/grdmix`, blending the NASA day and night views from the Blue and Black Marble mosaic
-images, but here we recompute a day-night mask for every 1 minute in a single day, for 1440
-frames. In addition, we adjust the colors using the intensities derived
-from the slopes of the earth relief grid. Since no GMT plot is made here we do not use :doc:`/movie`
-but instead use :doc:`/batch` to build the images and then create the movie directly from the set
-of PNG HD images.
-
-.. literalinclude:: /_verbatim/anim12.txt
- :language: bash
-
-.. youtube:: X8TojLs0NYk
- :width: 100%
diff --git a/6.2.0rc1/_sources/animations/anim13.rst.txt b/6.2.0rc1/_sources/animations/anim13.rst.txt
deleted file mode 100644
index defcc78ef2f..00000000000
--- a/6.2.0rc1/_sources/animations/anim13.rst.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-.. _anim13:
-
-(13) Animating time-series (seismograms)
-=========================================
-
-Here we demonstrate how one can animate a time-series so that the line grows in length and the
-pen thickness and color/intensity changes as it is being written. The trick we use is to convert the
-line into a series of densely-spaced points, using the dpi of the desired movie to determine the point
-resolution. These points are then animated like other points. We use :doc:`/events` to preprocess
-the three components of a seismogram from a 2020 earthquake in the Aleutians and then animate it using
-real time. The three components evolve over time in each subplot panel while the rest of the presentation
-includes a source map and some metadata, plus a timer and progress indicator.
-
-.. literalinclude:: /_verbatim/anim13.txt
- :language: bash
-
-.. youtube:: S-kRGxwOGJw
- :width: 100%
diff --git a/6.2.0rc1/_sources/api.rst.txt b/6.2.0rc1/_sources/api.rst.txt
deleted file mode 100644
index 17eea0dc543..00000000000
--- a/6.2.0rc1/_sources/api.rst.txt
+++ /dev/null
@@ -1,4122 +0,0 @@
-.. set default highlighting language for this document:
-.. highlight:: c
-
-.. _api:
-
-=========
-GMT C API
-=========
-
-Introduction
-============
-
-.. index:: ! API
-
-Preamble
---------
-
-.. figure:: /_images/GMT4_mode.png
- :height: 554 px
- :width: 1122 px
- :align: center
- :scale: 50 %
-
- GMT 4 programs contain all the high-level functionality.
-
-
-Prior to version 5, the bulk of GMT functionality was coded directly
-in the standard GMT C program modules (e.g., ``surface.c``, ``grdimage.c``, etc.). The
-GMT library only offered access to low-level functions from which
-those high-level GMT programs were built. The standard GMT programs
-have been very successful, with tens of thousands of users world-wide.
-However, the design of the main programs prevented developers from
-leveraging GMT functionality from within other programming
-environments since access to GMT tools could only be achieved via
-system calls [1]_. Consequently, all data i/o had to be done via
-temporary files. The design also prevented the GMT developers
-themselves from taking advantage of these modules directly. For
-instance, the tool :doc:`legend` needed to
-make extensive use of system calls to :doc:`plot` and
-:doc:`text` in order to plot the lines,
-symbols and text that make up a map legend, making it a very awkward
-program to maintain.
-
-.. figure:: /_images/GMT5_mode.png
- :height: 399 px
- :width: 1116 px
- :align: center
- :scale: 50 %
-
- GMT 5 programs contain all the high-level functionality.
-
-
-Starting with GMT version 5, all standard GMT programs have been
-rewritten into separate function "modules" invoked by a single
-driver program called ``gmt.c``.
-The :doc:`gmt` executable simply calls the corresponding
-GMT modules; it is these modules that do all the work. These new
-functions have been placed in a new GMT high-level API library and can
-be called from a variety of environments (C/C++, Fortran, Julia, Python,
-MATLAB, Visual Basic, R, etc.) [2]_. For example, the main
-program ``blockmean.c`` has been reconfigured as a high-level function
-``GMT_blockmean()``, which does the actual spatial averaging and can
-pass the result back to the calling program (or write it to file). The
-previous behavior of ``blockmean.c`` is achieved by calling ``gmt blockmean``,
-i.e., the module is now just the first argument to the :doc:`gmt` executable.
-For backwards compatibility with older GMT (4) scripts we optionally
-install numerous symbolic links to the gmt executable with names such
-as blockmean, plot, surface, etc. The gmt executable is smart enough to
-understand when it is being invoked via one of these links and then knows
-which module to call upon.
-Consequently, ``blockmean.c`` and other files do in
-fact no longer exist.
-
-.. figure:: /_images/GMT5_external.png
- :height: 616 px
- :width: 1193 px
- :align: center
- :scale: 50 %
-
- GMT 5 API showing current and future external environments.
-
-
-The i/o abstraction layer
--------------------------
-
-In order for the API to be as flexible as possible we have
-generalized the notions of input and output. Data that already reside in
-an application's memory may serve as input to a GMT module and we refer
-to such data as "Virtual Files". Other
-sources of input may be file pointers and file descriptors (as well as
-the standard mechanism for passing file names). For standard
-data table i/o, the GMT API takes care of the task of assembling any
-combination of files, pointers, and memory locations into *a single
-virtual data set* from which the GMT module may read (a) all
-records at once into memory, or (b) read one record at a time. Likewise,
-GMT functions may write their output to a virtual destination, which
-might be a memory location in the user's application (another Virtual File), a file pointer or
-descriptor, or an output file. The GMT modules are unaware of these
-details and simply read from a "source" and write to a "destination".
-Thus, the standard concept of file-based input/output so familiar to
-any GMT user carries over to the API, except for the generalization
-that files can be virtual files already in memory. Because of this
-design we will see that we need to associate these virtual files
-with special filenames that we may pass to modules, and the modules
-will faithfully treat these as real files. However, under the hood
-the API layer will take care of the differences between real and
-virtual files.
-
-Users who wish to maintain their own data types and memory management
-can also use the GMT modules, but some limitations and requirements do
-apply: The user's data can either be provided as (1) a 2-D matrix (of
-any data type, e.g., float, integer, etc.) and in any memory layout
-configuration (e.g., row-major or column-major layout) or as (2) a
-set of column vectors that each may be of any type. These custom arrays
-will need to be hooked onto the GMT containers :ref:`GMT_MATRIX `
-and :ref:`GMT_VECTOR `, respectively.
-Such objects can then be treated as virtual files for either input of output.
-
-Our audience
-------------
-
-Here, we document the new functions in the GMT API library for
-application developers who wish to call these functions from their own
-custom programs. At this point, only the new high-level GMT API is
-fully documented and intended for public use. The structure and
-documentation of the under-lying lower-level GMT library is not
-finalized. Developers using these functions may risk disruption to their
-programs due to changes we may make in the library in support of the
-GMT API. However, developers who wish to make supplemental packages to
-be distributed as part of GMT will (other than talk to us) probably
-want to access the entire low-level GMT library as well. It is
-unlikely that the low-level library will ever be fully documented.
-
-There are two classes of development that users can pursue:
-
-#. Building stand-alone custom executables that link with the shared GMT
- API. Our examples in this documentation are of this kind. There programs
- are likely to address a user's special data formats or processing needs
- by leveraging high-level GMT modules to do some of the heavy lifting.
-
-#. Building shared library plugins to extend the breath of GMT. Users who
- wish to build one or more new modules and distributed then via a plugin
- that is dynamically loaded at run-time can now do so. At the present,
- all the modules in the official GMT supplement are compiled into a single
- plugin that can be accessed at run-time. Similarly, developers may add
- additional plugin libraries with any number of GMT-like modules and these
- will then be available from the gmt command (as well as from derived
- interfaces such as the GMT/MATLAB toolbox and the Python module). An
- example of plugin development is given by the
- `GSFML extension to GMT `_.
-
-Definitions
------------
-
-For the purpose of this documentation a few definitions are needed:
-
-#. "Standard GMT program" refers to one of the traditional stand-alone
- command-line executables known to all GMT users, e.g.,
- :doc:`blockmean`, :doc:`plot`,
- :doc:`grdimage`, etc. Prior to version 5,
- these were the only GMT executables available. In GMT 5 and up, these are
- accessed via the :doc:`gmt` executable.
-
-#. "\ GMT module" refers to the function in the GMT API library that
- is responsible for all the action taken by the corresponding
- standard GMT program. All such modules are given the same names as the
- corresponding programs e.g., "blockmean", but are invoked via the
- ``GMT_Call_Module`` function.
-
-#. "\ GMT application" refers to a new application written by any
- developer. It uses the API, perhaps for custom i/o, and may call one
- or more GMT functions to create a new GMT-compatible executable.
-
-#. "\ GMT plugin library" refers to a collection of one or more new custom
- GMT-like modules that are presented as a plugin library. It such libraries
- are placed in the official GMT plugin directory or their path is added to
- the GMT defaults parameter :term:`GMT_CUSTOM_LIBS` then the :doc:`gmt` executable can find them.
-
-#. "Family" refers to one of the many high-level GMT data types (e.g., grids, CPTs)
- and is typically a required argument to some API functions.
-
-#. "Method" refers to one of several ways in which data can be read or written
- in the API, including from existing memory variables.
-
-#. "Direction" is typically either GMT_IN (for reading) or GMT_OUT (for writing).
-
-#. In the API description that follows we will use the type ``int`` to
- mean a 4-byte integer. All integers used in the API are 4-byte
- integers with the exception of one function where an 8-byte integer is
- used. Since different operating systems have their own way of
- defining 8-byte integers we use C99's ``int64_t`` for this purpose;
- it is guaranteed to yield the correct type that the GMT function
- expects.
-
-In version 5, the standard GMT programs are themselves simple invocations
-of the :doc:`gmt` application with the function name as argument.
-However, some of these modules, such as
-:doc:`legend`, :doc:`gmtconvert`,
-:doc:`grdblend`,
-:doc:`grdfilter` and others may call several additional modules.
-
-API changes from GMT5 to GMT 6
-------------------------------
-
-The API released with GMT5 was considered experimental as our usage of it in GMT proper
-as well as in the GMT/MATLAB toolbox and the GMT/Python package would undoubtably lead to
-revisions. We developed API to enable GMT access from other environments hence we want
-the library to address the needs of such developers. Here are the changes in the GMT 6
-API that are not backwards compatible with GMT 5:
-
-#. There is no longer a GMT_TEXTSET resource. Data records are now generalized to
- contain an optional leading numerical array followed by an optional trailing text.
- A "TEXTSET" in this context is simply a DATASET that has no leading numerical array.
- This change was necessary so that all modules reading tables expect the same fundamental
- GMT_DATASET resource. The alternative (which we lived to regret) was that developers
- calling modules from their environment would have to format their data in different ways
- depending on the module, and in some case depending on module options. Now, all table
- modules expect GMT_DATASET.
-#. The function GMT_Alloc_Segment no longer takes the family of the segment (since there are
- now only DATASET segments) but the family variable has been reused as a mode which is
- passed as either GMT_WITH_STRINGS or GMT_NO_STRINGS so that data segments can be allocated
- with or without the optional string array.
-#. We introduce a new structure GMT_RECORD which is used by GMT_Get_Record and GMT_Put_Record.
- Because such records may have both leading numerical columns and a trailing string these
- functions needed to work with such a structure rather than either an array or string.
-#. The unused function GMT_Set_Columns needed to accept *direction* so it could be used for
- either input or output. It is rarely needed but some tools that must only read *N* numerical
- columns and treat anything beyond that as trailing text (even if numbers) must set the
- fixed input columns before reading. We also added one more mode (GMT_COL_FIX_NO_TEXT) to
- enforce reading of a fixed number of numerical columns and skip any trailing text.
-#. The GMT_DATASET structure has gained a new (hidden) enum GMT_enum_read ``type`` which indicates what
- record types were read to produce this dataset (GMT_READ_DATA, GMT_READ_TEXT, GMT_READ_MIXED).
- We also changed the geometry from unsigned int to enum GMT_enum_geometry.
-#. The long obsolete enums GMT_READ_DOUBLE and GMT_WRITE_DOUBLE have now fully been removed;
- use GMT_READ_DATA and GMT_WRITE_DATA instead.
-#. The GMT_Convert_Data function's flag array is now of length 2 instead of 3 (because there are no
- longer any TEXTSET settings), with what used to be flag3 now being given as flag2.
-
-GMT resources
--------------
-
-The GMT API knows how to create, duplicate, read and write six types of data objects common to
-GMT operations: Pure data tables (ASCII or binary), grids, images, cubes, color
-palette tables (also known as CPT), PostScript documents, and text tables (ASCII,
-usually a mix of data and free-form text). In addition, we
-provide two data objects to facilitate the passing of simple user arrays
-(one or more equal-length data columns of any data type, e.g., double,
-char) and 2-D or 3-D user matrices (of any data type and column/row
-organization). We refer to these data types as GMT *resources*.
-There are many attributes for each of these resources and therefore we
-use a top-level structure for each object to keep them all within one
-container. These containers are given or returned by GMT API
-functions using opaque pointers (``void *``). Below we provide a brief
-overview of these containers, listing only the most critical members.
-For complete details, see Appendix A. We will later present how they are used when
-importing or exporting them to or from files, memory locations, or
-streams. The first six are the standard GMT objects, while the latter
-two are special data containers to facilitate the passing of user
-data in and out of GMT modules. These resources are defined in the include
-file ``gmt_resources.h``; please consult this file to ensure correctness
-in case the documentation is not up-to-date. Note than in all instances
-the fundamental data variable is called "data".
-
-Data tables
-~~~~~~~~~~~
-
-Much data processed in GMT come in the form of ASCII, netCDF, or
-native binary data tables. These may have any number of header records
-(ASCII files only) and perhaps segment headers that separate groups of points
-or lines and polygons. GMT programs will read
-one or more such tables when importing data. However, to avoid memory
-duplication or data limitations some programs may prefer to read such records one
-at the time. The GMT API has functions that let you read your data
-record-by-record by presenting a *virtual* data set that combines all the
-data tables specified as input. This simplifies record processing
-considerably. Programs reading an entire data set will encounter several
-structures: A data set (``struct`` :ref:`GMT_DATASET `) may contain any number of
-tables (``struct`` :ref:`GMT_DATATABLE `), each with any number of segments
-(``struct`` :ref:`GMT_DATASEGMENT `), each segment with any number of
-records, and each record with any number of (fixed) columns. Thus, the arguments
-to GMT API functions that handle such data sets expect a struct :ref:`GMT_DATASET `.
-All segments are expected to have the same number of columns.
-
-.. _struct-dataset2:
-
-.. code-block:: c
-
- struct GMT_DATASET { /* Single container for an array of GMT tables (files) */
- uint64_t n_tables; /* The total number of tables contained */
- uint64_t n_columns; /* The number of data columns */
- uint64_t n_segments; /* The total number of segments across all tables */
- uint64_t n_records; /* The total number of data records across all tables */
- double *min; /* Minimum coordinate for each column */
- double *max; /* Maximum coordinate for each column */
- struct GMT_DATATABLE **table; /* Pointer to array of tables */
- };
-
-The top-level dataset structure for pure data tables contains the table structure, as defined below:
-
-.. _struct-datatable2:
-
-.. code-block:: c
-
- struct GMT_DATATABLE { /* Single container for an array of data segments */
- unsigned int n_headers; /* Number of table header records (0 if no header) */
- uint64_t n_columns; /* Number of columns (fields) in each record */
- uint64_t n_segments; /* Number of segments in the array */
- uint64_t n_records; /* Total number of data records across all segments */
- double *min; /* Minimum coordinate for each column */
- double *max; /* Maximum coordinate for each column */
- char **header; /* Array with all table header records, if any) */
- struct GMT_DATASEGMENT **segment; /* Pointer to array of segments */
- };
-
-Finally, the table structure depends on a structure for individual data segments:
-
-.. _struct-datasegment2:
-
-.. code-block:: c
-
- struct GMT_DATASEGMENT { /* For holding segment lines in memory */
- uint64_t n_rows; /* Number of points in this segment */
- uint64_t n_columns; /* Number of fields in each record (>= 2) */
- double *min; /* Minimum coordinate for each column */
- double *max; /* Maximum coordinate for each column */
- double **data; /* Data x,y, and possibly other columns */
- char **text; /* trailing text strings beyond the data */
- char *label; /* Label string (if applicable) */
- char *header; /* Segment header (if applicable) */
- };
-
-Data sets may have different geometries, such as representing a set of points,
-one or more lines, or closed polygons.
-
-GMT grids
-~~~~~~~~~
-
-GMT grids are used to represent equidistant and organized 2-D
-surfaces. These can be processed or plotted as contour maps, color images, or
-perspective surfaces. Because the native GMT grid is simply a 1-D
-float array with metadata kept in a separate ``struct`` :ref:`GMT_GRID_HEADER ` header, we pass
-this information via a ``struct`` :ref:`GMT_GRID `, which is a container that
-holds both items. Thus, the arguments to GMT API functions that handle
-GMT grids expect this type of variable.
-
-.. _struct-grid2:
-
-.. code-block:: c
-
- struct GMT_GRID { /* A GMT float grid and header in one container */
- struct GMT_GRID_HEADER *header; /* The full GMT header for the grid */
- float *data; /* Pointer to the float grid array */
- };
-
-The top-level grid structure, holding both header and data array, depends on the grid header structure:
-
-.. code-block:: c
-
- struct GMT_GRID_HEADER {
- uint32_t n_columns; /* Number of columns */
- uint32_t n_rows; /* Number of rows */
- uint32_t registration; /* GMT_GRID_NODE_REG (0) for node grids,
- GMT_GRID_PIXEL_REG (1) for pixel grids */
- double wesn[4]; /* Min/max x and y coordinates */
- double z_min; /* Minimum z value */
- double z_max; /* Maximum z value */
- double inc[2]; /* The x and y increments */
- double z_scale_factor; /* Grid values must be multiplied by this factor */
- double z_add_offset; /* After scaling, add this */
- char x_units[GMT_GRID_UNIT_LEN80]; /* Units in x-direction */
- char y_units[GMT_GRID_UNIT_LEN80]; /* Units in y-direction */
- char z_units[GMT_GRID_UNIT_LEN80]; /* Grid value units */
- char title[GMT_GRID_TITLE_LEN80]; /* Name of data set */
- char command[GMT_GRID_COMMAND_LEN320];/* Name of generating command */
- char remark[GMT_GRID_REMARK_LEN160]; /* Comments regarding this data set */
- };
-
- The basic grid header holds the metadata written to grid files.
-
-GMT images
-~~~~~~~~~~
-
-GMT images are used to represent bit-mapped images typically obtained
-via the GDAL bridge. These can be reprojected internally, such as when
-used in :doc:`grdimage`. Since images and grids share the concept of a header,
-we use the same header structure for grids as for images; however, some
-additional metadata attributes are also needed. Finally, the image
-itself may be of any data type and have more than one band (channel).
-Both image and header information are passed via a ``struct`` :ref:`GMT_IMAGE `,
-which is a container that holds both items. Thus, the arguments to
-GMT API functions that handle GMT images expect this type of
-variable. Unlike the other objects, writing images has only partial
-support via :doc:`grdimage` [3]_.
-For the full definition, see :ref:`GMT_IMAGE `.
-
-.. _struct-image2:
-
-.. code-block:: c
-
- struct GMT_IMAGE { /* A GMT char image, header, and colormap in one container */
- enum GMT_enum_type type; /* Data type, e.g. GMT_FLOAT */
- int *colormap; /* Array with color lookup values */
- int n_indexed_colors; /* Number of colors in a color-mapped image */
- struct GMT_GRID_HEADER *header; /* Pointer to full GMT header for the image */
- unsigned char *data; /* Pointer to actual image */
- };
-
-
-GMT cubes
-~~~~~~~~~
-
-GMT cubes are used to represent 3-D grids where all the horizontal layers
-are represented by a single grid header. Thus, all nodes along the third
-dimension are coregistered and in the horizontal plane they are, like all
-GMT grids, equidistant. However, the spacing in the third dimension (which
-is typically depth or time) does not have to be equidistant. At this moment,
-only :doc:`greenspline` and :doc:`grdinterpolate` can produce 3-D cubes while
-the latter can also read them (other grid modules can read individual layers
-of a cube as a single grid).
-We use the same header structure as for grids. However, some
-additional metadata attributes are needed for the third dimension.
-Both the cube and header information are passed via a ``struct`` :ref:`GMT_CUBE `,
-which is a container that holds all items. Thus, the arguments to
-GMT API functions that handle GMT cubes expect this type of
-variable.
-For the full definition, see :ref:`GMT_CUBE `.
-
-.. _struct-cube2:
-
-.. code-block:: c
-
- struct GMT_CUBE { /* A GMT 3-D cube in one container */
- struct GMT_GRID_HEADER *header; /* The full GMT header for the grid */
- float *data; /* Pointer to the float 3-D array */
- };
-
-Color palette tables (CPT)
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The color palette table files, or just CPTs, contain colors and
-patterns used for plotting data such as surfaces (i.e., GMT grids) or
-symbols, lines and polygons (i.e., GMT tables). GMT programs will
-generally read in a color palette table, make it the current palette, do
-the plotting, and destroy the table when done. The information is
-accessed via a pointer to ``struct`` :ref:`GMT_PALETTE `. Thus, the arguments
-to GMT API functions that handle palettes expect this type of
-variable. It is not expected that users will wish to manipulate the CPT
-directly, but rather use this mechanism to hold them in memory and
-pass as arguments to GMT modules. Developers are unlikely to actually
-manipulate the contents of CPT structures but if needed then
-the full definition can be found in :ref:`GMT_PALETTE `.
-
-.. _struct-palette2:
-
-.. code-block:: c
-
- struct GMT_PALETTE { /* Holds color-related parameters for look-up */
- unsigned int n_headers; /* Number of CPT header records (0 if no header) */
- unsigned int n_colors; /* Number of colors in the data array */
- unsigned int mode; /* Flags controlling use of BFN colors */
- struct GMT_LUT *data; /* CPT lookup data with color information */
- struct GMT_BFN bfn[3]; /* Structures with back/fore/nan fills */
- char **header; /* Array with all CPT header records, if any) */
- };
-
-PostScript document
-~~~~~~~~~~~~~~~~~~~
-
-Normally, GMT modules producing PostScript will write to standard output
-or a designated file. Alternatively, you can tell the API to write to a
-memory buffer instead and then receive a structure with the final
-plot (or partial plot) represented as a long text string.
-The full structure definition can be found in :ref:`GMT_POSTSCRIPT `.
-
-.. _struct-postscript2:
-
-.. code-block:: c
-
- struct GMT_POSTSCRIPT { /* Single container for a chunk of PostScript text */
- unsigned int n_headers; /* Number of PostScript header records (0 if no header) */
- size_t n_bytes; /* Length of data array so far */
- unsigned int mode; /* Bit-flag for header (1) and trailer (2) */
- char *data; /* Pointer to actual PostScript text */
- char **header; /* Array with all PostScript header records, if any) */
- };
-
-User data matrices
-~~~~~~~~~~~~~~~~~~
-
-Users may write programs that need to call GMT modules but may keep their data in separate
-2-D arrays that the allocate and maintain independent of GMT.
-For instance, a program may have built an integer 2-D matrix in memory and wish to
-use that as the input grid to the ``grdfilter`` module, which
-normally expects a ``struct`` :ref:`GMT_GRID ` with floating point data via an actual or virtual
-file. To handle this case we create a ``struct`` :ref:`GMT_MATRIX ` container (see :ref:`Create empty resources `),
-assign the appropriate union pointer to your data matrix and provide information on dimensions
-and data type. We then open this container as a virtual file and pass its filename to any module.
-The full structure definition can be found in :ref:`GMT_MATRIX `.
-
-.. _struct-matrix2:
-
-.. code-block:: c
-
- struct GMT_MATRIX { /* Single container to hold a user matrix */
- uint64_t n_rows; /* Number of rows in the matrix */
- uint64_t n_columns; /* Number of columns in the matrix */
- uint64_t n_layers; /* Number of layers in a 3-D matrix */
- enum GMT_enum_fmt shape; /* 0 = C (rows) and 1 = Fortran (cols) */
- enum GMT_enum_reg registration; /* 0 for gridline and 1 for pixel registration */
- size_t dim; /* Allocated length of longest C or Fortran dim */
- size_t size; /* Byte length of data */
- enum GMT_enum_type type; /* Data type, e.g. GMT_FLOAT */
- double range[6]; /* Contains xmin/xmax/ymin/ymax[/zmin/zmax] */
- union GMT_UNIVECTOR data; /* Pointer to actual matrix of the chosen type */
- char **text; /* Pointer to optional array of strings [NULL] */
- };
-
-The ``enum`` types referenced in :ref:`GMT_VECTOR ` and
-Table :ref:`GMT_MATRIX ` and summarized in Table :ref:`types `.
-
-User data columns
-~~~~~~~~~~~~~~~~~
-
-Likewise, programs may instead be manipulating a set of custom column vectors.
-For instance, the user's program may have allocated and populated
-three column arrays of type float and wishes to use these as the input
-source to the ``surface`` module, which normally expects double
-precision triplets via a ``struct`` :ref:`GMT_DATASET ` read from an actual or virtual file
-Simply create a new :ref:`GMT_VECTOR ` container
-(see section :ref:`Create empty resources `) and assign the union array pointers (see
-:ref:`univector `) to your data columns and provide the required
-information on length, data types, and optionally range. Again, once we open this data
-as a virtual file we can pass its filename to any module expecting such data.
-The full structure definition can be found in :ref:`GMT_VECTOR `.
-
-.. _struct-vector2:
-
-.. code-block:: c
-
- struct GMT_VECTOR { /* Single container to hold user vectors */
- uint64_t n_columns; /* Number of vectors */
- uint64_t n_rows; /* Number of rows in each vector */
- enum GMT_enum_reg registration; /* 0 for gridline and 1 for pixel registration */
- enum GMT_enum_type *type; /* Array with data type for each vector */
- union GMT_UNIVECTOR *data; /* Array with unions for each column */
- double range[2]; /* The min and max limits on t-range (or 0,0) */
- char **text; /* Pointer to optional array of strings [NULL] */
- };
-
-Data record
-~~~~~~~~~~~
-
-For record-by-record i/o we use the GMT_RECORD structure.
-
-.. _struct-record:
-
-.. code-block:: c
-
- struct GMT_RECORD { /* Single container for an array of GMT tables (files) */
- double *data; /* Pointer to array of double-precision numbers [NULL] */
- char *text; /* Pointer to the trailing string [NULL] */
- };
-
-
-.. _chapter-overview:
-
-Overview of the GMT C Application Program Interface
-===================================================
-
-Users who wish to create their own GMT application based on the API
-must make sure their program goes through the steps below. The details for
-each step will be revealed in the following chapter. We have kept the
-API simple: In addition to the GMT modules, there are only 57 public
-functions to become familiar with, but most applications will only use a
-very small subset of this selection. Functions either return an integer error
-code (when things go wrong; otherwise it is set to ``GMT_NOERROR (0)``), or they
-return a void pointer to a GMT resource (or NULL if things go wrong).
-In either case, the API will report what the error is. The layout here
-assumes you wish to use virtual files as input sources (i.e., data you already
-have in memory); if the data must be
-read from actual data files then things simplify considerably.
-
-To keep things as simple as possible we will assume you are writing an
-application that will read in table data, call a module using the data in
-memory as input, and then save the output from the module back into
-another memory location. No actual processing of the data or further
-calculation will be done here (so a bit of a boring program, but the
-point is to develop something short we can test). Also, to keep the code
-short we completely ignore
-the return codes of the modules for now. We will call our program
-:ref:`example1.c `. Here are the steps:
-
-#. Initialize a new GMT session with GMT_Create_Session_, which
- allocates a hidden GMT API control structure and returns an opaque
- pointer to it. This pointer is a *required* argument to all subsequent
- GMT API function calls within the session.
-
-#. Read a data set (or grid, etc.) into memory with GMT_Read_Data_,
- which, depending on data type, returns one of the data structures
- discussed earlier.
-
-#. Associate your data with a virtual file using GMT_Open_VirtualFile_.
- This steps returns a special filename that you can use to tell a module where
- to read its input. No actual file is created.
-
-#. Open a new virtual file to hold the output using GMT_Open_VirtualFile_.
- This step also returns a special filename for the module to send its output.
-
-#. Prepare required arguments (including the two virtual file names) and
- call the GMT module you wish to use via GMT_Call_Module.
-
-#. Obtain the desired output object via GMT_Read_VirtualFile_, which
- returns a data structure of requested type.
-
-#. Close the virtual files you have been using with GMT_Close_VirtualFile_.
-
-#. We terminate the GMT session by calling GMT_Destroy_Session_.
-
-Example code
-------------
-
-For the example code to run you must have Internet access. Compile and run
-this program:
-
-.. _example-code1:
-
-.. code-block:: c
-
- #include "gmt.h"
- int main (int argc, char *argv[]) {
- void *API; /* The API control structure */
- struct GMT_DATASET *D = NULL; /* Structure to hold input dataset */
- struct GMT_GRID *G = NULL; /* Structure to hold output grid */
- char input[GMT_VF_LEN] = {""}; /* String to hold virtual input filename */
- char output[GMT_VF_LEN] = {""}; /* String to hold virtual output filename */
- char args[128] = {""}; /* String to hold module command arguments */
-
- /* Initialize the GMT session */
- API = GMT_Create_Session ("test", 2U, 0, NULL);
- /* Read in our data table to memory */
- D = GMT_Read_Data (API, GMT_IS_DATASET, GMT_IS_FILE, GMT_IS_PLP, GMT_READ_NORMAL, NULL,
- "@Table_5_11.txt", NULL);
- /* Associate our data table with a virtual file */
- GMT_Open_VirtualFile (API, GMT_IS_DATASET, GMT_IS_PLP, GMT_IN, D, input);
- /* Create a virtual file to hold the resulting grid */
- GMT_Open_VirtualFile (API, GMT_IS_GRID, GMT_IS_SURFACE, GMT_OUT, NULL, output);
- /* Prepare the module arguments */
- sprintf (args, "-R0/7/0/7 -I0.2 -D1 -St0.3 %s -G%s", input, output);
- /* Call the greenspline module */
- GMT_Call_Module (API, "greenspline", GMT_MODULE_CMD, args);
- /* Obtain the grid from the virtual file */
- G = GMT_Read_VirtualFile (API, output);
- /* Close the virtual files */
- GMT_Close_VirtualFile (API, input);
- GMT_Close_VirtualFile (API, output);
- /* Write the grid to file */
- GMT_Write_Data (API, GMT_IS_GRID, GMT_IS_FILE, GMT_IS_SURFACE, GMT_READ_NORMAL, NULL,
- "junk.nc", G);
- /* Destroy the GMT session */
- GMT_Destroy_Session (API);
- };
-
-Compilation
------------
-
-To compile this program (we assume it is called example1.c), we use the
-gmt-config script to determine the correct compile and link flags and then run
-gcc:
-
-.. _example-comp:
-
-.. code-block:: bash
-
- inc=`gmt-config --cflags`
- lib=`gmt-config --libs`
- gcc example1.c $inc $lib -o example1
- ./example1
-
-This obviously assumes you have already installed GMT and that it is in your path.
-If you run example1 it will take a moment (this is mostly due to the gridding
-performed by :doc:`greenspline`) and then it stops. You should find the resulting
-grid junk.nc in the current directory. Plot it to see if it makes sense, e.g.
-
-.. _example-view:
-
-.. code-block:: bash
-
- gmt grdimage junk.nc -Jx1:50 -Bafg > junk.ps
-
-If you intend to write applications that take any number of data files
-via the command line then there will be more book-keeping to deal with,
-and we will discuss those steps later.
-Likewise, if you need to process a file record-by-record then more lines
-of code will be required.
-
-Plugins
--------
-
-Developers who wish to make custom plugin libraries that are compatible
-with GMT should examine the fully functioning examples of more involved
-code, available from the repository gmt-custom, obtainable via
-
-.. code-block:: bash
-
- git clone https://github.com/GenericMappingTools/custom-supplements.git
-
-
-List of API functions
----------------------
-
-The following is an alphabetical listing of all the public API functions in GMT. Click on
-any of them to see the full syntax of each function.
-
-The C/C++ API is deliberately kept small to make it easy to use.
-
-.. _tbl-API:
-
- +--------------------------+-------------------------------------------------------+
- | constant | description |
- +==========================+=======================================================+
- | GMT_Alloc_Segment_ | Allocate data segments |
- +--------------------------+-------------------------------------------------------+
- | GMT_Append_Option_ | Append new option structure to linked list |
- +--------------------------+-------------------------------------------------------+
- | GMT_Begin_IO_ | Enable record-by-record i/o |
- +--------------------------+-------------------------------------------------------+
- | GMT_Call_Module_ | Call any of the GMT modules |
- +--------------------------+-------------------------------------------------------+
- | GMT_Convert_Data_ | Convert between compatible data types |
- +--------------------------+-------------------------------------------------------+
- | GMT_Close_VirtualFile_ | Close a virtual file |
- +--------------------------+-------------------------------------------------------+
- | GMT_Create_Args_ | Convert linked list of options to text array |
- +--------------------------+-------------------------------------------------------+
- | GMT_Create_Cmd_ | Convert linked list of options to command line |
- +--------------------------+-------------------------------------------------------+
- | GMT_Create_Data_ | Create an empty data resource |
- +--------------------------+-------------------------------------------------------+
- | GMT_Create_Options_ | Convert command line options to linked list |
- +--------------------------+-------------------------------------------------------+
- | GMT_Create_Session_ | Initialize a new GMT session |
- +--------------------------+-------------------------------------------------------+
- | GMT_Delete_Option_ | Delete an option structure from the linked list |
- +--------------------------+-------------------------------------------------------+
- | GMT_Destroy_Args_ | Delete text array of arguments |
- +--------------------------+-------------------------------------------------------+
- | GMT_Destroy_Cmd_ | Delete text command of arguments |
- +--------------------------+-------------------------------------------------------+
- | GMT_Destroy_Data_ | Delete a data resource |
- +--------------------------+-------------------------------------------------------+
- | GMT_Destroy_Group_ | Delete a group of data resources |
- +--------------------------+-------------------------------------------------------+
- | GMT_Destroy_Options_ | Delete the linked list of option structures |
- +--------------------------+-------------------------------------------------------+
- | GMT_Destroy_Session_ | Terminate a GMT session |
- +--------------------------+-------------------------------------------------------+
- | GMT_Duplicate_Data_ | Make an identical copy of a data resources |
- +--------------------------+-------------------------------------------------------+
- | GMT_Encode_Options_ | Encode option arguments for external interfaces |
- +--------------------------+-------------------------------------------------------+
- | GMT_Error_Message_ | Return character pointer to last API error message |
- +--------------------------+-------------------------------------------------------+
- | GMT_Expand_Option_ | Expand option with explicit memory references |
- +--------------------------+-------------------------------------------------------+
- | GMT_End_IO_ | Disable further record-by-record i/o |
- +--------------------------+-------------------------------------------------------+
- | GMT_FFT_ | Take the Fast Fourier Transform of data object |
- +--------------------------+-------------------------------------------------------+
- | GMT_FFT_1D_ | Take the Fast Fourier Transform of 1-D float data |
- +--------------------------+-------------------------------------------------------+
- | GMT_FFT_2D_ | Take the Fast Fourier Transform of 2-D float data |
- +--------------------------+-------------------------------------------------------+
- | GMT_FFT_Create_ | Initialize the FFT machinery |
- +--------------------------+-------------------------------------------------------+
- | GMT_FFT_Destroy_ | Terminate the FFT machinery |
- +--------------------------+-------------------------------------------------------+
- | GMT_FFT_Option_ | Explain the FFT options and modifiers |
- +--------------------------+-------------------------------------------------------+
- | GMT_FFT_Parse_ | Parse argument with FFT options and modifiers |
- +--------------------------+-------------------------------------------------------+
- | GMT_FFT_Wavenumber_ | Return wavenumber given data index |
- +--------------------------+-------------------------------------------------------+
- | GMT_Find_Option_ | Find an option in the linked list |
- +--------------------------+-------------------------------------------------------+
- | GMT_Free_ | Free GMT-allocated non-container memory |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Common_ | Determine if a GMT common option was set |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Coord_ | Create a coordinate array |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Default_ | Obtain one of the API or GMT default settings |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Enum_ | Obtain one of the API enum constants |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_FilePath_ | Verify input file exist and replace with full path |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Index_ | Convert row, col into a grid or image 1-D index |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Index3_ | Convert row, col, layer into a cube 1-D index |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Info_ | Obtain meta data (range, dimension), ... from object |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Matrix_ | Obtain pointer to user matrix from container |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Pixel_ | Get grid or image node |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Record_ | Import a single data record |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Row_ | Import a single grid row |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Status_ | Check status of record-by-record i/o |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Strings_ | Obtain pointer to user strings from matrix or vector |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Values_ | Convert string into coordinates or dimensions |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Vector_ | Obtain pointer to user vector from container |
- +--------------------------+-------------------------------------------------------+
- | GMT_Get_Version_ | Return the current lib version as a float |
- +--------------------------+-------------------------------------------------------+
- | GMT_Init_IO_ | Initialize i/o given registered resources |
- +--------------------------+-------------------------------------------------------+
- | GMT_Init_VirtualFile_ | Reset a virtual file for reuse |
- +--------------------------+-------------------------------------------------------+
- | GMT_Inquire_VirtualFile_ | Get family of a virtual file |
- +--------------------------+-------------------------------------------------------+
- | GMT_Make_Option_ | Create an option structure |
- +--------------------------+-------------------------------------------------------+
- | GMT_Message_ | Issue a message, optionally with time stamp |
- +--------------------------+-------------------------------------------------------+
- | GMT_Open_VirtualFile_ | Select memory location as input or output for module |
- +--------------------------+-------------------------------------------------------+
- | GMT_Option_ | Explain one or more GMT common options |
- +--------------------------+-------------------------------------------------------+
- | GMT_Parse_Common_ | Parse the GMT common options |
- +--------------------------+-------------------------------------------------------+
- | GMT_Put_Levels_ | Put user level coordinates into cube container |
- +--------------------------+-------------------------------------------------------+
- | GMT_Put_Matrix_ | Put user matrix into container |
- +--------------------------+-------------------------------------------------------+
- | GMT_Put_Record_ | Export a data record |
- +--------------------------+-------------------------------------------------------+
- | GMT_Put_Row_ | Export a grid row |
- +--------------------------+-------------------------------------------------------+
- | GMT_Put_Strings_ | Put user strings into various containers |
- +--------------------------+-------------------------------------------------------+
- | GMT_Put_Vector_ | Put user vector into container |
- +--------------------------+-------------------------------------------------------+
- | GMT_Read_Data_ | Import a data resource or file |
- +--------------------------+-------------------------------------------------------+
- | GMT_Read_Group_ | Import a group of data resources or files |
- +--------------------------+-------------------------------------------------------+
- | GMT_Read_VirtualFile_ | Access the output from a module via memory |
- +--------------------------+-------------------------------------------------------+
- | GMT_Register_IO_ | Register a resources for i/o |
- +--------------------------+-------------------------------------------------------+
- | GMT_Report_ | Issue a message contingent upon verbosity level |
- +--------------------------+-------------------------------------------------------+
- | GMT_Set_Default_ | Set one of the API or GMT default settings |
- +--------------------------+-------------------------------------------------------+
- | GMT_Set_Comment_ | Assign a comment to a data resource |
- +--------------------------+-------------------------------------------------------+
- | GMT_Set_Columns_ | Specify how many columns to use for rec-by-rec i/o |
- +--------------------------+-------------------------------------------------------+
- | GMT_Set_Geometry_ | Specify data geometry for rec-by-rec i/o |
- +--------------------------+-------------------------------------------------------+
- | GMT_Set_Index_ | Convert row, col into a grid or image index |
- +--------------------------+-------------------------------------------------------+
- | GMT_Update_Option_ | Modify an option structure |
- +--------------------------+-------------------------------------------------------+
- | GMT_Write_Data_ | Export a data resource |
- +--------------------------+-------------------------------------------------------+
-
- Summary of all the API functions and their purpose.
-
-The GMT C Application Program Interface
-=======================================
-
-Initialize a new GMT session
-----------------------------
-
-Advanced programs may be calling more than one GMT session and thus
-run several sessions, perhaps concurrently as different threads on
-multi-core machines. We will now discuss these steps in more detail.
-Throughout, we will introduce upper-case GMT C enum constants *in
-lieu* of simple integer constants. These are considered part of the API
-and are available for developers via the ``gmt_resources.h`` include file.
-
-Most applications will need to initialize only a single GMT session.
-This is true of all the standard GMT programs since they only call one
-GMT module and then exit. Most user-developed GMT applications are
-likely to only initialize one session even though they may call many
-GMT modules. However, the GMT API supports any number of
-simultaneous sessions should the programmer wish to take advantage of
-it. This might be useful when you have access to several CPUs and want
-to spread the computing load [4]_. In the following discussion we will
-simplify our treatment to the use of a single session only.
-
-To initiate the new GMT session we use
-
-.. _GMT_Create_Session:
-
- ::
-
- void *GMT_Create_Session (const char *tag, unsigned int pad, unsigned int mode,
- int (*print_func) (FILE *, const char *));
-
-and you will typically call it like this:
-
- ::
-
- void *API = NULL; /* Opaque pointer to GMT controls */
- API = GMT_Create_Session ("Session name", 2, 0, NULL);
-
-where ``API`` is an opaque pointer to the hidden GMT API control
-structure. You will need to pass this pointer to *all* subsequent
-GMT API functions; this is how essential internal information is
-passed around. The key task of this initialization is to
-set up the GMT machinery and internal variables used for map
-projections, plotting, i/o, etc. The initialization also allocates space
-for internal structures used to keep track of data. The ``pad`` argument
-specifies how many rows and columns should be used as padding for grids and
-images so that boundary conditions can be applied. GMT uses 2 and we strongly
-recommend that you use that value. In particular, if you choose 0 or 1 there may be certain
-GMT modules that will be unable to do their work properly as they count on those
-boundary rows and columns in the grids. Note that this setting has no effect
-on what is written to a grid file; the padding is an internal feature.
-The ``mode`` argument is only used for external APIs that need
-to communicate their special needs during the session creation. This integer argument
-is a sum of bit flags and the various bits control the following settings:
-
-#. Bit 1 (1 or GMT_SESSION_NOEXIT): If set, then GMT will not call the system exit function when a
- serious problem has been detected but instead will simply return control
- to the calling environment. For instance, this is required by the GMT/MATLAB toolbox
- since calling exit would also exit MATLAB itself. Unless your environment
- has this feature you should leave this bit alone.
-#. Bit 2 (2 or GMT_SESSION_EXTERNAL): If set, then it means we are calling the GMT API from an external
- API, such as MATLAB, Octave, or Python. Normal C/C++ programs should
- leave this bit alone. Its effect is to enable two additional modules
- for reading and writing GMT resources from these environments (those modules
- would not make any sense in a Unix command-line environment).
-#. Bit 3 (4 or GMT_SESSION_COLMAJOR): If set, then it means the external API uses a column-major format for
- matrices (e.g., MATLAB, Fortran). If not set we default to row-major
- format (C/C++, Python, etc.).
-#. Big 4 (8 or GMT_SESSION_LOGERRORS): If set, we redirect all error messages to a log file based on the
- session name (we append ".log").
-#. Bit 5 (16 or GMT_SESSION_RUNMODE): If set, the we enable GMT's modern run-mode (where -O -K are
- not allowed and PostScript is written to hidden temp file). Default
- is the GMT classic run-mode.
-#. Bit 6 (32 or GMT_SESSION_NOHISTORY): If set, the we disable GMT's command shorthand via gmt.history files.
- The default is to allow this communication between GMT modules.
-
-The ``print_func`` argument is a pointer to a function that is used to print
-messages from GMT via GMT_Message_ or GMT_Report_ from external environments that cannot use the
-standard printf function (this is the case for the GMT/MATLAB toolbox, for instance).
-For all other uses you should simply pass NULL for this argument. You can also access
-the last cached error message by calling GMT_Error_Message_ which returns a pointer to
-the internal character buffer with that message. Pass NULL and set the mode bit if you
-want writing to a log file instead.
-Should something go wrong during the API initialization then ``API`` will be returned as ``NULL``.
-Finally, GMT_Create_Session_ will examine the environmental parameter TMPDIR (TEMP on Windows)
-to set the GMT temporary directory [/tmp on Unix, current directory on Windows].
-
-Below is a bare-bones minimalistic GMT program hello.c that initializes and destroys
-a GMT session:
-
-.. _example-code2:
-
-.. code-block:: c
-
- #include "gmt.h"
- int main (int argc, char *argv[]) {
- void *API; /* The API control structure */
- /* Initialize the GMT session */
- API = GMT_Create_Session ("test", 2U, 0, NULL);
- /* And now for something original: */
- GMT_Message (API, GMT_TIME_NONE, "hello, world\n");
- /* Destroy the GMT session */
- GMT_Destroy_Session (API);
- };
-
-While not super-exiting, this code demonstrates the two essential API calls
-required to initiate and later terminate a GMT session. In between we do what
-all basic programs are supposed to do: print "Hello, world". The user is of course
-allowed to do whatever custom processing before the GMT session is created
-and can do all sorts of stuff after the GMT session is destroyed, as long as
-no GMT functions or resources are accessed. It may be convenient to isolate
-the GMT-specific processing from the custom part of the program and only
-maintain an active GMT session when needed.
-
-Get full path to local or remote files
---------------------------------------
-
-If given a filename, GMT will look in several directories to find the given
-input file. However, GMT can also look for files remotely, either via the
-remote file mechanism or URLs. When you have a remote file (@filename) you
-may wish to have GMT automatically download the file and provide you with the
-local path. This is a job for GMT_Get_FilePath_, whose prototype is
-
-.. _GMT_Get_FilePath:
-
- ::
-
- int GMT_Get_FilePath (void *API, unsigned int family, unsigned int direction,
- unsigned int mode, char **ptr);
-
-where :ref:`family ` and ``direction`` set the data file type and whether it is
-for input or output, ``mode`` modifies the behavior of the function, and
-``*ptr`` is a pointer to a character string with the filename in question. Normally,
-we only look for local files (GMT_FILE_LOCAL [0]), but if ``mode`` contains
-the bit flag GMT_FILE_REMOTE [1] we will try to download any remote files given
-to the function. By default, we will replace the filename with the full
-path. Add the bit flag GMT_FILE_CHECK [2] to only check for the files and return
-error codes but leave ``*ptr`` alone.
-
-
-Register input or output resources
-----------------------------------
-
-When using the standard GMT programs, it is common to specify input files on the
-command line or via special program options (e.g.,
-**-I**\ *intensity.nc*). The outputs of the programs are either written
-to standard output (which you may redirect to files or pipes into other
-programs) or to files specified by specific program options (e.g.,
-**-G**\ *output.nc*). Alternatively, the GMT API allows you to specify
-input (and output) to be associated with open file handles or virtual files.
-We will examine this more closely below. Registering a
-resource is a required step before attempting to import or export data
-that *do not* come from files or standard input/output.
-
-.. _sec-res_init:
-
-Resource initialization
-~~~~~~~~~~~~~~~~~~~~~~~
-
-All GMT programs dealing with input or output files given on the
-command line, and perhaps defaulting to the standard input or output
-streams if no files are given, must call the i/o initializer function
-GMT_Init_IO_ once for each direction required (i.e., input and output
-separately). For input it determines how many input sources have already
-been registered. If none has been registered then it scans the program
-arguments for any filenames given on the command line and register these
-input resources. Finally, if we still have found no input sources we
-assign the standard input stream as the single input source. For output
-it is similar: If no single destination has been registered we specify
-the standard output stream as the output destination. Only one main
-output destination is allowed to be active when a module writes data
-(some modules also write additional output via program-specific
-options). The prototype for this function is
-
-.. _GMT_Init_IO:
-
- ::
-
- int GMT_Init_IO (void *API, unsigned int family, unsigned int geometry,
- unsigned int direction, unsigned int mode, unsigned int n_args, void *args);
-
-where :ref:`family ` specifies what kind of resource is to be registered,
-:ref:`geometry ` specifies the geometry of the data, ``direction`` is either
-``GMT_IN`` or ``GMT_OUT``, and ``mode`` is a bit flag that determines
-what we do if no resources have been registered. The choices are
-
- **GMT_ADD_FILES_IF_NONE** (1) means "add command line (option)
- files if none have been registered already".
-
- **GMT_ADD_FILES_ALWAYS** (2) means "always add any command line files".
-
- **GMT_ADD_STDIO_IF_NONE** (4) means "add std\* if no other
- input/output have been specified".
-
- **GMT_ADD_DEFAULT** (6) means "always add any command line files first, and then
- add std\* if no other input/output were specified".
-
- **GMT_ADD_STDIO_ALWAYS** (8) means "always add std\* even if
- resources have been registered".
-
- **GMT_ADD_EXISTING** (16) means "only use already registered resources".
-
-The standard behavior is ``GMT_ADD_DEFAULT`` (6). Next, ``n_args`` is 0
-if ``args`` is the head of a linked list of options (further discussed
-in :ref:`Prepare modules opts `); otherwise ``args`` is an array of ``n_args``
-strings (i.e., the int argc, char \*argv[] model)
-
-Many programs will register an export location where results of a GMT function (say, a filtered grid)
-should be returned, but may then wish to use that variable as an *input* resource in a subsequent module
-call. This is accomplished by re-registering the resource as an *input* source, thereby changing the
-*direction* of the data set. The function returns 1 if there is an error; otherwise it returns 0. |ex_resource_init|
-
-Resource registration
-~~~~~~~~~~~~~~~~~~~~~
-
-Should your program need to add additional sources (or a destination) to the list of items
-to be considered you will need to register them manually. This is considered a low-level
-activity and most applications are unlikely to have to resort to this step. We document
-it here in case your situation calls for such action.
-Registration involves a direct or indirect call to
-
-.. _GMT_Register_IO:
-
- ::
-
- int GMT_Register_IO (void *API, unsigned int family, unsigned int method,
- unsigned int geometry, unsigned int direction, double wesn[], void *ptr);
-
-where :ref:`family ` specifies what kind of resource is to be registered,
-:ref:`method ` specifies
-how we to access this resource (see Table :ref:`methods ` for recognized
-methods), :ref:`geometry ` specifies the geometry of the data, ``ptr`` is the address of the
-pointer to the named resource. If ``direction`` is ``GMT_OUT`` and the
-``method`` is not related to a file (filename, stream, or handle), then
-``ptr`` must be NULL. Note there are some limitations on when you may pass a file pointer
-as the method. Many grid file formats cannot be read via a stream (e.g., netCDF files) so in
-those situations you cannot pass a file pointer [and GMT_Register_IO would have no way of knowing
-this]. For grid (and image)
-resources you may request to obtain a subset via the :ref:`wesn ` array; otherwise, pass NULL
-(or an array with at least 4 items all set to 0) to obtain the
-entire grid (or image). The ``direction`` indicates input or output and
-is either ``GMT_IN`` or ``GMT_OUT``. Finally, the function returns a
-unique resource ID, or ``GMT_NOTSET`` if there was an error.
-
-
-.. _tbl-family:
-
- +-------------------+---------------------------------+
- | family | source points to |
- +===================+=================================+
- | GMT_IS_DATASET | A [multi-segment] data file |
- +-------------------+---------------------------------+
- | GMT_IS_GRID | A grid file |
- +-------------------+---------------------------------+
- | GMT_IS_IMAGE | An image |
- +-------------------+---------------------------------+
- | GMT_IS_CUBE | A 3-D cube |
- +-------------------+---------------------------------+
- | GMT_IS_PALETTE | A color palette table [CPT] |
- +-------------------+---------------------------------+
- | GMT_IS_POSTSCRIPT | A GMT PostScript object |
- +-------------------+---------------------------------+
- | GMT_IS_MATRIX | A custom user data matrix |
- +-------------------+---------------------------------+
- | GMT_IS_VECTOR | A custom user data vector |
- +-------------------+---------------------------------+
- | GMT_VIA_MATRIX | Modifier for grids and datasets |
- +-------------------+---------------------------------+
- | GMT_VIA_VECTOR | Modifier for grids and datasets |
- +-------------------+---------------------------------+
-
- GMT constants used to specify a data family.
-
-.. _tbl-methods:
-
- +------------------+------------------------------------------------+
- | method | how to read/write data |
- +==================+================================================+
- | GMT_IS_FILE | Pointer to name of a file |
- +------------------+------------------------------------------------+
- | GMT_IS_STREAM | Pointer to open stream (or process) |
- +------------------+------------------------------------------------+
- | GMT_IS_FDESC | Pointer to integer file descriptor |
- +------------------+------------------------------------------------+
- | GMT_IS_DUPLICATE | Pointer to memory we may *duplicate* data from |
- +------------------+------------------------------------------------+
- | GMT_IS_REFERENCE | Pointer to memory we may *reference* data from |
- +------------------+------------------------------------------------+
-
- GMT constants used to specify how data will be read or written.
-
-.. _tbl-geometry:
-
- +----------------+-----------------------------------------+
- | geometry | description |
- +================+=========================================+
- | GMT_IS_NONE | Not a geographic feature |
- +----------------+-----------------------------------------+
- | GMT_IS_POINT | Multi-dimensional point data |
- +----------------+-----------------------------------------+
- | GMT_IS_LINE | Geographic or Cartesian line segments |
- +----------------+-----------------------------------------+
- | GMT_IS_POLYGON | Geographic or Cartesian closed polygons |
- +----------------+-----------------------------------------+
- | GMT_IS_PLP | Either points, lines, or polygons |
- +----------------+-----------------------------------------+
- | GMT_IS_SURFACE | 2-D gridded surface |
- +----------------+-----------------------------------------+
- | GMT_IS_VOLUME | 3-D gridded volume |
- +----------------+-----------------------------------------+
-
- GMT constants used to specify the geometry of the data object.
-
-.. _tbl-wesn:
-
- +---------+----------------------------------------------+
- | index | description |
- +=========+==============================================+
- | GMT_XLO | x_min (west) boundary of grid subset |
- +---------+----------------------------------------------+
- | GMT_XHI | x_max (east) boundary of grid subset |
- +---------+----------------------------------------------+
- | GMT_YLO | y_min (south) boundary of grid subset |
- +---------+----------------------------------------------+
- | GMT_YHI | y_max (north) boundary of grid subset |
- +---------+----------------------------------------------+
- | GMT_ZLO | z_min (bottom) boundary of 3-D matrix subset |
- +---------+----------------------------------------------+
- | GMT_ZHI | z_max (top) boundary of 3-D matrix subset |
- +---------+----------------------------------------------+
-
- GMT constants used for domain array indexing.
-
-.. _sec-create:
-
-Create empty resources
-----------------------
-
-If your application needs to build and populate GMT resources in ways
-that do not depend on external resources (files, memory locations,
-etc.), or you have data read in separately and you wish to build a
-GMT resource from scratch, then you can obtain an empty object by calling
-
-.. _GMT_Create_Data:
-
- ::
-
- void *GMT_Create_Data (void *API, unsigned int family, unsigned int geometry,
- unsigned int mode, uint64_t par[], double *wesn, double *inc,
- unsigned int registration, int pad, void *data)
-
-which returns a pointer to the allocated resource. Pass a valid :ref:`family ` selection.
-Also pass a compatible :ref:`geometry `. Depending on the family and your particular way of
-representing dimensions you may pass the additional parameters in one of
-two ways:
-
-#. Actual integer dimensions of items needed (which depends on the ``family``).
-
-#. Physical distances and increments of each dimension.
-
-For the first case you should pass both ``wesn`` and ``inc`` as NULL (or as arrays with elements all set to 0),
-and pass the ``par`` array with contents as indicated below:
-
- **GMT_IS_GRID**.
- An empty :ref:`GMT_GRID ` structure with a header is allocated; the data
- array is NULL. Use ``registration`` to choose either gridline (``GMT_GRID_PIXEL_REG``) or pixel
- (``GMT_GRID_NODE_REG``) registration. The domain can be prescribed on one of two ways:
- (1) The ``par`` argument is NULL. Then ``wesn`` and ``inc`` can also be NULL but only if the common GMT options
- **-R** and **-I** have been set because they are required to get the necessary info. If they
- were not set, then ``wesn`` and ``inc`` must in fact be transmitted. If ``wesn`` and ``inc``
- are set (directly or indirectly) then ``par`` is ignored, even if not NULL.
- (2) The ``par`` argument is not NULL but both ``wesn`` and ``inc`` are NULL.
- Now, ``par[0]`` must have the number of columns and ``par[1]`` must have the number of rows in the grid. Internally,
- ``inc`` will be set to 1/1 and ``wesn`` will be set to 0/n_columns/0/n_rows. As an option, add ``GMT_GRID_XY`` to ``mode``
- and we also allocate the grids's *x* and *y* coordinate vectors.
-
- **GMT_IS_IMAGE**.
- Same procedure as for **GMT_IS_GRID** but we return an empty :ref:`GMT_IMAGE ` object. In either
- way of specification you may use ``par[2]`` to pass the number of image bands [1].
-
- **GMT_IS_CUBE**.
- Same procedure as for **GMT_IS_GRID** but both ``wesn``, ``inc`` and ``par`` have one extra
- dimension for the depth or time axis. For non-equidistant layers you need to use
- ``par[2]`` to sets the number of layers and use ``inc[2] = 0``, otherwise ``wesn`` and ``inc`` can set it all.
-
- **GMT_IS_DATASET**.
- We allocate an empty :ref:`GMT_DATASET ` structure consisting of ``par[0]`` tables,
- each with ``par[1]`` segments, each with ``par[2]`` rows, all with ``par[3]`` columns.
- The ``wesn``, ``inc``, and ``registration`` argument are ignored. The ``data`` argument should be NULL. As an option,
- add ``GMT_WITH_STRINGS`` to ``mode`` and we also allocate the segments' *text* field.
-
- **GMT_IS_PALETTE**.
- We allocate an empty :ref:`GMT_PALETTE ` structure with ``par[0]`` palette entries.
- The ``wesn``, ``inc``, and ``registration`` arguments are ignored and should be NULL/0. The ``data`` argument should be NULL.
-
- **GMT_IS_POSTSCRIPT**.
- We allocate an empty :ref:`GMT_POSTSCRIPT ` structure with a text buffer of length ``par[0]``.
- Give ``par[0]`` = 0 if the PostScript string is allocated or obtained by other means.
- The ``wesn``, ``inc``, and ``registration`` arguments are ignored and should be NULL/0. The ``data`` argument should be NULL.
-
- **GMT_IS_VECTOR**.
- We allocate an empty :ref:`GMT_VECTOR ` structure with ``par[0]`` column entries.
- The number of rows can be specified in one of two ways: (1) Set the number of rows via ``par[1]``. Then,
- ``wesn``, ``inc``, and ``registration`` arguments are ignored.
- (2) Specify ``wesn``, ``inc``, and ``registration`` and the number of rows will be computed from these
- parameters instead. Finally, ``par[2]`` holds the data type of all vectors, if you are allocating them here.
- The ``data`` argument should be NULL. If you have custom vectors you wish to use then
- pass ``par`` but make sure to select mode GMT_CONTAINER_ONLY so that no memory is allocated. Furthermore,
- if you are manually setting up output containers then pass mode as GMT_IS_OUTPUT instead.
- Use GMT_Put_Vector_ to hook up your vectors.
-
- **GMT_IS_MATRIX**.
- We allocate an empty :ref:`GMT_MATRIX ` structure. The domain can be prescribed on one of two ways:
- (1) Here, ``par[0]`` is the number of columns while ``par[1]`` has the number of rows. Also,
- ``par[2]`` indicates the number of layers for a 3-D matrix, or pass 0, 1, or NULL for a 2-D matrix.
- Finally, ``par[3]`` holds the data type of the matrix, if you are allocating one.
- (2) Pass ``wesn``, ``inc``, ``registration`` and we compute the dimensions of the matrix.
- The ``data`` argument should be NULL. As for vectors, to use custom data you must (for input) pass the
- mode as GMT_CONTAINER_ONLY and hook your custom matrix in via a call to GMT_Put_Matrix_. The matrix may either
- be row- or column-oriented and this is normally determined when you created the session with GMT_Create_Session_ (see the bit 3 setting).
- However, you can pass ``pad`` = 1 (GMT_IS_ROW_FORMAT; set row major) or ``pad`` = 2 (GMT_IS_COL_FORMAT; set col major) to override the default.
- As for vectors, if this container is for output then pass mode as GMT_IS_OUTPUT instead.
-
-Users wishing to pass their own data matrices and vectors to GMT modules will need to do so via
-the **GMT_IS_MATRIX** and **GMT_IS_VECTOR** containers. However, no module deals with such containers
-directly (they either expect **GMT_IS_GRID** or **GMT_IS_DATASET**, for instance).
-The solution is to specify the container type the GMT module expects but add in the special
-flags **GMT_VIA_MATRIX** or **GMT_VIA*VECTOR**. This will create the **GMT_IS_MATRIX** or
-**GMT_IS_VECTOR** container the user needs to add the user data, but will also tell GMT how
-they should be considered by the module. **Note**: When creating your own geographic data
-(dataset, grid, image, matrix, or vector) you may add ``GMT_DATA_IS_GEO`` to ``mode`` so that
-the structure that is created will retain this information.
-
-For grids and images you may pass ``pad`` to set the padding, or -1 to
-accept the prevailing GMT default. The ``mode`` determines what is actually
-allocated when you have chosen grids or images. As for GMT_Read_Data_
-you can pass ``GMT_CONTAINER_AND_DATA`` to initialize the header *and* allocate
-space for the array; here ``data`` must be NULL. Alternatively, you can pass
-``GMT_CONTAINER_ONLY`` to just initialize the grid or image header,
-and later call GMT_Create_Data a second time, now passing ``GMT_DATA_ONLY``, to allocate
-space for the array. In that second call you pass the pointer returned
-by the first call as ``data`` and specify the family; all other
-arguments should be NULL or 0. Normally, resources created by this
-function are considered to be input (i.e., have a direction that is ``GMT_IN``).
-The exception to this is for containers to hold results from GMT which need have a direction
-set to ``GMT_OUT``. Such empty containers are requested by passing mode = ``GMT_IS_OUTPUT``
-and setting all dimension arguments to 0 or NULL.
-The function returns a pointer to the
-data container. In case of an error we return a NULL pointer and pass an
-error code via ``API->error``. Your C code will have to include "gmt_private.h" to be able to
-dereference the API pointer.
-
-Hooking user arrays to objects
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you have custom column vector or matrices and you want them to be used as
-input to GMT modules, you will need to create a :ref:`GMT_VECTOR ` or :ref:`GMT_MATRIX ` container
-and hook your items to them. Likewise, if you want to receive the output of GMT modules
-into user arrays or matrices then you will need to access those data.
-The following utility functions are used for these tasks:
-
-.. _GMT_Put_Matrix:
-
- ::
-
- int GMT_Put_Matrix (void *API, struct GMT_MATRIX *M, unsigned int type, int pad, void *matrix);
-
-where ``M`` is a :ref:`GMT_MATRIX ` created by GMT_Create_Data_, the ``type`` is one of the
-recognized data :ref:`types `, ``pad`` indicates if the matrix has or should have padding,
-and ``matrix`` is your custom matrix. The ``pad`` entry is typically 0 (no pad present), but if you
-intend the matrix to serve as grid input to a module then GMT will expect 2. If your matrix already has
-been extended by 2 extra rows and columns then pass ``pad`` = 2.
-To extract a custom matrix from an output :ref:`GMT_MATRIX ` you can use
-
-.. _GMT_Get_Matrix:
-
- ::
-
- void *GMT_Get_Matrix (void *API, struct GMT_MATRIX *M);
-
-which simply returns a pointer to the right union pointer.
-For vectors the same principles apply:
-
-.. _GMT_Put_Vector:
-
- ::
-
- int GMT_Put_Vector (void *API, struct GMT_VECTOR *V, unsigned int col,
- unsigned int type, void *vector);
-
-where ``V`` is the :ref:`GMT_VECTOR ` created by GMT_Create_Data_,
-``col`` is the vector column in question, ``type`` is one of the recognized data
-:ref:`types ` used for this vector, and ``vector`` is a pointer to the
-user's read-only custom vector. In addition, ``type`` may also be **GMT_TEXT**,
-in which case we expect an array of strings with numbers, longitudes, latitudes,
-or ISO datetime strings and we do the conversion to internal numerical values and
-allocate a vector to hold the result in the given ``col``. By default that vector
-will be assigned to type **GMT_DOUBLE** but you can add another primary data type
-for the conversion if you prefer (e.g., **GMT_TEXT**\|\ **GMT_LONG** to get final
-internal absolute time in integer seconds). For the special data type **GMT_TEXT** GMT
-allocates internal memory to hold the converted data and ``vector`` is not used
-any further.
-
-To extract a custom vector from an output :ref:`GMT_VECTOR ` you can use
-
-.. _GMT_Get_Vector:
-
- ::
-
- void *GMT_Get_Vector (void *API, struct GMT_VECTOR *V, unsigned int col);
-
-where ``col`` is the vector number you wish to obtain a pointer to.
-
-.. _GMT_Put_Levels:
-
- ::
-
- int GMT_Put_Levels (void *API, struct GMT_CUBE *C, double *levels, uint64_t n_levels);
-
-where ``C`` is the :ref:`GMT_CUBE ` created by GMT_Create_Data_, ``levels`` is an array
-with the (probably) non-equidistant coordinates for the third cube dimension, and ``n_levels`` is their number.
-This function is typically used when we are creating a cube whose spacing between layers is not equidistant
-and hence cannot be computed internally from range and increment.
-
-.. _GMT_Get_Version:
-
- ::
-
- void *GMT_Get_Version (void *API, unsigned int *major, unsigned int *minor, unsigned int *patch);
-
-Returns the current lib version as a float, e.g. *6.0*, and optionally its constituints. Either one or all
-of in *\ *major*, *\ *minor*, *\ *patch* args can be NULL. If they are not, one gets the corresponding
-version component. The *API* pointer is actually not used in this function, so passing NULL is the best
-option.
-
-Finally, for either vectors, matrices or palettes you may optionally add a pointer to an
-array of text strings, one per row (or CPT slice). This is done via
-
-.. _GMT_Put_Strings:
-
- ::
-
- int GMT_Put_Strings (void *API, unsigned int family, void *X, char **array);
-
-where ``family`` is either GMT_IS_VECTOR, GMT_IS_MATRIX, or GMT_IS_PALETTE, ``X`` is either a
-:ref:`GMT_VECTOR `, :ref:`GMT_MATRIX ` or :ref:`GMT_MATRIX `, and
-``array`` is the a pointer to your string array. You may add ``GMT_IS_DUPLICATE`` to
-``family`` to indicate you want the array of strings to be duplicated; the default
-is to just set a pointer to ``array``. For GMT_IS_PALETTE you must also add
-GMT_IS_PALETTE_LABEL or GMT_IS_PALETTE_KEY to indicate which strings are being set.
-
-To access the string array from an output vector or matrix container you will use
-
-.. _GMT_Get_Strings:
-
- ::
-
- char **GMT_Get_Strings (void *API, unsigned int family, void *X);
-
-where again ``family`` is either GMT_IS_VECTOR or GMT_IS_MATRIX and ``X`` is either a
-:ref:`GMT_VECTOR ` or :ref:`GMT_MATRIX `.
-
-
-Manually add segments
-~~~~~~~~~~~~~~~~~~~~~
-
-If you do not know the number of rows in the segments or you expect different segments to have different
-lengths then you should set the row dimension to zero in GMT_Create_Data and add the segments
-manually with ``GMT_Alloc_Segment``, which allocates a new :ref:`GMT_DATASET ` segment
-for such multi-segment tables.
-
-.. _GMT_Alloc_Segment:
-
- ::
-
- void *GMT_Alloc_Segment (void *API, unsigned int mode,
- uint64_t n_rows, uint64_t n_columns, char *header, void *S);
-
-where ``header`` is the segment's desired header (or NULL) and `mode` determines if the
-segment should allocate a string array, which in this case should either be ``GMT_NO_STRINGS``
-or ``GMT_WITH_STRINGS``. If ``S`` is not NULL then we simply reallocate the lengths
-of the segment; otherwise a new segment is first allocated.
-
-There is also the option of controlling the allocation of the segment
-array by setting n_rows = 0. This would allow external arrays (double-precision only) to connect to
-the S->data[col] arrays and not be freed by GMT's garbage collector.
-
-
-Get information (meta data) about object
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you are creating objects in an environment where the objects are opaque pointers, then it may
-be necessary to inquire about an objects dimension, range, registration, padding, etc. We can
-do this with
-
-
-.. _GMT_Get_Info:
-
- ::
-
- void *_GMT_Get_Info (void *API, unsigned int family, void *data, unsigned int *geometry,
- uint64_t dim[], double *range, double *inc, unsigned int *registration, int *pad)
-
-where ``family`` is the type of object referenced by ``data``. Depending on the type of object,
-one or more of ``dim``, ``range``, ``inc``, ``registration``, and ``pad`` will be initialized,
-but only if they do not point to NULL. The function returns an error code if an invalid family
-was selected.
-
-
-Duplicate resources
--------------------
-
-Often you have read or created a data resource and then need an
-identical copy, presumably to make modifications to. Or, you want a copy
-with the same dimensions and allocated memory, except data values should
-not be duplicated. Alternatively, perhaps you just want to duplicate the
-header and skip the allocation and duplication of the data entirely. These tasks
-are addressed by
-
-.. _GMT_Duplicate_Data:
-
- ::
-
- void *GMT_Duplicate_Data (void *API, unsigned int family, unsigned int mode,
- void *data);
-
-which returns a pointer to the allocated resource. Specify which
-:ref:`family ` and select ``mode`` from ``GMT_DUPLICATE_DATA``,
-``GMT_DUPLICATE_ALLOC``, and ``GMT_DUPLICATE_NONE``, as discussed above
-(also see ``mode`` discussion above). For :ref:`GMT_GRID `
-you may add ``GMT_DUPLICATE_RESET`` which will ensure the duplicate grid
-will have normal padding (useful when the original has non-standard padding).
-For :ref:`GMT_DATASET ` you can
-add modifiers ``GMT_ALLOC_VERTICAL`` or ``GMT_ALLOC_HORIZONTAL`` to the ``mode`` if you
-wish to put all the data into a single long table or to paste all tables
-side-by-side, respectively (thus getting one wide table instead).
-Additional note for :ref:`GMT_DATASET `: Normally we allocate the output given the
-corresponding input dimensions. You can override these by specifying your
-alternative dimensions in the input dataset's variable ``dim[]``.
-The ``data`` is a pointer to the resource you wish to duplicate. In case
-of an error we return a NULL pointer and pass an error code via
-``API->error``.
-
-Convert between resource types
-------------------------------
-
-Having a resource in memory you may want to convert it to an alternative
-representation. For instance, you may have a :ref:`GMT_DATASET `
-but need to strip the information from the
-data into a VECTOR format, dropping all the segment header information, so
-that your custom algorithm or other non-GMT functions can be used on the data.
-In this case you will use
-
-.. _GMT_Convert_Data:
-
- ::
-
- void *GMT_Convert_Data (void *API, void *In, unsigned int family_in,
- void *Out, unsigned int family_out, unsigned int flag[]);
-
-which returns a pointer to the converted resource. Specify the needed
-:ref:`family ` for both the input and output resources and set the
-(up to) two flags passed via the ``flag`` array. The first ``flag[0]``
-determines how table headers and segment headers should be handled.
-By default (``flag[0]`` = 0) they are preserved (to the extent possible).
-E.g., converting a :ref:`GMT_DATASET ` to MATRIX always means table headers are
-skipped whereas segment headers are converted to NaN-records. Other
-values for this flag is 1 (Table headers are not copied, segment headers are preserved),
-2 (Headers are preserved, segment headers are reset to blank), or
-3 (All headers headers are eliminated). Note that this flag only
-affects duplication of headers. If the new object is written to file at
-a later stage then it is up to the GMT default setting if headers are written
-to file or not.
-The second ``flag[1]`` controls restructuring of tables and segments within
-a set. For ``flag[1]`` = 0 we retain the original layout. Other selections
-are ``GMT_WRITE_TABLE_SEGMENT`` (combine all segments into a *single* segment in a *single* table),
-``GMT_WRITE_TABLE`` (collect all segments into a *single* table), and ``GMT_WRITE_SEGMENT``
-(combine segments into *one* segment per table).
-Many family combinations are simply not allowed, such as grid to color palette, dataset to image,
-etc.
-
-Import Data Sets
-----------------
-
-If your program needs to import any of the six recognized data types
-(data table, grid, image, cube, CPT, or PostScript) you will use
-the GMT_Read_Data_ or GMT_Read_VirtualFile_ functions. The former
-is typically used when reading from files, streams (e.g., ``stdin``), or
-an open file handle, while the latter is only used to read from memory.
-Because of the similarities of these six
-import functions we use an generic form that covers all of them.
-
-All input functions takes a parameter called ``mode``. The ``mode``
-parameter generally has different meanings for the different data types
-and will be discussed below. However, one bit setting is common to all
-types: By default, you are only allowed to read a data source once; the
-source is then flagged as having been read and subsequent attempts to
-read from the same source will result in a warning and no reading takes
-place. In the unlikely event you need to re-read a source you can
-override this default behavior by adding ``GMT_IO_RESET`` to your ``mode``
-parameter. Note that this override does not apply to sources that are
-streams or file handles, as it may not be possible to re-read their
-contents.
-
-
-Import from a file, stream, or handle
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To read an entire resource from a file, stream, or file handle, use
-
-.. _GMT_Read_Data:
-
- ::
-
- void *GMT_Read_Data (void *API, unsigned int family, unsigned int method,
- unsigned int geometry, unsigned int mode, double wesn[], const char *input, void *ptr);
-
-* :ref:`API `
-* :ref:`family `
-* :ref:`method `
-* :ref:`geometry `
-* mode -- *see below*
-* :ref:`wesn `
-* input -- a pointer to char holding the file name to read, or NULL if ``stdin``
-* ptr -- NULL or the pointer returned by this function after a first call (when reading grids in two steps)
-* Return: Pointer to data container, or NULL if there were errors (passed back via API->error)
-
-
-where ``ptr`` is NULL except when reading grids in two steps (i.e.,
-first get a grid structure with a header, then read the data). Most of
-these arguments have been discussed earlier. This function can be called
-in three different situations:
-
-#. If you have a single source (filename, stream pointer, etc.) you can
- call GMT_Read_Data_ directly; there is no need to first register
- the source with GMT_Register_IO_ or gather the sources with
- GMT_Init_IO_. Furthermore, for :ref:`GMT_DATASET ` you can also
- specify a filename that contains UNIX wildcards (e.g., "all_*_[ab]?.txt")
- and these will all be read to produce a single multi-table :ref:`GMT_DATASET `
- (for other datatypes, see GMT_Read_Group_ instead).
-
-#. If you want to specify ``stdin`` as source then pass ``input`` as NULL.
-
-#. If you already registered all desired sources with GMT_Init_IO_
- then you indicate this choice by passing the invalid ``geometry`` = 0.
-
-Space will be allocated to hold the results, as needed, and a pointer to
-the object is returned. If there are errors we simply return NULL and
-report the error. Note that you can read in a GMT_IS_MATRIX either from a text
-table (passing ``geometry`` as GMT_IS_POINT) or from a grid (passing ``geometry``
-as GMT_IS_SURFACE). The ``mode`` parameter has different meanings for
-different data types.
-
-**Color palette table**.
- ``mode`` contains bit-flags that control how the CPT's back-,
- fore-, and NaN-colors should be initialized. Select 0 to use the
- CPT resource's back-, fore-, and NaN-colors, 2 to replace these with the current
- GMT default values, or 4 to replace them with the color table's
- entries for highest and lowest value.
-
-**Data table**.
- ``mode`` is currently not used.
-
-**Text table**.
- ``mode`` is currently not used.
-
-**GMT grid** or **image**.
- Here, ``mode`` determines how we read the grid: To read the entire
- grid and its header, pass ``GMT_CONTAINER_AND_DATA``. However, if you may need to
- extract a sub-region you must first read the header by passing
- ``GMT_CONTAINER_ONLY`` with ``wesn`` = NULL, then examine the header structure range
- attributes, specify a subset via the array ``wesn``, and
- finally call GMT_Read_Data_ a second time, now with ``mode`` =
- ``GMT_DATA_ONLY``, passing your ``wesn`` array and the grid
- structure returned from the first call as ``ptr``. In the event your
- data array should be allocated to hold both the real and imaginary
- parts of a complex data set you must add either
- ``GMT_GRID_IS_COMPLEX_REAL`` or ``GMT_GRID_IS_COMPLEX_IMAG`` to
- ``mode`` so as to allow for the extra memory needed and to stride
- the complex value-pairs correctly. If your grid is huge and you must read
- it row-by-row, set ``mode`` to ``GMT_CONTAINER_ONLY`` \|
- ``GMT_GRID_ROW_BY_ROW``. You can then access the grid row-by-row
- using GMT_Get_Row_. By default, the rows will be automatically
- processed in sequential order. To completely specify which row to be read, pass
- ``GMT_GRID_ROW_BY_ROW_MANUAL`` instead.
- Finally, as an option you may add ``GMT_GRID_XY`` to the mode and we also
- allocate the *x* and *y* coordinate vectors for the grid or image.
-
-*PostScript*.
- ``mode`` is currently not used.
-
-If you need to read the same resource more than once you should add the
-bit flag ``GMT_IO_RESET`` to the given ``mode``.
-
-Import a group of data sets
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To read a group of resources, you may instead use
-
-.. _GMT_Read_Group:
-
- ::
-
- void *GMT_Read_Group (void *API, unsigned int family, unsigned int method,
- unsigned int geometry, unsigned int mode, double wesn[],
- void *input, unsigned int *n_items, void *ptr);
-
-* :ref:`API `
-* :ref:`family `
-* :ref:`method `
-* :ref:`geometry `
-* mode -- *see below*
-* :ref:`wesn `
-* input -- Contents depends on the value of *n_items*. If it is zero then we expect
- a pointer to char holding UNIX wildcard file name(s) to read, otherwise we expect
- a pointer to an array of character strings (*n_items* in total) with names of all
- the files to read. If *n_items* is NULL then we assume 0 but cannot return the number
- found.
-* ptr -- NULL or the pointer returned by this function after a first call (applies when reading grids or images in two steps)
-* Return: Pointer to array of data container, or NULL if there were errors (passed back via API->error)
-
-
-where ``ptr`` is NULL except when reading grids in two steps (i.e.,
-first get a grid structures with a header, then read the data arrays). Most of
-these arguments have been discussed earlier. It is useful when you need to read
-a series of files (e.g., from a list with filenames) or want to specify the items
-to read using a UNIX wildcard specification. **Note**: If used with :ref:`GMT_DATASET `
-then you will receive an array of structures as well. Typically, many data files
-are read into separate tables that all form part of a single SET (this is what GMT_Read_Data_ does),
-but if GMT_Read_Group_ is used on the same arguments then an array of one-table sets will
-be returned instead. The purpose of your application will dictate which form is more convenient.
-
-Using user arrays in GMT
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-If your program uses a matrix or a set of column vectors to hold data
-and you wish to use such data in a GMT module, you must first create a
-GMT_MATRIX (for matrices) or GMT_VECTOR (for vectors) to hold your arrays.
-In this situation you must pass ``dim`` with the final dimensions of
-your rows and columns when you call GMT_Create_Data_ to make the empty
-containers. You can then use GMT_Put_Matrix_ and GMT_Put_Vector_ to hook
-up your own allocated arrays. It is then these containers that you
-will pass to GMT via *virtual files*. For receiving output from GMT it is
-normal to simply use Open_VirtualFile and have GMT allocate the space needed.
-However, if you want the result to be written to your own arrays or matrix
-then you must call GMT_Create_Data yourself with mode = GMT_IS_OUTPUT and
-specify the dimensions of your array, then (as for input) assign your memory
-to the container using GMT_Put_Matrix_ or GMT_Put_Vector_. Finally, if
-you also need to pass record of strings then see GMT_Put_Strings_ and
-GMT_Get_Strings_.
-
-Open a virtual file (memory location)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you have read in or otherwise obtained a data object in memory and you
-now wish for it to serve as input to a GMT module, you will have to associate
-that object with a "Virtual File". This step assigns a special filename to the
-memory location and you can then pass this filename to any module that
-needs to read that data. It is similar for writing, except you may pass
-NULL as the object to have GMT automatically allocate the output resource.
-If you want GMT to write to your preallocated memory then you must instead create a
-suitable container first (and pass the dimensions of the arrays) and then
-attach your array(s) using GMT_Put_Matrix_ or GMT_Put_Vector_.
-The full syntax is
-
-.. _GMT_Open_VirtualFile:
-
- ::
-
- int GMT_Open_VirtualFile (void *API, unsigned int family, unsigned int geometry,
- unsigned int direction, void *data, char *filename);
-
-Here, ``data`` is the pointer to your memory object. The function returns the
-desired filename via ``filename``. This string must be at least ``GMT_VF_LEN`` bytes (16).
-The other arguments have been discussed earlier. Specifically for direction, use
-GMT_IN for reading and GMT_OUT for writing. Simply pass this filename in
-the calling sequence to the module you want to use to indicate which file should
-be used for reading or writing. Note that if you plan to pass a matrix or vectors
-instead of grids or dataset you must add the modifiers GMT_IS_MATRIX or GMT_IS_VECTOR
-to ``family`` so that the module knows what to do. Finally, in the case of passing
-``data`` as NULL you may also control what type of matrix or vector will be created in
-GMT for the output by adding in the modifiers GMT_VIA_type, as listed in :ref:`types `.
-**Note**: GMT tries to minimize data duplication if possible, so if your input arrays are
-compatible with the data type used by the modules then we could use your array directly.
-This *may* have the side-effect that your input array is modified by the module, especially
-if the module writes the results to a netCDF grid file.
-If that is a price you are willing to pay then you can add GMT_IS_REFERENCE to the ``direction``
-argument and we will pass the array internally to avoid duplicating memory. For output it is
-best to pass GMT_IS_REFERENCE as well.
-
-Import from a virtual file
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Once the module completes it will have written its output to the virtual file
-you initialized with GMT_Open_VirtualFile_. To use the actual
-data you will need to "read" it into your program. Of course, the data are already
-in memory but to access it you need to use GMT_Read_VirtualFile_, which expects
-the output filename you obtained from GMT_Open_VirtualFile_. The syntax is
-
-.. _GMT_Read_VirtualFile:
-
- ::
-
- void *GMT_Read_VirtualFile (void *API, char *filename);
-
-The function requires the output filename via ``filename`` and then returns
-the data object, similar to what GMT_Read_Data_ does.
-
-Inquire a virtual file for family
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If you do not know what family is being represented by a virtual file
-then you should first obtain the family via GMT_Inquire_VirtualFile_. The syntax is
-
-.. _GMT_Inquire_VirtualFile:
-
- ::
-
- int GMT_Inquire_VirtualFile (void *API, const char *filename);
-
-The function requires the virtual file's ``filename`` and then returns the
-family of the data object.
-
-Reset a virtual file for reuse
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Should you need to read a virtual file again then you must first reset
-it to its original state with GMT_Init_VirtualFile_. The syntax is
-
-.. _GMT_Init_VirtualFile:
-
- ::
-
- int GMT_Init_VirtualFile (void *API, unsigned int mode, const char *filename);
-
-The function requires the virtual file's ``filename`` and then resets the
-internal counters (e.g., record numbers and other book-keeping parameters).
-The ``mode`` is presently not used.
-
-Close a virtual file
-~~~~~~~~~~~~~~~~~~~~
-
-Once you have finished using a virtual file you need to close it.
-This will reset its internal settings back to what it was before you
-used it as a virtual file. The syntax is
-
-
-.. _GMT_Close_VirtualFile:
-
- ::
-
- int GMT_Close_VirtualFile (void *API, char *filename);
-
-where ``filename`` is the name of the virtual file.
-
-
-Record-by-record input
-----------------------
-
-In the case of data tables you have the option of selecting
-record-by-record reading or writing. As a general rule, your program
-development simplifies if you can read entire resources into memory with
-GMT_Read_Data_ or GMT_Read_VirtualFile_. However, if this leads to
-unacceptable memory usage or if the program logic is particularly simple,
-you may obtain one data record at the time via GMT_Get_Record_ and write
-one at the time with GMT_Put_Record_. For row-by-row i/o for grids there
-is the corresponding function GMT_Get_Row_. There are additional overhead involved
-in setting up record-by-record processing, which is the topic of this section.
-
-Enable Data Import
-~~~~~~~~~~~~~~~~~~
-
-Once all input resources have been registered, we signal the API that we
-are done with the registration phase and are ready to start the actual
-data import. This step is only required when reading one record at the
-time. We initialize record-by-record reading by calling
-GMT_Begin_IO_. This function enables data
-record-by-record reading and prepares the registered sources for the
-upcoming import. The prototype is
-
-.. _GMT_Begin_IO:
-
- ::
-
- int GMT_Begin_IO (void *API, unsigned int family, unsigned int direction,
- unsigned int header);
-
-where :ref:`family ` specifies the resource type to be read or written
-(only ``GMT_IS_DATASET`` is
-available for record-by-record handling). The ``direction`` is either
-``GMT_IN`` or ``GMT_OUT``, so for import we obviously use ``GMT_IN``. The
-function determines the first input source and sets up procedures for
-skipping to the next input source in a virtual data set. The
-GMT_Get_Record_ function will not be able to read any data before
-GMT_Begin_IO_ has been called. As you might guess, there is a
-companion GMT_End_IO_ function that completes, then disables
-record-by-record data access. You can use these several times to switch
-modes between registering data resources, doing the importing/exporting,
-and disabling further data access, perhaps to do more registration. We
-will discuss GMT_End_IO_ once we are done with the data import. The final
-``header`` argument determines if the common header-block should be
-written during initialization; choose between ``GMT_HEADER_ON`` and
-``GMT_HEADER_OFF``. The function returns 1 if there is an
-error; otherwise it returns 0.
-
-Set data geometry
-~~~~~~~~~~~~~~~~~
-
-Typically only done for output data written record by record, we designate
-the data set's geometry by calling
-
-.. _GMT_Set_Geometry:
-
- ::
-
- int _GMT_Set_Geometry (void *API, unsigned int direction, unsigned int geometry);
-
-where ``direction`` is either ``GMT_IN`` or ``GMT_OUT`` and :ref:`geometry `
-sets the geometry that will be produced (or read).
-
-
-Importing a data record
-~~~~~~~~~~~~~~~~~~~~~~~
-
-If your program will read data table records one-by-one you must first
-enable this input mechanism with GMT_Begin_IO_ and then read the
-records within a loop, repeatedly using
-
-.. _GMT_Get_Record:
-
- ::
-
- void *GMT_Get_Record (void *API, unsigned int mode, int *nfields);
-
-where the returned value is a pointer to a GMT_RECORD structure, whose
-member pointers data and text point to ephemeral memory
-internal to GMT and should be considered read-only. When we reach
-end-of-file, encounter conversion problems, read header comments, or
-identify segment headers we instead return a NULL pointer. The ``nfields``
-integer pointer will return the number of fields returned; pass NULL if your
-program should ignore this information.
-
-Normally (i.e., ``mode`` = ``GMT_READ_DATA``), we return a pointer to
-a double array. To read text records, supply instead ``mode`` =
-``GMT_READ_TEXT`` and we will return a pointer to the text
-record. However, if you have input records that mixes organized
-floating-point columns with text items you could pass ``mode`` =
-``GMT_READ_MIXED``. Then, GMT will attempt to extract the
-floating-point values from as many columns as needed; you can still access the original record string, as
-discussed below. Finally, if your application needs to be notified when
-GMT closes one file and opens the next, add ``GMT_FILE_BREAK`` to
-``mode`` and check for the status code ``GMT_IO_NEXT_FILE`` (by default,
-we treat the concatenation of many input files as a single virtual
-file). Using GMT_Get_Record_ requires you to first initialize the
-source(s) with GMT_Init_IO_. For certain records, GMT_Get_Record_
-will return NULL and sets status codes that your program will need to
-examine to take appropriate response. Table :ref:`IO-status ` lists the
-various status codes you can check for, using the ``GMT_Get_Status`` function (see
-next section).
-
-Examining record status
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Programs that read record-by-record must be aware of what the current
-record represents. Given the presence of headers, data gaps, NaN-record,
-etc., the developer may want to check the status after reading the current
-record. The internal i/o status mode can be interrogated with the function
-
-.. _GMT_Get_Status:
-
- ::
-
- int GMT_Get_Status (void *API, unsigned int mode);
-
-which returns 0 (false) or 1 (true) if the current status is reflected
-by the specified ``mode``. There are 11 different modes available to
-programmers; for a list see Table :ref:`IO-status ` For an example of how
-these may be used, see the test program ``testgmtio.c``. Developers who plan to import
-data on a record-by-record basis may also consult the source code of,
-say, :doc:`blockmean` or :doc:`text`, to see examples of working code.
-
-.. _tbl-iostatus:
-
- +-----------------------+--------------------------------------------------------+
- | mode | description and return value |
- +=======================+========================================================+
- | GMT_IO_DATA_RECORD | 1 if we read a data record |
- +-----------------------+--------------------------------------------------------+
- | GMT_IO_TABLE_HEADER | 1 if we read a table header |
- +-----------------------+--------------------------------------------------------+
- | GMT_IO_SEGMENT_HEADER | 1 if we read a segment header |
- +-----------------------+--------------------------------------------------------+
- | GMT_IO_ANY_HEADER | 1 if we read either header record |
- +-----------------------+--------------------------------------------------------+
- | GMT_IO_MISMATCH | 1 if we read incorrect number of columns |
- +-----------------------+--------------------------------------------------------+
- | GMT_IO_EOF | 1 if we reached the end of the file (EOF) |
- +-----------------------+--------------------------------------------------------+
- | GMT_IO_NAN | 1 if we only read NaNs |
- +-----------------------+--------------------------------------------------------+
- | GMT_IO_GAP | 1 if this record implies a data gap |
- +-----------------------+--------------------------------------------------------+
- | GMT_IO_NEW_SEGMENT | 1 if we enter a new segment |
- +-----------------------+--------------------------------------------------------+
- | GMT_IO_LINE_BREAK | 1 if we encountered a segment header, EOF, NaNs or gap |
- +-----------------------+--------------------------------------------------------+
- | GMT_IO_NEXT_FILE | 1 if we finished one file but not the last |
- +-----------------------+--------------------------------------------------------+
-
- The various modes used to test the status of the record-by-record machinery.
-
-Importing a grid row
-~~~~~~~~~~~~~~~~~~~~
-
-If your program must read a grid file row-by-row you must first enable
-row-by-row reading with GMT_Read_Data_ and then use the
-GMT_Get_Row_ function in a loop; the prototype is
-
-.. _GMT_Get_Row:
-
- ::
-
- int GMT_Get_Row (void *API, int row_no, struct GMT_GRID *G, float *row);
-
-where ``row`` is a pointer to a pre-allocated single-precision array to receive the
-current row, ``G`` is the grid in question, and ``row_no`` is the number
-of the current row to be read. Note this value is only considered if the
-row-by-row mode was initialized with ``GMT_GRID_ROW_BY_ROW_MANUAL``.
-The user must allocate enough space to hold the entire row in memory.
-
-Disable Data Import
-~~~~~~~~~~~~~~~~~~~
-
-Once the record-by-record input processing has completed we disable
-further input to prevent accidental reading from occurring (due to poor
-program structure, bugs, etc.). We do so by calling GMT_End_IO_. This
-function disables further record-by-record data import; its prototype is
-
-.. _GMT_End_IO:
-
- ::
-
- int GMT_End_IO (void *API, unsigned int direction, unsigned int mode);
-
-and we specify ``direction`` = ``GMT_IN``. At the moment, ``mode`` is not
-used. This call will also reallocate any arrays obtained into their
-proper lengths. The function returns 1 if there is an error
-(whose code is passed back with ``API->error``), otherwise it returns 0 (``GMT_NOERROR``).
-
-.. _sec-manipulate:
-
-Manipulate data
----------------
-
-Once you have created and allocated empty resources, or read in
-resources from the outside, you may wish to manipulate their contents.
-This section discusses how to set up loops and access the important
-variables for each of the supported families. For grids and images it may in addition
-be required to determine what the coordinates are at each node point. This information
-can be obtained via arrays of coordinates for each dimension, obtained by
-
-.. _GMT_Get_Coord:
-
- ::
-
- double *GMT_Get_Coord (void *API, unsigned int family, unsigned int dim,
- void *data);
-
-where :ref:`family ` must be ``GMT_IS_GRID`` or ``GMT_IS_DATASET``, ``dim`` is either
-``GMT_IS_X`` or ``GMT_IS_Y``, and ``data`` is the grid or image pointer. This
-function will be used below in our example on grid manipulation.
-
-Another aspect of dealing with grids and images is to convert a row and column
-2-D reference to our 1-D array index. Because of grid and image boundary padding
-the relationship is not straightforward, hence we supply
-
-.. _GMT_Get_Index:
-
- ::
-
- uint64_t GMT_Get_Index (struct GMT_GRID_HEADER *header, int row, int col);
-
-where the ``header`` is the header of either a grid or image, and ``row`` and
-``col`` is the 2-D position in the grid or image. We return the 1-D array
-position; again this function is used below in our example. Likewise, for images
-with many layers we also define
-
-.. _GMT_Get_Pixel:
-
- ::
-
- uint64_t GMT_Get_Pixel (struct GMT_GRID_HEADER *header, int row,
- int col, int layer);
-
-where the ``header`` is the header of an image, and ``row``, ``col`` and
-``layer`` (= 1 for grids) is the position in the grid or image.
-
-For data cubes we need to also supply the ``level`` in the cube. Because
-each layer is basically a padded grid, we supply
-
-.. _GMT_Get_Index3:
-
- ::
-
- uint64_t GMT_Get_Index3 (struct GMT_GRID_HEADER *header, int row, int col, int level);
-
-where we return the 1-D array position.
-
-Manipulate grids
-~~~~~~~~~~~~~~~~
-
-Most applications wishing to manipulate grids will want to loop over all
-the nodes, typically in a manner organized by rows and columns. In doing
-so, the coordinates at each node may also be required for a calculation.
-Below is a snippet of code that shows how to do visit all nodes in a
-grid and assign each node the product x \* y:
-
- ::
-
- int row, col, node;
- double *x_coord = NULL, *y_coord = NULL;
- /*... create a grid G or read one ... */
- x_coord = GMT_Get_Coord (API, GMT_IS_GRID, GMT_X, G);
- y_coord = GMT_Get_Coord (API, GMT_IS_GRID, GMT_Y, G);
- for (row = 0; row < G->header->n_rows) {
- for (col = 0; col < G->header->n_columns; col++) {
- node = GMT_Get_Index (G->header, row, col);
- G->data[node] = x_coord[col] * y_coord[row];
- }
- }
-
-Note the use of GMT_Get_Index_ to get the grid node number associated
-with the ``row`` and ``col`` we are visiting. Because GMT grids have
-padding (for boundary conditions) the relationship between rows,
-columns, and node indices is more complicated and hence we hide that
-complexity in GMT_Get_Index_. Note that for trivial procedures such
-setting all grid nodes to a constant (e.g., -9999.0) where the row and
-column does not enter you can instead do a single loop:
-
- ::
-
- int node;
- /*... create a grid G or read one ... */
- for (node = 0; node < G->header->size) G->data[node] = -9999.0;
-
-Note we must use ``G->header->size`` (size of allocated array) and not
-``G->header->nm`` (number of nodes in grid) since the latter is smaller
-due to the padding and a single loop like the above treats the pad as
-part of the "inside" grid. Replacing ``size`` by ``nm`` would be a bug.
-
-Manipulate data tables
-~~~~~~~~~~~~~~~~~~~~~~
-
-Another common application is to process the records in a data table.
-Because GMT considers the :ref:`GMT_DATASET ` resources to contain one or more
-tables, each of which may contain one or more segments, all of which may
-contain one or more columns, you will need to have multiple nested loops to
-visit all entries. The following code snippet will visit all data
-records and add 1 to all columns beyond the first two (x and y), and if
-the data has a trailing string it will print it to stdout:
-
- ::
-
- uint64_t tbl, seg, row, col;
- struct GMT_DATATABLE *T = NULL;
- struct GMT_DATASEGMENT *S = NULL;
-
- /* ... create a dataset D or read one ... */
- for (tbl = 0; tbl < D->n_tables; tbl++) { /* For each table */
- T = D->table[tbl]; /* Convenient shorthand for current table */
- for (seg = 0; seg < T->n_segments; seg++) { /* For all segments */
- S = T->segment[seg]; /* Convenient shorthand for current segment */
- for (row = 0; row < S->n_rows; row++) { /* For all rows in segment */
- for (col = 2; col < T->n_columns; col++) { /* For all cols > 1 */
- S->data[col][row] += 1.0; /* Just add one */
- }
- if (S->text) printf ("Row %d has string: %s\n", (int)row, S->text[row]);
- }
- }
- }
-
-Message and Verbose Reporting
------------------------------
-
-The API provides two functions for your program to present information
-to the user during the run of the program. One is used for messages that
-are always written (optionally with a time stamp) while the other is used
-for reports whose verbosity level must exceed the verbosity settings specified via **-V**.
-
-Verbose reporting
-~~~~~~~~~~~~~~~~~
-
-.. _GMT_Report:
-
- ::
-
- int GMT_Report (void *API, unsigned int level, const char *message, ...);
-
-This function takes a verbosity level and a multi-part message (e.g., a
-format statement and zero or more variables as required by the format string). The verbosity ``level`` is
-an integer in the 0–5 range; these levels are listed in Table :ref:`timemodes `
-You assign an appropriate verbosity level to your message, and depending
-on the chosen run-time verbosity level set via **-V** your message may
-or may not be reported. Only messages whose stated verbosity level is
-lower or equal to the **-V**\ *level* will be printed. These messages are typically
-progress reports, etc., and are sent to standard error.
-
-
-.. _tbl-verbosity:
-
- +----------------------+--------------------------------------+
- | constant | description |
- +======================+======================================+
- | GMT_MSG_QUIET | Quiet; no messages whatsoever |
- +----------------------+--------------------------------------+
- | GMT_MSG_ERROR | Error messages only |
- +----------------------+--------------------------------------+
- | GMT_MSG_WARNING | Warnings |
- +----------------------+--------------------------------------+
- | GMT_MSG_TICTOC | Time usage for slow algorithms |
- +----------------------+--------------------------------------+
- | GMT_MSG_INFORMATION | Informational messages |
- +----------------------+--------------------------------------+
- | GMT_MSG_COMPAT | Compatibility warnings |
- +----------------------+--------------------------------------+
- | GMT_MSG_DEBUG | Debug messages for developers mostly |
- +----------------------+--------------------------------------+
-
- The different levels of verbosity that can be selected.
-
-Error string
-~~~~~~~~~~~~
-
-.. _GMT_Error_Message:
-
- ::
-
- char * GMT_Error_Message (void *API);
-
-This function simply returns a character pointer to the internal error message
-buffer holding the last error message generated.
-
-User messages
-~~~~~~~~~~~~~
-
-For custom messages to the user that should always be printed, we use
-
-.. _GMT_Message:
-
- ::
-
- int GMT_Message (void *API, unsigned int mode, const char *format, ...);
-
-This function always prints its message to the standard output. Use the
-``mode`` value to control if a time stamp should preface the message,
-and if selected how the time information should be formatted. See
-Table :ref:`timemodes ` for the various modes.
-
-.. _tbl-timemodes:
-
- +------------------+---------------------------------------+
- | constant | description |
- +==================+=======================================+
- | GMT_TIME_NONE | Display no time information |
- +------------------+---------------------------------------+
- | GMT_TIME_CLOCK | Display current local time |
- +------------------+---------------------------------------+
- | GMT_TIME_ELAPSED | Display elapsed time since last reset |
- +------------------+---------------------------------------+
- | GMT_TIME_RESET | Reset the elapsed time to 0 |
- +------------------+---------------------------------------+
-
- The different types of message modes.
-
-Special GMT modules
--------------------
-
-There are some differences between calling
-modules on the command line and using them via the API. These are discussed here.
-
-API-only modules
-~~~~~~~~~~~~~~~~
-
-There are two general-purpose modules that are not part of the command-line version of
-GMT. These are the read and write modules. Both take an option to specify what GMT
-resource is being read of written: **-Tc**\|\ **d**\|\ **g**\|\ **i**\|\ **p**,
-which selects CPT, dataset, grid, image, or PostScript, respectively. In addition
-both modules accept the *infile* and *outfile* argument for source and destination. These
-may be actual files of memory locations, of course.
-
-PostScript Access
-~~~~~~~~~~~~~~~~~
-
-The GMT module :doc:`psconvert` is normally given one or more PostScript files that may be
-converted to other formats. When accessed by the API it may also be given the special
-file name "=", which means we are to use the internal PostScript string produced by
-the latest GMT plotting instead of any actual file name. The module can access this
-string which must be a complete plot (i.e., it must have header, middle, and trailer
-and thus be a valid PostScript file). This allows the API to convert plots to a
-suitable image format without any duplication and manipulation of the PostScript
-itself.
-
-Adjusting headers and comments
-------------------------------
-
-All header records in incoming datasets are stored in memory. You may
-wish to replace these records with new information, or append new
-information to the existing headers. This is achieved with
-
-.. _GMT_Set_Comment:
-
- ::
-
- int GMT_Set_Comment (void *API, unsigned int family, unsigned int mode,
- void *arg, void *data)
-
-Again, :ref:`family ` selects which kind of resource is passed via ``data``.
-The ``mode`` determines what kind of comment is being considered, how it
-should be included, and in what form the comment passed via ``arg`` is provided.
-Table :ref:`comments ` lists the available options, which may be combined
-by adding (bitwise "or"). The GMT_Set_Comment_ function does not actually
-output anything but sets the relevant comment and header records in the
-relevant structure. When a file is written out the information will be
-output as well (**Note**: Users can always decide if they wish to turn
-header output on or off via the common GMT option ``-h``. For
-record-by-record writing you must enable the header block output when
-you call GMT_Begin_IO_.
-
-.. _tbl-comments:
-
- +-------------------------+---------------------------------------------------+
- | constant | description |
- +=========================+===================================================+
- | GMT_COMMENT_IS_TEXT | Comment is a text string |
- +-------------------------+---------------------------------------------------+
- | GMT_COMMENT_IS_OPTION | Comment is a linked list of GMT_OPTION structures |
- +-------------------------+---------------------------------------------------+
- | GMT_COMMENT_IS_COMMAND | Comment is the command |
- +-------------------------+---------------------------------------------------+
- | GMT_COMMENT_IS_REMARK | Comment is the remark |
- +-------------------------+---------------------------------------------------+
- | GMT_COMMENT_IS_TITLE | Comment is the title |
- +-------------------------+---------------------------------------------------+
- | GMT_COMMENT_IS_NAME_X | Comment is the x variable name (grids only) |
- +-------------------------+---------------------------------------------------+
- | GMT_COMMENT_IS_NAME_Y | Comment is the y variable name (grids only) |
- +-------------------------+---------------------------------------------------+
- | GMT_COMMENT_IS_NAME_Z | Comment is the z variable name (grids only) |
- +-------------------------+---------------------------------------------------+
- | GMT_COMMENT_IS_COLNAMES | Comment is the column names header |
- +-------------------------+---------------------------------------------------+
- | GMT_COMMENT_IS_RESET | Comment replaces existing information |
- +-------------------------+---------------------------------------------------+
-
- The modes for setting various comment types.
-
-The named modes (*command*, *remark*, *title*, *name_x,y,z* and
-*colnames* are used to distinguish regular text comments from specific
-fields in the header structures of the data resources, such as
-:ref:`GMT_GRID `. For the various table resources (e.g., :ref:`GMT_DATASET `)
-these modifiers result in a specially formatted comments beginning with
-"Command: " or "Remark: ", reflecting how this type of information is
-encoded in the headers.
-
-Export Data Sets
-----------------
-
-If your program needs to write any of the six recognized data types
-(CPTs, data tables, grids, images, cubes or PostScript) you can use the
-GMT_Write_Data_ function.
-
-Both of these output functions takes a parameter called ``mode``. The
-``mode`` parameter generally takes on different meanings for the
-different data types and will be discussed below. However, one bit
-setting is common to all types: By default, you are only allowed to
-write a data resource once; the resource is then flagged to have been
-written and subsequent attempts to write to the same resource will
-quietly be ignored. In the unlikely event you need to re-write a
-resource you can override this default behavior by adding ``GMT_IO_RESET``
-to your ``mode`` parameter.
-
-Exporting a data set
-~~~~~~~~~~~~~~~~~~~~
-
-To have your program accept results from GMT modules and write them
-separately requires you to use the GMT_Write_Data_ function. It is very similar to the
-GMT_Read_Data_ function encountered earlier.
-
-Exporting a data set to a file, stream, or handle
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The prototype for writing to a file (via name, stream, or file handle) is
-
-.. _GMT_Write_Data:
-
- ::
-
- int GMT_Write_Data (void *API, unsigned int family, unsigned int method,
- unsigned int geometry, unsigned int mode, double wesn[], void *output, void *data);
-
-* :ref:`API `
-* :ref:`family `
-* :ref:`method `
-* :ref:`geometry `
-* mode -- specific to each data type (\ *see below*)
-* :ref:`wesn `
-* output --
-* data -- A pointer to any of the six families.
-* Return: 0 on success, otherwise return -1 and set API->error to reflect to cause.
-
-where ``data`` is a pointer to any of the four structures discussed previously.
-
-**Color palette table**
- ``mode`` controls if the CPT's back-, fore-, and NaN-colors
- should be written (1) or not (0).
-
-**Data table**
- If ``method`` is ``GMT_IS_FILE``, then the value of ``mode`` affects
- how the data set is written:
-
- **GMT_WRITE_SET**
- The entire data set will be written to the single file [0].
-
- **GMT_WRITE_TABLE**
- Each table in the data set is written to individual files [1].
- You can either specify an output file name that *must* contain
- one C-style format specifier for an int variable (e.g.,
- "New_Table_%06d.txt"), which will be replaced with the table
- number (a running number from 0) *or* you must assign to each
- table *i* a unique output file name via the
- ``D->table[i]->file[GMT_OUT]`` variables prior to calling the
- function.
-
- **GMT_WRITE_SEGMENT**
- Each segment in the data set is written to an individual file
- [2]. Same setup as for ``GMT_WRITE_TABLE`` except we use
- sequential segment numbers to build the file names.
-
- **GMT_WRITE_TABLE_SEGMENT**
- Each segment in the data set is written to an individual file
- [3]. You can either specify an output file name that *must*
- contain two C-style format specifiers for two int variables
- (e.g., "New_Table_%06d_Segment_%03d.txt"), which will be
- replaced with the table and segment numbers, *or* you must
- assign to each segment *j* in each table *i* a unique output
- file name via the ``D->table[i]->segment[j]->file[GMT_OUT]``
- variables prior to calling the function.
-
- **GMT_WRITE_OGR**
- Writes the dataset in OGR/GMT format in conjunction with the
- ``-a`` setting [4].
-
-**Text table**
- The ``mode`` is used the same way as for data tables.
-
-**GMT grid**
- Here, ``mode`` may be ``GMT_CONTAINER_ONLY`` to only update a
- file's header structure, but normally it is simply ``GMT_CONTAINER_AND_DATA``
- so the entire grid and its header will be exported (a subset is
- not allowed during export). However, in the event your data array
- holds both the real and imaginary parts of a complex data set you
- must add either ``GMT_GRID_IS_COMPLEX_REAL`` or
- ``GMT_GRID_IS_COMPLEX_IMAG`` to ``mode`` so as to export the
- corresponding grid values correctly. Finally, for native binary
- grids you may skip writing the grid header by adding
- ``GMT_GRID_NO_HEADER``; this setting is ignored for all other grid
- formats. If your output grid is huge and you are building it
- row-by-row, set ``mode`` to ``GMT_CONTAINER_ONLY`` \|
- ``GMT_GRID_ROW_BY_ROW``. You can then write the grid row-by-row
- using GMT_Put_Row_. By default the rows will be automatically
- processed in order. To completely specify which row to be written,
- use ``GMT_GRID_ROW_BY_ROW_MANUAL`` instead; this requires a file format
- that supports direct writes, such as netCDF. Finally, if you are
- preparing a geographic grid outside of GMT you need to add the mode
- ``GMT_GRID_IS_GEO`` to ensure that the proper metadata will be written
- to the netCDF header, thus letting the grid be recognized as such.
-
-**Note**: If ``method`` is GMT_IS_FILE, :ref:`family ` is ``GMT_IS_GRID``,
-and the filename implies a change from NaN to another value then the grid is
-modified accordingly. If you continue to use that grid after writing please be
-aware that the changes you specified were applied to the grid.
-
-Record-by-record output
------------------------
-
-In the case of data tables, you may also
-consider the GMT_Put_Record_ function for record-by-record writing. As a general rule, your
-program organization may simplify if you can write the entire
-resource with GMT_Write_Data_. However, if the program logic is simple
-or already involves using GMT_Get_Record_, it may be better to export
-one data record at the time via GMT_Put_Record_. For grids there is the
-corresponding GMT_Put_Row_ function.
-
-Enable Data Export
-~~~~~~~~~~~~~~~~~~
-
-Similar to the data import procedures, once all output destinations have
-been registered, we signal the API that we are done with the
-registration phase and are ready to start the actual data export. As for
-input, this step is only needed when dealing with record-by-record
-writing. Again, we enable record-by-record writing by calling
-GMT_Begin_IO_, this time with ``direction`` = ``GMT_OUT``. This function
-enables data export and prepares the registered destinations for the
-upcoming writing.
-
-
-Specifying the number of output columns
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-For record-based ASCII input/output you will need to specify the number of
-columns, unless for output it equals the number of input columns. This is done with
-the GMT_Set_Columns_ function:
-
-.. _GMT_Set_Columns:
-
- ::
-
- void *GMT_Set_Columns (void *API, unsigned int direction, unsigned int n_columns, unsigned int mode);
-
-The ``n_columns`` is a number related to the number of columns you plan to read/write, while
-``mode`` controls what that number means. For input, ``mode`` = ``GMT_COL_FIX`` sets the actual
-number of numerical columns to read. Anything beyond is considered trailing text and is parsed unless
-you use ``GMT_COL_FIX_NO_TEXT`` instead. If your records have variable number of numerical columns
-then you may use ``GMT_COL_VAR``. For output, you can also select from
-other modes. Here, ``mode`` = ``GMT_COL_ADD`` means it should be added to the known number
-of input columns to arrive at the number of final output columns, while ``mode`` = ``GMT_COL_SUB``
-means this value should be subtracted from the number of input columns to find the number of
-output columns.
-
-
-Exporting a data record
-~~~~~~~~~~~~~~~~~~~~~~~
-
-If your program must write data table records one-by-one you must first
-enable record-by-record writing with GMT_Begin_IO_ and then use the
-``GMT_Put_Record`` function in a loop; the prototype is
-
-.. _GMT_Put_Record:
-
- ::
-
- int GMT_Put_Record (void *API, unsigned int mode, void *rec);
-
-where ``rec`` is a pointer to (a) a GMT_RECORD structure for
-the current row. Alternatively (b), ``rec``
-points to a text string. The ``mode`` parameter must be set to reflect
-what is passed. Using GMT_Put_Record_ requires you to first
-initialize the destination with GMT_Init_IO_. Note that for
-``GMT_IS_DATASET`` the methods ``GMT_IS_DUPLICATE`` and
-``GMT_IS_REFERENCE`` are not supported since you can simply populate the
-:ref:`GMT_DATASET ` structure directly. As mentioned, ``mode`` affects what is
-actually written:
-
-**GMT_WRITE_DATA**.
- Normal operation that builds the current output record from the numerical values in ``rec``.
-
-**GMT_WRITE_TABLE_HEADER**.
- For ASCII output mode we write the text string ``rec``. If ``rec``
- is NULL then we write the last read header record. If binary
- output mode we quietly skip writing this record.
-
-**GMT_WRITE_SEGMENT_HEADER**.
- For ASCII output mode we use the text string ``rec`` as the
- segment header. If ``rec`` is NULL then we use the current (last
- read) segment header record. If binary output mode instead we write
- a record composed of NaNs.
-
-The function returns 1 if there was an error associated with the
-writing (which is passed back with ``API->error``), otherwise it returns
-0 (``GMT_NOERROR``).
-
-Exporting a grid row
-~~~~~~~~~~~~~~~~~~~~
-
-If your program must write a grid file row-by-row you must first enable
-row-by-row writing with GMT_Read_Data_ and then use the
-GMT_Put_Row_ function in a loop; the prototype is
-
-.. _GMT_Put_Row:
-
- ::
-
- int GMT_Put_Row (void *API, int row_no, struct GMT_GRID *G, float *row);
-
-where ``row`` is a pointer to a single-precision array with the current
-row, ``G`` is the grid in question, and ``row_no`` is the number of the
-current row to be written. Note this value is only considered if the
-row-by-row mode was initialized with ``GMT_GRID_ROW_BY_ROW_MANUAL``.
-
-Disable Data Export
-~~~~~~~~~~~~~~~~~~~
-
-Once the record-by-record output has completed we disable further output
-to prevent accidental writing from occurring (due to poor program
-structure, bugs, etc.). We do so by calling GMT_End_IO_. This
-function disables further record-by-record data export; here, we
-obviously pass ``direction`` as ``GMT_OUT``.
-
-Destroy allocated resources
----------------------------
-
-If your session imported any data sets into memory then you may
-explicitly free this memory once it is no longer needed and before
-terminating the session. This is done with the GMT_Destroy_Data_
-function, whose prototype is
-
-.. _GMT_Destroy_Data:
-
- ::
-
- int GMT_Destroy_Data (void *API, void *data);
-
-where ``data`` is the address of the pointer to a data container, i.e., not
-the pointer to the container but the *address* of that pointer (e.g. &pointer). Note that
-when each module completes it will automatically free memory created by
-the API; similarly, when the session is destroyed we also automatically
-free up memory. Thus, ``GMT_Destroy_Data`` is therefore generally only
-needed when you wish to directly free up memory to avoid running out of
-it. The function returns 1 if there is an error when trying to
-free the memory (the error code is passed back with ``API->error``),
-otherwise it returns 0 (``GMT_NOERROR``).
-
-Destroy groups of allocated resources
--------------------------------------
-
-If you obtained an array of resources via GMT_Read_Group_ then
-you will need to destroy these resources with GMT_Destroy_Group_ instead,
-whose prototype is
-
-.. _GMT_Destroy_Group:
-
- ::
-
- int GMT_Destroy_Group (void *API, void *data, unsigned int n);
-
-where ``data`` is the address of the array with data containers, i.e., not
-the array to the containers but the *address* of that array (e.g. &array),
-and ``n`` is the number of containers.
-
-Free other allocated memory
----------------------------
-
-Some GMT functions may allocate memory that is not part of the containers
-and thus cannot be freed with GMT_Destroy_Data_. For these cases there is
-the GMT_Free_ function, whose prototype is
-
-.. _GMT_Free:
-
- ::
-
- int GMT_Free (void *API, void *ptr);
-
-where ``ptr`` is the address of the pointer to arbitrary data allocated
-by the GMT API. The most common use of this function is to free the
-resources returned by GMT_Encode_Options_.
-
-Terminate a GMT session
------------------------
-
-Before your program exits it should properly terminate the
-GMT session, which involves a call to
-
-.. _GMT_Destroy_Session:
-
- ::
-
- int GMT_Destroy_Session (void *API);
-
-which simply takes the pointer to the GMT API control structure as its
-only arguments. It terminates the GMT machinery and deallocates all
-memory used by the GMT API book-keeping. It also unregisters any
-remaining resources previously registered with the session. The
-GMT API will only close files that it was responsible for opening in
-the first place. Finally, the API structure itself is freed so your main
-program does not need to do so. The function returns 1 if there
-is an error when trying to free the memory (the error code is passed
-back with ``API->error``), otherwise it returns 0 (``GMT_NOERROR``).
-
-.. _sec-parsopt:
-
-Presenting and accessing GMT options
-------------------------------------
-
-As you develop a program you may wish to rely on some of
-the GMT common options. For instance, you may wish to have your
-program present the ``-R`` option to the user, let GMT handle the
-parsing, and examine the values. You may also wish to encode your own
-custom options that may require you to parse user text into the
-corresponding floating point dimensions, constants, coordinates, absolute time, etc.
-The API provides several functions to simplify these tedious parsing
-tasks. This section is intended to show how the programmer will obtain
-information from the user that is necessary to do the task at hand
-(e.g., special options to provide values and settings for the program).
-In the following section we will concern ourselves with preparing
-arguments for calling any of the GMT modules.
-
-Display usage syntax for GMT common options
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-You can have your program menu display the standard usage message for a
-GMT common option by calling the function
-
-.. _GMT_Option:
-
- ::
-
- int GMT_Option (void *API, const char *options);
-
-where ``options`` is a comma-separated list of GMT common options
-(e.g., "R,J,O,X"). You can repeat this function with different sets of
-options in order to intersperse your own custom options within an
-overall alphabetical order; see any GMT module for examples of typical
-layouts.
-
-Parsing the GMT common options
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The parsing of all GMT common option is done by on call to
-
-.. _GMT_Parse_Common:
-
- ::
-
- int GMT_Parse_Common (void *API, const char *args, struct GMT_OPTION *list);
-
-where ``args`` is a string of the common GMT options your program is allowed to use.
-An error will be reported if any of the common GMT options fail
-to parse, and if so we return 1; if no errors we return 0. All
-other options, including file names, will be silently ignored. The
-parsing will update the internal GMT information structure that
-affects module operations.
-
-Inquiring about the GMT common options
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The API provide only a limited window into the full GMT machinery
-accessible to the modules. You can determine if a particular common
-option has been parsed and in some cases determine the values that were set with
-
-.. _GMT_Get_Common:
-
- ::
-
- int GMT_Get_Common (void *API, unsigned int option, double *par);
-
-where ``option`` is a single option character (e.g., 'R') and ``par`` is
-a double array with at least a length of 6. If the particular option has
-been parsed then the function returns the number of parameters passed
-back via ``par``; otherwise we return -1. For instance, to determine if
-the ``-R`` was set and to obtain the specified region you may call
-
- ::
-
- if (GMT_Get_Common (API, 'R', wesn)) != -1) {
- /* wesn now contains the boundary information */
- }
-
-The ``wesn`` array could now be passed to the various read and create
-functions for GMT resources.
-
-Parsing text values
-~~~~~~~~~~~~~~~~~~~
-
-Your program may need to request values from the user, such as
-distances, plot dimensions, coordinates, date/time strings and other data. The conversion
-from such text to actual distances, taking units into account, is
-tedious to program. You can simplify this by using
-
-.. _GMT_Get_Values:
-
- ::
-
- int GMT_Get_Values (void *API, const char *arg, double par[], int maxpar);
-
-where ``arg`` is the text item with one or more values that are
-separated by commas, spaces, tabs, semi-colons, or slashes, and ``par`` is an array of length ``maxpar`` long
-enough to hold all the items you are parsing. The function returns the
-number of items parsed with a maximum of ``maxpar``, or -1 if there is an error. For instance, assume
-the character string ``origin`` was given by the user as two geographic
-coordinates separated by a slash (e.g., ``"35:45W/19:30:55.3S"``). We
-obtain the two coordinates in decimal degrees by calling
-
- ::
-
- n = GMT_Get_Values (API, origin, pair, 2);
-
-Your program can now check that ``n`` equals 2 and then use the values
-in ``pairs`` separately. **Note**: Dimensions given with units of inches, cm, or points
-are converted to the current default unit set via :term:`PROJ_LENGTH_UNIT`,
-while distances given in km, nautical miles, miles, feet, or
-survey feet are returned in meters. Arc lengths in minutes and seconds
-are returned in decimal degrees, and date/time values are returned in
-seconds since the current epoch [1970].
-
-Get or set an API or GMT default parameter
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If your program needs to determine one or more of the current
-API or GMT default settings you can do so via
-
-.. _GMT_Get_Default:
-
- ::
-
- int GMT_Get_Default (void *API, const char *keyword, char *value);
-
-where ``keyword`` is one such keyword (e.g., :term:`PROJ_LENGTH_UNIT`) and
-``value`` must be a character string long enough to hold the answer. In
-addition to the long list of GMT defaults you can also inquire about the
-API parameters ``API_PAD`` (the current pad setting), ``API_IMAGE_LAYOUT`` (the
-order and structure of image memory storage), ``API_GRID_LAYOUT`` (order of
-grid memory storage), ``API_VERSION`` (the API version string),
-``API_CORES`` (the number of cores seen by the API),
-``API_BINDIR`` (the API (GMT) executable path),
-``API_SHAREDIR`` (the API (GMT) shared directory path),
-``API_DATADIR`` (the API (GMT) data directory path), and
-``API_PLUGINDIR`` (the API (GMT) plugin path).
-Depending on what parameter you selected you could further convert it to
-a numerical value with GMT_Get_Values_ or just use it in a text comparison.
-
-To change any of the API or
-GMT default settings programmatically you would use
-
-.. _GMT_Set_Default:
-
- ::
-
- int GMT_Set_Default (void *API, const char *keyword, const char *value);
-
-where as before ``keyword`` is one such keyword (e.g., :term:`PROJ_LENGTH_UNIT`) and
-``value`` must be a character string with the new setting.
-Note that all settings must be passed as text strings even if many are
-inherently integers or floats.
-
-Get an API enum constant
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-The GMT API enum constants that are part of the API are defined in the
-include file gmt_resources.h, which is included by gmt.h. So, if you are
-writing an application in C/C++ you are including gmt.h and thus have
-access to all the API enums directly. However, if your application is
-written in other languages and you are perhaps just interfacing with the
-shared GMT API library, then you can access any GMT enum via
-
-.. _GMT_Get_Enum:
-
- ::
-
- int GMT_Get_Enum (void *API, const char *enumname);
-
-where ``enumname`` is the name of one such enum (e.g., GMT_SESSION_EXTERNAL, GMT_IS_DATASET, etc.),
-including the ones listed in :ref:`types ` and :ref:`types `; see
-gmt_resources.h for the full listing.
-The function returns the corresponding integer value. For unrecognized names we return -99999.
-**Note**: You may pass a NULL pointer as API if you need to obtain enum values prior to calling GMT_Create_Session_.
-
-For indexed access to custom grids and images we may need to know the internal matrix layout.
-You can change this information via
-
-.. _GMT_Set_Index:
-
- ::
-
- int64_t GMT_Set_Index (struct GMT_GRID_HEADER *header, char *code);
-
-where the ``header`` is the header of either a grid or image, and ``code`` is a three-character
-code indication ...
-
-.. _sec-func:
-
-Call a module
--------------
-
-One of the advantages of programming with the API is that you
-have access to the high-level GMT modules. For example, if your
-program must compute the distance from a node to all other nodes in the grid
-then you can simply set up options and call :doc:`grdmath` to do it
-for you and accept the result back as an input grid. All the module
-interfaces are identical and are called via
-
-.. _GMT_Call_Module:
-
- ::
-
- int GMT_Call_Module (void *API, const char *module, int mode, void *args);
-
-Here, ``module`` is the name of any of the GMT modules, such as
-:doc:`plot` or :doc:`grdvolume`. All GMT modules may be called with one of
-three sets of ``args`` depending on ``mode``. The three modes differ in
-how the options are passed to the module:
-
- *mode* = ``GMT_MODULE_EXIST``.
- Return GMT_NOERROR (0) if the module exists, nonzero otherwise.
-
- *mode* = ``GMT_MODULE_PURPOSE``.
- Just print the one-line purpose of the module; args must be NULL.
-
- *mode* = ``GMT_MODULE_LIST``.
- Just prints a list of all modules (including those given as plugins); args must be NULL.
-
- *mode* = ``GMT_MODULE_OPT``.
- Expects ``args`` to be a pointer to a doubly-linked list of objects with individual
- options for the current program. We will see
- how API functions can help prepare and maintain such lists.
-
- *mode* = ``GMT_MODULE_CMD``.
- Expects ``args`` to be a single text string with all needed options.
-
- *mode > 0*.
- Expects ``args`` to be an array of text strings and ``mode`` to be a count of how many
- options are passed (i.e., the ``argc, argv[]`` model used by the GMT programs themselves).
-
-From external interfaces and with a debug verbosity level set, ``GMT_Call_Module`` will
-also print out the equivalent command line to standard error (or its substitute).
-
-Set program options via text array arguments
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When ``mode > 0`` we expect an array ``args`` of character
-strings that each holds a single command line option (e.g.,
-"-R120:30/134:45/8S/3N") and interpret ``mode`` to be the count of how
-many options are passed. This, of course, is almost exactly how the
-stand-alone GMT programs are called (and reflects how they themselves
-are activated internally). We call this the "argc-argv" mode. Depending
-on how your program obtains the necessary options you may find that this
-interface offers all you need.
-
-Set program options via text command
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If ``mode =`` 0 then ``args`` will be examined to see if it contains
-several options within a single command string. If so we will break
-these into separate options. This is useful if you wish to pass a single
-string such as "-R120:30/134:45/8S/3N -JM6i mydata.txt -Sc0.2c". We call
-this the "command" mode and it is extensively used by the modules themselves.
-
-Set program options via linked structures
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The third, linked-list interface allows developers using higher-level
-programming languages to pass all command options via a pointer to a
-NULL-terminated, doubly-linked list of option structures, each
-containing information about a single option. Here, instead of text
-arguments we pass the pointer to the linked list of options mentioned
-above, and ``mode`` must be passed as ``GMT_MODULE_OPT``. Using
-this interface can be more involved since you need to generate the
-linked list of program options; however, utility functions exist to
-simplify its use. This interface is intended for programs whose internal
-workings are better suited to generate such arguments -- we call this the
-"options" mode. The order in the list is not important as GMT will
-sort it internally according to need. The option structure is defined below.
-
-.. _options:
-
- ::
-
- struct GMT_OPTION {
- char option; /* Single option character (e.g., 'G' for -G) */
- char *arg; /* String with arguments (NULL if not used) */
- struct GMT_OPTION *next; /* Next option pointer (NULL for last option) */
- struct GMT_OPTION *prev; /* Previous option (NULL for first option) */
- };
-
-Convert between text and linked structures
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To assist programmers there are also two convenience functions that
-allow you to convert between the two argument formats. They are
-
-.. _GMT_Create_Options:
-
- ::
-
- struct GMT_OPTION *GMT_Create_Options (void *API, int argc, void *args);
-
-This function accepts your array of text arguments (cast via a void
-pointer), allocates the necessary space, performs the conversion, and
-returns a pointer to the head of the linked list of program options.
-However, in case of an error we return a NULL pointer and set
-``API->error`` to indicate the nature of the problem. Otherwise, the
-pointer may now be passed to the relevant GMT module. Note that if
-your list of text arguments were obtained from a C ``main()`` function
-then ``argv[0]`` will contain the name of the calling program. To avoid
-passing this as a bad file name option, call GMT_Create_Options_ with
-``argc-1`` and ``argv+1`` instead. If you wish to pass a single text string with
-multiple options (in lieu of an array of text strings), then pass
-``argc`` = 0. When no longer needed you can remove the entire list by calling
-
-.. _GMT_Destroy_Options:
-
- ::
-
- int GMT_Destroy_Options (void *API, struct GMT_OPTION **list);
-
-The function returns 1 if there is an error (which is passed back
-with ``API->error``), otherwise it returns 0 (``GMT_NOERROR``).
-
-The inverse function prototype is
-
-.. _GMT_Create_Args:
-
- ::
-
- char **GMT_Create_Args (void *API, int *argc, struct GMT_OPTION *list);
-
-which allocates space for the text strings and performs the conversion;
-it passes back the count of the arguments via ``argc`` and returns a
-pointer to the text array. In the case of an error we return a NULL
-pointer and set ``API->error`` to reflect the error type. Note that
-``argv[0]`` will not contain the name of the program as is the case the
-arguments presented by a C ``main()`` function. When you no longer have
-any use for the text array, call
-
-.. _GMT_Destroy_Args:
-
- ::
-
- int GMT_Destroy_Args (void *API, int argc, char **argv[]);
-
-to deallocate the space used. This function returns 1 if there is
-an error (which is passed back with ``API->error``), otherwise it returns 0 (``GMT_NOERROR``).
-
-Finally, to convert the linked list of option structures to a single
-text string command, use
-
-.. _GMT_Create_Cmd:
-
- ::
-
- char *GMT_Create_Cmd (void *API, struct GMT_OPTION *list);
-
-Developers who plan to import and export GMT shell scripts might find
-it convenient to use these functions. In case of an error we return a
-NULL pointer and set ``API->error``, otherwise a pointer to an allocated
-string is returned. When you no longer have
-any use for the text string, call
-
-.. _GMT_Destroy_Cmd:
-
- ::
-
- int GMT_Destroy_Cmd (void *API, char **string);
-
-to deallocate the space used. This function returns 1 if there is
-an error (which is passed back with ``API->error``), otherwise it
-returns 0 (``GMT_NOERROR``).
-
-Manage the linked list of options
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Several additional utility functions are available for programmers who
-wish to manipulate program option structures within their own programs.
-These allow you to create new option structures, append them to the
-linked list, replace existing options with new values, find a particular
-option, and remove options from the list. **Note**: The order in which the
-options appear in the linked list is of no consequence to GMT.
-Internally, GMT will sort and process the options in the manner
-required. Externally, you are free to maintain your own order.
-
-Make a new option structure
-^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-GMT_Make_Option_ will allocate a new option structure, assign
-values given the ``option`` and ``arg`` parameters (pass NULL if there is
-no argument for this option), and return a pointer to the allocated
-structure. The prototype is
-
-.. _GMT_Make_Option:
-
- ::
-
- struct GMT_OPTION *GMT_Make_Option (void *API, char option, const char *arg);
-
-Should memory allocation fail the function will print an error message
-pass an error code via ``API->error``, and return NULL.
-
-Append an option to the linked list
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-GMT_Append_Option_ will append the specified ``option`` to the end of
-the doubly-linked ``list``. The prototype is
-
-.. _GMT_Append_Option:
-
- ::
-
- struct GMT_OPTION *GMT_Append_Option (void *API, struct GMT_OPTION *option,
- struct GMT_OPTION *list);
-
-We return the list back, and if ``list`` is given as NULL we return
-``option`` as the start of the new list. Any errors result in a NULL
-pointer with ``API->error`` holding the error type.
-
-Find an option in the linked list
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-GMT_Find_Option_ will return a pointer ``ptr`` to the first option in
-the linked list starting at ``list`` whose option character equals
-``option``. If not found we return NULL. While this is not necessarily
-an error we still set ``API->error`` accordingly. The prototype is
-
-.. _GMT_Find_Option:
-
- ::
-
- struct GMT_OPTION *GMT_Find_Option (void *API, char option,
- struct GMT_OPTION *list);
-
-If you need to look for multiple occurrences of a certain option you
-will need to call GMT_Find_Option_ again, passing the option
-following the previously found option as the ``list`` entry, i.e.,
-
- ::
-
- list = *ptr->next;
-
-Update an existing option in the list
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-GMT_Update_Option_ will replace the argument of ``current`` with the
-new argument ``arg`` and otherwise leave the option at its place in the
-list. The prototype is
-
-.. _GMT_Update_Option:
-
- ::
-
- int GMT_Update_Option (void *API, struct GMT_OPTION *current, const char *arg);
-
-An error will be reported if (a) ``current`` is NULL or (b) ``arg`` is
-NULL. The function returns 1 if there is an error, otherwise it returns 0 (``GMT_NOERROR``).
-
-Delete an existing option in the linked list
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-You may use GMT_Delete_Option_ to remove the ``current`` option from the linked
-``list``. The prototype is
-
-.. _GMT_Delete_Option:
-
- ::
-
- int GMT_Delete_Option (void *API, struct GMT_OPTION *current, struct GMT_OPTION **head);
-
-We return 1 if the option is not found in the list and set
-``API->error`` accordingly. **Note**: Only the first occurrence of the
-specified option will be deleted. If you need to delete all such options
-you will need to call this function in a loop until it returns a
-non-zero status.
-
-Specify a file via a linked option
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-To specify an input file name via an option, simply use < as the
-option (this is what GMT_Create_Options_ does when it finds filenames
-on the command line). Likewise, > can be used to explicitly
-indicate an output file. In order to append to an existing file, use
-). For example the following command would read from file.A and
-append to file.B:
-
- ::
-
- gmt convert - and ) as they are normally
-used for file redirection.
-
-Encode option arguments for external interfaces
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Developers writing interfaces between GMT and external platforms such
-as other languages (Python, Java, Julia, etc.) or tools (MATLAB, Octave,
-etc.) need to manipulate linked options in a special way. For instance,
-a GMT call in the MATLAB or Octave application might look like
-
-.. code-block:: none
-
- table = gmt('blockmean -R30W/30E/10S/10N -I2m', [x y z]);
- grid = gmt('surface -R -I2m -Lu', table, high_limit_grid);
- grid2 = gmt('grdmath ? LOG10 ? MUL', grid, grid);
-
-Most of the time our implicit rules will take care of the ordering. The
-rule says that all required input data items must be listed before any
-secondary input data items, and all primary output items must be listed
-on the left hand side before any secondary output items.
-There are three situations where the parsing will need further help;
-(1) Specifying the positions of memory arguments given to :doc:`gmtmath`,
-(2) specifying the positions of memory arguments given to :doc:`grdmath`,
-and (3) using -R? when passing a memory grid to the -R option (since just -R
-means use the previous region in the command history).
-Thus, in the :doc:`gmtmath` call we we needed to specify where
-the specific arguments should be placed among the operators.
-API developers will rely on GMT_Open_VirtualFile_ to convert the
-above syntax to correct options for GMT_Call_Module_.
-The prototype is
-
-.. _GMT_Encode_Options:
-
- ::
-
- struct GMT_RESOURCE *GMT_Encode_Options (void *API, const char *module, int n_in,
- struct GMT_OPTION **head, int *n_items);
-
-where ``module`` is the name of the module whose linked options are
-pointed to by ``*head``, ``n_in`` contains the number of *input*
-objects we have to connect (or -1 if not known) and we return an array
-that contains specific information for those options that
-(after processing) contain explicit memory references. The number of
-items in the array is returned via the ``n_items`` variable. The function
-returns NULL if there are errors and sets ``API->error`` to the corresponding
-error number. The GMT_RESOURCE structure is defined below:
-
-.. .. _struct-grid:
-
-.. code-block:: c
-
- struct GMT_RESOURCE { /* Information for passing external resources */
- enum GMT_enum_family family; /* GMT data family */
- enum GMT_enum_geometry geometry; /* One of the recognized GMT geometries */
- enum GMT_enum_std direction; /* Either GMT_IN or GMT_OUT */
- struct GMT_OPTION *option; /* Pointer to the corresponding module option */
- int object_ID; /* Object ID returned by GMT_Register_IO */
- int pos; /* Index into external object in|out arrays */
- int mode; /* 0 means primary i/o object, 1 means secondary */
- void *object; /* Pointer to the registered GMT object */
- };
-
-API developers will need to provide specific code to handle the registration of native
-structures in their language or application and to translate between the GMT resources
-and the corresponding native items. Developers should look at an existing and working
-interface such as the GMT/MATLAB toolbox to see the required steps. **Note**: The array
-of structures returned by GMT_Encode_Options_ should be freed by GMT_Free_.
-
-Expand an option with explicit memory references
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-When the external tool or application knows the name of the special file names
-used for memory references the developer should replace the place-holder ``?`` character
-in any option string with the actual reference name. This is accomplished by
-calling GMT_Expand_Option_, with prototype
-
-.. _GMT_Expand_Option:
-
- ::
-
- int GMT_Expand_Option (void *API, struct GMT_OPTION *option, const char *name);
-
-where ``option`` is the current option and ``name``
-is the special file name for the memory reference.
-
-The GMT FFT Interface
-=====================
-
-While the i/o options presented so far lets you easily read in a data
-table or grid and manipulate them, if you need to do the manipulation in the
-wavenumber domain then this chapter is for you. Here, we outline how to
-take the Fourier transform of such data, perform calculations in the
-wavenumber domain, and take the inverse transform before writing the
-results. To assist programmers we also distribute fully functioning
-demonstration programs that takes you through the steps we are about to
-discuss; these demo programs may be used as your starting point for
-further development and can be found in the gmt-custom repository.
-
-Presenting and parsing the FFT options
---------------------------------------
-
-Several GMT programs that use the FFTs present the same unified option and
-modifier sets to the user. The API makes these available as well. If
-your program needs to present the FFT option usage you can call
-
-.. _GMT_FFT_Option:
-
- ::
-
- unsigned int GMT_FFT_Option (void *API, char option, unsigned int dim,
- const char *string);
-
-Here, ``option`` is the unique character used for this particular
-program option (most GMT programs have standardized on using 'N' but
-you are free to choose whatever letter you want except existing GMT common
-options). The ``dim`` sets the dimension of the transform; currently you
-must choose 1 or 2, while ``string`` is a one-line message that
-states what the option does; you should tailor this to your program. If
-NULL then a generic message is placed instead.
-
-To parse the user's selection you call
-
-.. _GMT_FFT_Parse:
-
- ::
-
- void *GMT_FFT_Parse (void *API, char option, unsigned int dim, const char *arg);
-
-which accepts the user's string option via ``arg``; the other arguments
-are the same as those above. The function returns an opaque pointer to a
-structure with the chosen parameters.
-
-Initializing the FFT machinery
-------------------------------
-
-Before your can take any transforms you must initialize the FFT
-machinery. This process involves a series of preparatory steps that are
-conveniently performed for you by
-
-.. _GMT_FFT_Create:
-
- ::
-
- void *GMT_FFT_Create (void *API, void *X, unsigned int dim,
- unsigned int mode, void *F);
-
-Here, ``X`` is either your dataset or grid pointer, ``dim`` is the
-dimension of the transform (1 or 2 only), ``mode`` passes various flags to the setup, such as whether
-the data is real, imaginary, or complex, and ``F`` is the opaque pointer
-previously returned by GMT_FFT_Parse_. Depending on the option string you passed to
-GMT_FFT_Parse_, the data may have a constant level or a trend
-removed, mirror reflected and extended by various symmetries, padded and
-tapered to desired transform dimensions, and possibly
-temporary files are written out before the transform takes place. See the :doc:`grdfft`
-man page for a full explanation of the options presented by GMT_FFT_Option_.
-
-Taking the FFT
---------------
-
-Now that everything has been set up you can perform the transform with
-
-.. _GMT_FFT:
-
- ::
-
- void *GMT_FFT (void *API, void *X, int direction, unsigned int mode, void *K);
-
-which takes as ``direction`` either ``GMT_FFT_FWD`` or ``GMT_FFT_INV``. The
-``mode`` is used to specify if we pass a real (``GMT_FFT_REAL``) or complex
-(``GMT_FFT_COMPLEX``) data set, and ``K`` is the opaque pointer returned
-by GMT_FFT_Create_. The transform is performed in place and returned
-via ``X``. When done with your manipulations (below) you can call it
-again with the inverse direction to recover the corresponding space-domain
-version of your data. The FFT is fully normalized so that calling
-forward followed by inverse yields the original data set. The information
-passed via ``K`` determines if a 1-D or 2-D transform takes place; the
-key work is done via ``GMT_FFT_1D`` or ``GMT_FFT_2D``, as explained below.
-
-Taking the 1-D FFT
-------------------
-
-A lower-level 1-D FFT is also available via the API, i.e.,
-
-.. _GMT_FFT_1D:
-
- ::
-
- int GMT_FFT_1D (void *API, float *data, uint64_t n, int direction,
- unsigned int mode);
-
-which takes as ``direction`` either ``GMT_FFT_FWD`` or ``GMT_FFT_INV``. The
-``mode`` is used to specify if we pass a real (``GMT_FFT_REAL``) or complex
-(``GMT_FFT_COMPLEX``) data set, and ``data`` is the 1-D data array of length
-``n`` that we wish
-to transform. The transform is performed in place and returned
-via ``data``. When done with your manipulations (below) you can call it
-again with the inverse direction to recover the corresponding space-domain
-version of your data. The 1-D FFT is fully normalized so that calling
-forward followed by inverse yields the original data set.
-
-Taking the 2-D FFT
-------------------
-
-A lower-level 2-D FFT is also available via
-
-.. _GMT_FFT_2D:
-
- ::
-
- int GMT_FFT_2D (void *API, float *data, unsigned int n_columns,
- unsigned int n_rows, int direction, unsigned int mode);
-
-which takes as ``direction`` either ``GMT_FFT_FWD`` or ``GMT_FFT_INV``. The
-``mode`` is used to specify if we pass a real (``GMT_FFT_REAL``) or complex
-(``GMT_FFT_COMPLEX``) data set, and ``data`` is the 2-D data array in
-row-major format, with row length ``n_columns`` and column length ``n_rows``.
-The transform is performed in place and returned
-via ``data``. When done with your manipulations (below) you can call it
-again with the inverse direction to recover the corresponding space-domain
-version of your data. The 2-D FFT is fully normalized so that calling
-forward followed by inverse yields the original data set.
-
-Wavenumber calculations
------------------------
-
-As your data have been transformed to the wavenumber domain you may wish
-to operate on the various values as a function of wavenumber. We will
-show how this is done for datasets and grids separately. First, we
-present the function that returns an individual wavenumber:
-
-.. _GMT_FFT_Wavenumber:
-
- ::
-
- double GMT_FFT_Wavenumber (void *API, uint64_t k, unsigned int mode, void *K);
-
-where ``k`` is the index into the array or grid, ``mode`` specifies
-which wavenumber we want (it is not used for 1-D transform but for the
-2-D transform we can select either the x-wavenumber (0), the
-y-wavenumber (1), or the radial wavenumber (2)), and finally the opaque
-vector created by GMT_FFT_Create_.
-
-1-D FFT manipulation
-~~~~~~~~~~~~~~~~~~~~
-
-[To be added after gmtfft has been added as new module, probably in 5.4.]
-
-2-D FFT manipulation
-~~~~~~~~~~~~~~~~~~~~
-
-The number of complex pairs in the grid is given by the header's ``nm``
-variable, while ``size`` will be twice that value as it holds the number
-of components. To visit all the complex values and obtain the
-corresponding wavenumber we simply need to loop over ``size`` and call
-GMT_FFT_Wavenumber_. This code snippet multiples the complex grid by
-the radial wavenumber:
-
- ::
-
- uint64_t k;
- for (k = 0; k < Grid->header->size; k++) {
- wave = GMT_FFT_Wavenumber (API, k, 2, K);
- Grid->data[k] *= wave;
- }
-
-Alternatively, you may choose to be more specific about which components
-are real and imaginary (especially if they are to be treated
-differently), and set up the loop this way:
-
- ::
-
- uint64_t re, im;
- for (re = 0, im = 1; re < Grid->header->size; re += 2, im += 2) {
- wave = GMT_FFT_Wavenumber (API, re, 2, K);
- Grid->data[re] *= wave;
- Grid->data[im] *= 2.0 * wave;
- }
-
-Destroying the FFT machinery
-----------------------------
-
-When done you terminate the FFT machinery with
-
-.. _GMT_FFT_Destroy:
-
- ::
-
- double GMT_FFT_Destroy (void *API, void *K);
-
-which simply frees up the memory allocated by the FFT machinery with GMT_FFT_Create_.
-
-FORTRAN Support
-===============
-
-FORTRAN 90 developers who wish to use the GMT API may use the same
-API functions as discussed in Chapter 2. As we do not have much (i.e., any) experience
-with modern Fortran we are not sure to what extent you are able to access
-the members of the various structures, such as the :ref:`GMT_GRID ` structure. Thus,
-this part will depend on feedback and for the time being is to be considered
-preliminary and subject to change. We encourage you to take contact should you
-wish to use the API with your Fortran 90 programs.
-
-FORTRAN 77 Grid i/o
--------------------
-
-Because of a lack of structure pointers we can only provide a low level of
-support for Fortran 77. This API is limited to help you inquire, read and write
-GMT grids directly from Fortran 77.
-To inquire about the range of information in a grid, use
-
-.. _gmt_f77_readgrdinfo:
-
- ::
-
- int gmt_f77_readgrdinfo (unsigned int dim[], double limits[], double inc[],
- char *title, char *remark, const char *file)
-
-where ``dim`` returns the grid width, height, and registration, ``limits`` returns the min and max values for x, y, and z
-as three consecutive pairs, ``inc`` returns the x and y increments, while the ``title`` and ``remark``
-return the values of these strings. The ``file``
-argument is the name of the file we wish to inquire about. The function returns 0 unless there is an error.
-Note that you must declare your variables so that ``limits`` has at least 6 elements, ``inc`` has at least 2, and ``dim`` has at least 4.
-
-To actually read the grid, we use
-
-.. _gmt_f77_readgrd:
-
- ::
-
- int gmt_f77_readgrd (float *array, unsigned int dim[], double wesn[],
- double inc[], char *title, char *remark, const char *file)
-
-where ``array`` is the 1-D grid data array, ``dim`` returns the grid width, height, and registration,
-``limits`` returns the min and max values for x, y, and z, ``inc`` returns the x and y increments, and
-the ``title`` and ``remark`` return the values of the corresponding strings. The ``file``
-argument is the name of the file we wish to read from. The function returns 0 unless there is an error.
-Note on input, ``dim[2]`` can be set to 1, which means we will allocate the array for you; otherwise
-we assume space has already been secured. Also, if ``dim[3]`` is set to 1 we will in-place transpose
-the array from C-style row-major array order to Fortran column-major array order.
-
-Finally, to write a grid to file you can use
-
-.. _gmt_f77_writegrd:
-
- ::
-
- int gmt_f77_writegrd_(float *array, unsigned int dim[], double wesn[], double inc[],
- const char *title, const char *remark, const char *file)
-
-where ``array`` is the 1-D grid data array, ``dim`` specifies the grid width, height, and registration,
-``limits`` may be used to specify a subset (normally, just pass zeros), ``inc`` specifies the x and y increments,
-while the ``title`` and ``remark`` supply the values of these strings. The ``file``
-argument is the name of the file we wish to write to. The function returns 0 unless there is an error.
-If ``dim[3]`` is set to 1 we will in-place transpose
-the array from Fortran column-major array order to C-style row-major array order before writing. Note
-this means ``array`` will have been transposed when the function returns.
-
-External Interfaces
-===================
-
-Developers may want to access GMT modules from external programming environments, such as MATLAB,
-Octave, Julia, Python, R, IDL, etc., etc. These all face similar challenges and hence this section
-will speak in somewhat abstract terms. Specific language addressing the challenges for some of
-the above-mentioned environments will follow below.
-
-The C/C++ API for GMT makes it possible to call any of the ~100 core modules, the 40 or so supplemental
-modules, and any number of custom modules provided via shared libraries (e.g., the gsfml modules). Many
-of the external interfaces come equipped with methods to call C functions directly.
-The key challenges pertain to specifying the input to use in the module and to receive
-what is produced by the module.
-As we know from GMT command line usage, all GMT modules expect input to be given via input files (or stdin, except for sources like grids and images). Similarly, output will be written to a specified
-output file (or stdout if the data type supports it). Clearly, external interfaces
-could do the same thing. The problem is that most of the time we already will have the input data in
-memory and would prefer the output to be returned back to memory, thus avoiding using temporary files.
-Here, we will outline the general approach for using the GMT API. We will describe a relatively low-level approach
-to calling GMT modules. Once such an interface exists it is simpler to build a more flexible and user-friendly
-layer on top that can handle argument parsing in a form that makes the interface seem more of a natural
-extension of your external environment than a forced fit to GMT's command-line heritage.
-Before we describe the interface it is important to understand that the GMT modules, since the beginning
-or time, have done the i/o inside the modules. While these steps are helped by i/o library functions, the
-i/o activities all take place *inside* the modules. This means that external environments in which the desired
-input data already reside in memory and the desired results should be returned back to memory pose a
-trickier challenge. We will see the solution to this involves the concept of *virtual* files.
-
-.. figure:: /_images/GMT_API_use.*
- :width: 500 px
- :align: center
-
- GMT Modules can read and write information in may ways. The GMT command line modules
- can only access the methods in white, while all methods are available via the C API.
- External interfaces will preferentially want the methods in orange.
-
-Plain interface
----------------
-
-While the syntax of your external environment's language will dictate the details of the implementation, we will in general
-need to build a function (or class, or method) that allows you to issue a call like this:
-
-[*results*] = **gmt** (*module*, *options*, *inputs*)
-
-where *results* (i.e., objects returned back to memory) is optional and may be one or more items grouped
-together, depending on language syntax. If no output is required then no left-hand side
-assignment will be present. Likewise, *inputs* is optional and may be one or more comma-separated
-objects present in memory. In most cases, *options* will be required and this is a string with
-options very similar to the arguments given on the GMT command line. Finally, *module* is required since you
-must specify which one you want to call. The coding of the **gmt** method, class, or function above may be written entirely in
-C, partly in C and the external scripting language, or entirely in the scripting language, depending on
-restrictions on what needs to be done and where this is most easily accomplished.
-How this is accomplished may vary from environment to environment.
-
-.. figure:: /_images/GMT_API_flow.*
- :width: 500 px
- :align: center
-
- Data pass in and out of the **gmt** interface which may be written in the scripting language used
- by the external interface. The native data will need to be encapsulated by GMT containers and this
- step may be done by a C **parser** but could also be done by the **gmt** interface directly. Either
- of these communicate directly with the C functions in the GMT API.
-
-Data containers
----------------
-
-The external interface developer will need to create native data classes or structures that are capable of
-containing the information associated with the six GMT objects: data tables, grids, images, cubes, color palette tables,
-and PostScript documents. In other words, how your external environment will represent these
-data in memory. Some of these "containers" may already exist, while others may need to be designed. Most likely, you will end up with
-a set of six containers that can hold the various GMT data objects and related metadata. In addition, it may
-be convenient to also consider the two GMT helper objects MATRIX and VECTOR, which may be closer to the native
-representation of your data than, for instance, the native GMT_DATASET.
-
-Input from memory
------------------
-
-Whether input comes from memory or from external files, the call to a GMT module is the same: we have to specify
-*filenames* to provide the input data. Thus, the game is to provide *virtual* file names that represent our in-memory
-data. The process is relatively simple and may need to be done in a snippet of C
-code that can be called by a function written in your environments scripting language. The steps go like this:
-
-#. Create a GMT C container marked for input and copy or reference your data provided by
- your external environment into this container.
-#. Open a virtual file using this container to represent the input source.
-#. Insert this virtual file name in the appropriate location in the GMT option string. If the
- module imports data from *stdin* then we can use the hidden option -filename.
-
-When the GMT module is run it will know how to make the connections between the memory allocated by the
-module and the virtual file names stored inside the C API. Once the module call has completed you can access the
-results in the external environment by using GMT_Read_VirtualFile_ with the virtual filename you created earlier. This will return a GMT C container with the results, and
-you can now populate you external data containers with data produced by the GMT module.
-
-The magic of knowing
---------------------
-
-External developers have access to the two extra API functions GMT_Encode_Options_ and GMT_Expand_Option_.
-Your **gmt** will need to call GMT_Encode_Options_ to obtain information about what the selected
-module expects, what its options are, which were selected, and what data types are expected. It may
-possibly modify the options, such as adding the filename "?" to options that set
-*required* input and output files and returns an array of structures with specific information about
-all inputs and outputs. If sources and destinations were missing from your *options* string it is taken
-to mean that you want to associate these sources and destinations
-with memory locations rather than actual files. The second function GMT_Expand_Option_ can then then
-used to replace these place-holder names with the virtual filenames you created earlier.
-
-The MATLAB interface
-~~~~~~~~~~~~~~~~~~~~
-
-We have built a MATLAB/Octave interface to GMT called the toolbox. It was our first attempt to use the C API from an
-external environment and its development influenced
-how we designed the final GMT C API. MATLAB represents most data as matrices but there are also structures that
-can hold many different items, including several matrices and text strings. Thus, we designed several native mex structures
-that represent the six GMT objects. The main **gmt** function available in MATLAB derives from a small MATLAB script
-(gmt.m) which handles basic argument testing and then passes the arguments to our C function gmtmex.c.
-Most of the high-level parsing of options and arguments is done in this function, but we also rely on
-a C library (gmtmex_parser.c) that hides the details of the implementation. It is this library that
-does most of the work in translating between the GMT and MATLAB object layouts. Knowing what types are
-represented by the different sources and destinations is provided by the array of structures returned
-by GMT_Encode_Options_.
-
-The Julia interface
-~~~~~~~~~~~~~~~~~~~
-
-Unlike the MATLAB interface, the Julia interface GMT.jl is written entirely in the Julia language.
-
-The Python interface
-~~~~~~~~~~~~~~~~~~~~
-
-Unlike the MATLAB interface, the Python interface PyGMT is written entirely in the Python language.
-
-Appendix A: GMT resources
--------------------------
-
-We earlier introduced the six standard GMT resources (dataset, grid, image, cube, color palette table, PostScript)
-as well as the user vector and matrix. Here are the complete definitions of these structures, including
-all variables accessible via the structures.
-
-Data set
-~~~~~~~~
-
-Each data set is represented by a :ref:`GMT_DATASET ` that consists of one or more data
-tables represented by a :ref:`GMT_DATATABLE `, and each table consists of one or more
-segments represented by a :ref:`GMT_DATASEGMENT `, and each segment contains one or
-more rows of a fixed number of columns.
-
-.. _struct-dataset:
-
-.. code-block:: c
-
- struct GMT_DATASET { /* Single container for an array of GMT tables (files) */
- /* Variables we document for the API: */
- uint64_t n_tables; /* Total number of tables (files) contained */
- uint64_t n_columns; /* Number of data columns */
- uint64_t n_segments; /* Total number of segments across all tables */
- uint64_t n_records; /* Total number of data records across all tables */
- double *min; /* Minimum coordinate for each column */
- double *max; /* Maximum coordinate for each column */
- struct GMT_DATATABLE **table; /* Pointer to array of tables */
- unsigned int type; /* The data record type of this dataset */
- unsigned int geometry; /* The geometry of this dataset */
- const char *ProjRefPROJ4; /* To store a referencing system string in PROJ.4 format */
- const char *ProjRefWKT; /* To store a referencing system string in WKT format */
- int ProjRefEPSG; /* To store a referencing system EPSG code */
- void *hidden; /* ---- Variables "hidden" from the API ---- */
- };
-
-Here is the full definition of the ``GMT_DATATABLE`` structure:
-
-.. _struct-datatable:
-
-.. code-block:: c
-
- struct GMT_DATATABLE { /* To hold an array of line segment structures and header information in one container */
- /* Variables we document for the API: */
- unsigned int n_headers; /* Number of file header records (0 if no header) */
- uint64_t n_columns; /* Number of columns (fields) in each record */
- uint64_t n_segments; /* Number of segments in the array */
- uint64_t n_records; /* Total number of data records across all segments */
- double *min; /* Minimum coordinate for each column */
- double *max; /* Maximum coordinate for each column */
- char **header; /* Array with all file header records, if any) */
- struct GMT_DATASEGMENT **segment; /* Pointer to array of segments */
- void *hidden; /* ---- Variables "hidden" from the API ---- */
- };
-
-Here is the full definition of the ``GMT_DATASEGMENT`` structure:
-
-.. _struct-datasegment:
-
-.. code-block:: c
-
- struct GMT_DATASEGMENT { /* For holding segment lines in memory */
- /* Variables we document for the API: */
- uint64_t n_rows; /* Number of points in this segment */
- uint64_t n_columns; /* Number of fields in each record (>= 2) */
- double *min; /* Minimum coordinate for each column */
- double *max; /* Maximum coordinate for each column */
- double **data; /* Data x,y, and possibly other columns */
- char **text; /* trailing text strings beyond the data */
- char *label; /* Label string (if applicable) */
- char *header; /* Segment header (if applicable) */
- void *hidden; /* ---- Variables "hidden" from the API ---- */
- };
-
-GMT grid
-~~~~~~~~
-
-A grid is represented by a :ref:`GMT_GRID ` that consists of a header structure
-represented by a :ref:`GMT_GRID_HEADER ` and an float array ``data`` that
-contains the grid values.
-
-.. _struct-grid:
-
-.. code-block:: c
-
- struct GMT_GRID { /* To hold a GMT float grid and its header in one container */
- struct GMT_GRID_HEADER *header; /* Pointer to full GMT header for the grid */
- float *data; /* Pointer to the float grid */
- double *x, *y; /* Vector of coordinates */
- void *hidden; /* ---- Variables "hidden" from the API ---- */
- };
-
-The full definition of the ``GMT_GRID_HEADER`` structure. Most of these members are only used internally:
-
-.. _struct-gridheader:
-
-.. code-block:: c
-
- struct GMT_GRID_HEADER {
- /* Variables we document for the API:
- They are copied verbatim to the native grid header and must be 4-byte unsigned ints. */
- uint32_t n_columns; /* Number of columns */
- uint32_t n_rows; /* Number of rows */
- uint32_t registration; /* GMT_GRID_NODE_REG (0) or GMT_GRID_PIXEL_REG (1) */
-
- /* == The types of the following 12 elements must not be changed.
- == They are also copied verbatim to the native grid header. */
- double wesn[4]; /* Min/max x and y coordinates */
- double z_min; /* Minimum z value */
- double z_max; /* Maximum z value */
- double inc[2]; /* x and y increment */
- double z_scale_factor; /* grd values must be multiplied by this */
- double z_add_offset; /* After scaling, add this */
- char x_units[GMT_GRID_UNIT_LEN80]; /* units in x-direction */
- char y_units[GMT_GRID_UNIT_LEN80]; /* units in y-direction */
- char z_units[GMT_GRID_UNIT_LEN80]; /* grid value units */
- char title[GMT_GRID_TITLE_LEN80]; /* name of data set */
- char command[GMT_GRID_COMMAND_LEN320];/* name of generating command */
- char remark[GMT_GRID_REMARK_LEN160]; /* comments re this data set */
- /* == End of "untouchable" header. */
-
- /* This section is flexible. It is not copied to any grid header
- or stored in any file. It is considered private */
- unsigned int type; /* Grid format */
- unsigned int bits; /* Bits per value (e.g., 32 for ints/floats; 8 for bytes) */
- unsigned int complex_mode; /* 0 = normal, GMT_GRID_IS_COMPLEX_REAL = real part of complex
- grid, GMT_GRID_IS_COMPLEX_IMAG = imag part of complex grid */
- unsigned int mx, my; /* Actual dimensions of the grid in memory, allowing for the padding */
- size_t nm; /* Number of data items in this grid (n_columns * n_rows) [padding is excluded] */
- size_t size; /* Actual number of items (not bytes) required to hold this grid (= mx * my), per band */
- size_t n_alloc; /* Bytes allocated for this grid */
- unsigned int n_bands; /* Number of bands [1]. Used with IMAGE containers and macros to get ij index from row,col, band */
- unsigned int pad[4]; /* Padding on west, east, south, north sides [2,2,2,2] */
- const char *ProjRefPROJ4; /* To store a referencing system string in PROJ.4 format */
- const char *ProjRefWKT; /* To store a referencing system string in WKT format */
- float nan_value; /* Missing value as stored in grid file */
- double xy_off; /* 0.0 (registration == GMT_GRID_NODE_REG) or 0.5 ( == GMT_GRID_PIXEL_REG) */
- void *hidden; /* ---- Variables "hidden" from the API ---- */
- };
-
-GMT image
-~~~~~~~~~
-
-An image is similar to a grid except it may have more than one layer (i.e., band).
-It is represented by a :ref:`GMT_IMAGE ` structure that consists of the
-:ref:`GMT_GRID_HEADER ` structure and an char array ``data`` that
-contains the image values. The type of the array is determined by the value of ``type``.
-**Note**: The header *size* value reflects number of nodes per band, so the actual memory
-allocated will be *size * n_bands*.
-
-.. _struct-image:
-
-.. code-block:: c
-
- struct GMT_IMAGE {
- enum GMT_enum_type type; /* Data type, e.g. GMT_FLOAT */
- int *colormap; /* Array with color lookup values */
- int n_indexed_colors; /* Number of colors in a color-mapped image */
- struct GMT_GRID_HEADER *header; /* Pointer to full GMT header for the image */
- unsigned char *data; /* Pointer to actual image */
- unsigned char *alpha; /* Pointer to an optional transparency layer */
- const char *color_interp; /* Color interpretation name */
- double *x, *y; /* Vector of coordinates */
- void *hidden; /* ---- Variables "hidden" from the API ---- */
- };
-
-GMT cube
-~~~~~~~~
-
-A 3-D cube is similar to a grid but typically has more than one layer.
-It is represented by a :ref:`GMT_CUBE ` structure that consists of the
-:ref:`GMT_GRID_HEADER ` structure and an float array ``data`` that
-contains the cube values.
-**Note**: The header *size* value reflects number of nodes per layer, so the actual memory
-allocated will be *size * n_bands*, where the latter is one of the parameters in the header.
-
-.. _struct-cube:
-
-.. code-block:: c
-
- struct GMT_CUBE {
- struct GMT_GRID_HEADER *header; /* The full GMT header for the grid */
- float *data; /* Pointer to the float 3-D array */
- unsigned int mode; /* Indicates data originated as a list of 2-D grids rather than a cube */
- double z_range[2]; /* Minimum/max z values (complements header->wesn) */
- double z_inc; /* z increment (complements header->inc) (0 if variable z spacing) */
- double *x, *y, *z; /* Arrays of x,y,z coordinates */
- char name[GMT_GRID_UNIT_LEN80]; /* Name of variable, if read from file (empty if default) */
- char units[GMT_GRID_UNIT_LEN80]; /* Units in 3rd direction (complements x_units, y_units, z_units) */
- void *hidden; /* ---- Variables "hidden" from the API ---- */
- };
-
-CPT palette table
-~~~~~~~~~~~~~~~~~
-
-A CPT is represented by a :ref:`GMT_PALETTE ` structure that contains several
-items, such as a :ref:`GMT_LUT ` structure ``data`` that
-contains the color information per interval. The background, foreground and Nan-color values have
-colors specified by the :ref:`GMT_BFN ` array structure ``bfn``. As each actual
-color may be specified in different ways, including as an image, each color slice is represented by
-the :ref:`GMT_FILL ` structure.
-
-.. _struct-palette:
-
-.. code-block:: c
-
- struct GMT_PALETTE { /* Holds all pen, color, and fill-related parameters */
- /* Variables we document for the API: */
- struct GMT_LUT *data; /* CPT lookup data read by GMT_read_cpt */
- struct GMT_BFN bfn[3]; /* Structures with back/fore/nan fills */
- unsigned int n_headers; /* Number of CPT header records (0 if no header) */
- unsigned int n_colors; /* Number of colors in CPT lookup table */
- unsigned int mode; /* Flags controlling use of BFN colors */
- unsigned int model; /* RGB, HSV, CMYK */
- unsigned int is_wrapping; /* true if a cyclic colortable */
- unsigned int is_gray; /* true if only grayshades are needed */
- unsigned int is_bw; /* true if only black and white are needed */
- unsigned int is_continuous; /* true if continuous color tables have been given */
- unsigned int has_pattern; /* true if CPT contains any patterns */
- unsigned int has_hinge; /* true if CPT has a hinge */
- unsigned int has_range; /* true if CPT has a natural range */
- unsigned int categorical; /* true if CPT applies to categorical data */
- double minmax[2]; /* The default range, if has_range is true */
- double hinge; /* The default hinge, if is_wrapping is true */
- double wrap_length; /* The default period, if has_hinge is true */
- char **header; /* Array with all CPT header records, if any) */
- void *hidden; /* ---- Variables "hidden" from the API ---- */
- };
-
-The full definition of the ``GMT_LUT`` structure.
-
-.. _struct-lut:
-
-.. code-block:: c
-
- struct GMT_LUT { /* For back-, fore-, and nan-colors */
- double z_low, z_high, i_dz;
- double rgb_low[4], rgb_high[4], rgb_diff[4];
- double hsv_low[4], hsv_high[4], hsv_diff[4];
- unsigned int annot; /* 1 for Lower, 2 for Upper, 3 for Both */
- unsigned int skip; /* true means skip this slice */
- struct GMT_FILL *fill; /* For patterns instead of color */
- char *label; /* For non-number labels */
- };
-
-The full definition of the ``GMT_BFN`` structure:
-
-.. _struct-bnf:
-
-.. code-block:: c
-
- struct GMT_BFN { /* For back-, fore-, and nan-colors */
- double rgb[4]; /* Red, green, blue, and alpha */
- double hsv[4]; /* Hue, saturation, value, alpha */
- unsigned int skip; /* true means skip this slice */
- struct GMT_FILL *fill; /* For patterns instead of color */
- };
-
-The full definition of the ``GMT_FILL`` structure. **Note**: Not part of the GMT API:
-
-.. _struct-fill:
-
-.. code-block:: c
-
- struct GMT_FILL { /*! Holds fill attributes */
- double rgb[4]; /* Chosen color if no pattern + Transparency 0-1 [0 = opaque] */
- double f_rgb[4], b_rgb[4]; /* Colors applied to unset and set bits in 1-bit image */
- bool use_pattern; /* true if pattern rather than rgb is set */
- int pattern_no; /* Number of a predefined pattern, or -1 if not set */
- unsigned int dpi; /* Desired dpi of image building-block if use_pattern is true */
- char pattern[GMT_BUFSIZ];/* Full filename of user-defined raster pattern */
- };
-
-
-PostScript text
-~~~~~~~~~~~~~~~
-
-Bulk PostScript is represented by a :ref:`GMT_POSTSCRIPT ` structure that contains
-``data`` that points to the text array containing ``n_bytes`` characters of raw PostScript code. The
-``mode`` parameter reflects the status of the PostScript document.
-
-.. _struct-postscript:
-
-.. code-block:: c
-
- struct GMT_POSTSCRIPT { /* Single container for a chunk of PostScript code */
- /* Variables we document for the API: */
- unsigned int n_headers; /* Number of PostScript header records (0 if no header) */
- size_t n_bytes; /* Length of data array so far */
- unsigned int mode; /* Bit-flag for header (1) and trailer (2) */
- char *data; /* Pointer to PostScript code */
- char **header; /* Array with all PostScript header records, if any) */
- void *hidden; /* ---- Variables "hidden" from the API ---- */
- };
-
-Matrix
-~~~~~~
-
-User matrices are represented by a :ref:`GMT_MATRIX ` structure that contains
-``data`` that points to an array of size ``n_columns`` by ``n_rows``. The
-``type`` indicates the memory type of the matrix, which is represented
-by the :ref:`GMT_UNIVECTOR ` union.
-
-.. _struct-matrix:
-
-.. code-block:: c
-
- struct GMT_MATRIX {
- uint64_t n_rows; /* Number of rows in the matrix */
- uint64_t n_columns; /* Number of columns in the matrix */
- uint64_t n_layers; /* Number of layers in a 3-D matrix */
- enum GMT_enum_fmt shape; /* 0 = C (rows) and 1 = Fortran (cols) */
- enum GMT_enum_reg registration; /* 0 for gridline and 1 for pixel registration */
- size_t dim; /* Allocated length of longest C or Fortran dim */
- size_t size; /* Byte length of data */
- enum GMT_enum_type type; /* Data type, e.g. GMT_FLOAT */
- double range[6]; /* Contains xmin/xmax/ymin/ymax[/zmin/zmax] */
- union GMT_UNIVECTOR data; /* Union with pointer to actual matrix of the chosen type */
- char **text; /* Pointer to optional array of strings [NULL] */
- char **header; /* Array with all Vector header records, if any) */
- char command[GMT_GRID_COMMAND_LEN320]; /* name of generating command */
- char remark[GMT_GRID_REMARK_LEN160]; /* comments re this data set */
- const char *ProjRefPROJ4; /* To store a referencing system string in PROJ.4 format */
- const char *ProjRefWKT; /* To store a referencing system string in WKT format */
- int ProjRefEPSG; /* To store a referencing system EPSG code */
- void *hidden; /* ---- Variables "hidden" from the API ---- */
- };
-
-Vectors
-~~~~~~~
-
-User vectors are represented by a :ref:`GMT_VECTOR ` structure that contains
-``data`` that points to an array of ``n_columns`` individual vectors. The
-``type`` array indicates the memory type of each vector. Each vector is represented
-by the :ref:`GMT_UNIVECTOR ` union which can accommodate any data type.
-
-.. _struct-vector:
-
-.. code-block:: c
-
- struct GMT_VECTOR {
- uint64_t n_columns; /* Number of vectors */
- uint64_t n_rows; /* Number of rows in each vector */
- enum GMT_enum_reg registration; /* 0 for gridline and 1 for pixel registration */
- enum GMT_enum_type *type; /* Array with data type for each vector */
- union GMT_UNIVECTOR *data; /* Array with unions for each column */
- double range[2]; /* The min and max limits on t-range (or 0,0) */
- char **text; /* Pointer to optional array of strings [NULL] */
- char **header; /* Array with all Vector header records, if any) */
- char command[GMT_GRID_COMMAND_LEN320]; /* name of generating command */
- char remark[GMT_GRID_REMARK_LEN160]; /* comments re this data set */
- const char *ProjRefPROJ4; /* To store a referencing system string in PROJ.4 format */
- const char *ProjRefWKT; /* To store a referencing system string in WKT format */
- int ProjRefEPSG; /* To store a referencing system EPSG code */
- void *hidden; /* ---- Variables "hidden" from the API ---- */
- };
-
-The full definition of the ``GMT_UNIVECTOR`` union that holds a pointer to any array or matrix type:
-
-.. _struct-univector:
-
-.. code-block:: c
-
- union GMT_UNIVECTOR {
- uint8_t *uc1; /* Pointer for unsigned 1-byte array */
- int8_t *sc1; /* Pointer for signed 1-byte array */
- uint16_t *ui2; /* Pointer for unsigned 2-byte array */
- int16_t *si2; /* Pointer for signed 2-byte array */
- uint32_t *ui4; /* Pointer for unsigned 4-byte array */
- int32_t *si4; /* Pointer for signed 4-byte array */
- uint64_t *ui8; /* Pointer for unsigned 8-byte array */
- int64_t *si8; /* Pointer for signed 8-byte array */
- float *f4; /* Pointer for float array */
- double *f8; /* Pointer for double array */
- };
-
-
-Appendix B: GMT constants
--------------------------
-
-To increase readability we have encoded many simple integer constants as named
-enum. These are listed in the tables below and used as flags to various API
-functions.
-
-.. _tbl-types:
-
- +--------------+------------------------------------------+
- | constant | description |
- +==============+==========================================+
- | GMT_CHAR | int8_t, 1-byte signed integer type |
- +--------------+------------------------------------------+
- | GMT_UCHAR | int8_t, 1-byte unsigned integer type |
- +--------------+------------------------------------------+
- | GMT_SHORT | int16_t, 2-byte signed integer type |
- +--------------+------------------------------------------+
- | GMT_USHORT | uint16_t, 2-byte unsigned integer type |
- +--------------+------------------------------------------+
- | GMT_INT | int32_t, 4-byte signed integer type |
- +--------------+------------------------------------------+
- | GMT_UINT | uint32_t, 4-byte unsigned integer type |
- +--------------+------------------------------------------+
- | GMT_LONG | int64_t, 8-byte signed integer type |
- +--------------+------------------------------------------+
- | GMT_ULONG | uint64_t, 8-byte unsigned integer type |
- +--------------+------------------------------------------+
- | GMT_FLOAT | 4-byte data float type |
- +--------------+------------------------------------------+
- | GMT_DOUBLE | 8-byte data float type |
- +--------------+------------------------------------------+
-
- The known data types in the GMT API.
-
-When GMT_Open_VirtualFile_ is used with a NULL pointer to create a
-virtual file for returning results from a GMT module *and* you are
-using a :ref:`GMT_MATRIX ` or :ref:`GMT_VECTOR `
-as your container, you may prescribe
-the data type used for the underlying arrays. The constants below
-can be added to the ``direction`` argument in order to change the
-default data types [float for matrix and double for vector].
-
-.. _tbl-viatypes:
-
- +------------------+------------------------------------------+
- | constant | description |
- +==================+==========================================+
- | GMT_VIA_CHAR | Select GMT_CHAR as array type |
- +------------------+------------------------------------------+
- | GMT_VIA_UCHAR | Select GMT_UCHAR as array type |
- +------------------+------------------------------------------+
- | GMT_VIA_SHORT | Select GMT_SHORT as array type |
- +------------------+------------------------------------------+
- | GMT_VIA_USHORT | Select GMT_USHORT as array type |
- +------------------+------------------------------------------+
- | GMT_VIA_INT | Select GMT_INT as array type |
- +------------------+------------------------------------------+
- | GMT_VIA_UINT | Select GMT_UINT as array type |
- +------------------+------------------------------------------+
- | GMT_VIA_LONG | Select GMT_LONG as array type |
- +------------------+------------------------------------------+
- | GMT_VIA_ULONG | Select GMT_ULONG as array type |
- +------------------+------------------------------------------+
- | GMT_VIA_FLOAT | Select GMT_FLOAT as array type |
- +------------------+------------------------------------------+
- | GMT_VIA_DOUBLE | Select GMT_DOUBLE as array type |
- +------------------+------------------------------------------+
-
- Flags to select the type of arrays used in output GMT_MATRIX or GMT_VECTOR.
-
-Footnotes
----------
-
-.. [1]
- or via a very confusing and ever-changing myriad of low-level library
- functions for bold programmers.
-
-.. [2]
- Currently, C/C++, FORTRAN, MATLAB and Julia are being tested.
-
-.. [3]
- This may change in later releases.
-
-.. [4]
- However, there is no thread-support yet, so you will need to manage your
- own threads.
-
-.. ------------------------------------- Examples code -------------------
-
-.. |ex_resource_init| raw:: html
-
- Example
-
-
-
X
-
Resource initialization example
-
-
-
-
diff --git a/6.2.0rc1/_sources/basemap.rst.txt b/6.2.0rc1/_sources/basemap.rst.txt
deleted file mode 100644
index 19ffa106773..00000000000
--- a/6.2.0rc1/_sources/basemap.rst.txt
+++ /dev/null
@@ -1,419 +0,0 @@
-.. index:: ! basemap
-.. include:: module_core_purpose.rst_
-
-*******
-basemap
-*******
-
-|basemap_purpose|
-
-Synopsis
---------
-
-.. include:: common_SYN_OPTs.rst_
-
-**gmt basemap** |-J|\ *parameters*
-|SYN_OPT-Rz|
-[ |-A|\ [*file*] ]
-[ |SYN_OPT-B| ]
-[ |-F|\ *box* ]
-[ |-J|\ **z**\|\ **Z**\ *parameters* ]
-[ |-L|\ *scalebar* ]
-[ |-T|\ *rose* ]
-[ |-T|\ *mag_rose* ]
-[ |SYN_OPT-U| ]
-[ |SYN_OPT-V| ]
-[ |SYN_OPT-X| ]
-[ |SYN_OPT-Y| ]
-[ |SYN_OPT-f| ]
-[ |SYN_OPT-p| ]
-[ |SYN_OPT-t| ]
-[ |SYN_OPT--| ]
-
-.. include:: basemap_common.rst_
-
-Examples
---------
-
-.. include:: oneliner_info.rst_
-
-The following section illustrates the use of the options by giving some
-examples for the available map projections. Note how scales may be given
-in several different ways depending on the projection. Also note the use
-of upper case letters to specify map width instead of map scale.
-
-Non-geographical Projections
-----------------------------
-
-Linear x-y plot
-~~~~~~~~~~~~~~~
-
-To make a linear x/y frame with all axes, but with only left and bottom
-axes annotated, using xscale = yscale = 1cm per unit, ticking every 1 unit and
-annotating every 2, and using xlabel = "Distance" and ylabel = "No of samples", use
-
- ::
-
- gmt begin linear
- gmt basemap -R0/9/0/5 -Jx1c -Bf1a2 -Bx+lDistance -By+l"No of samples" -BWeSn
- gmt end show
-
-As mentioned above, such simple modern mode script can take advantage of the one-liner
-format. We repeat the same example using the one-liner format and then only show this
-format for the remaining examples:
-
- ::
-
- gmt basemap -R0/9/0/5 -Jx1c -Bf1a2 -Bx+lDistance -By+l"No of samples" -BWeSn -pdf linear
-
-Log-log plot
-~~~~~~~~~~~~
-
-To make a log-log frame with only the left and bottom axes, where the
-x-axis is 25 cm and annotated every 1-2-5 and the y-axis is 15 cm and
-annotated every power of 10 but has tick-marks every 0.1, run
-
- ::
-
- gmt basemap -R1/10000/1e20/1e25 -JX25cl/15cl -Bx2+lWavelength -Bya1pf3+lPower -BWS -pdf loglog
-
-Power axes
-~~~~~~~~~~
-
-To design an axis system to be used for a depth-sqrt(age) plot with
-depth positive down, ticked and annotated every 500m, and ages (in millions of years) annotated
-at 1 My, 4 My, 9 My etc., use
-
- ::
-
- gmt basemap -R0/100/0/5000 -Jx1cp0.5/-0.001c -Bx1p+l"Crustal age" -By500+lDepth -pdf power
-
-Polar (theta,r) plot
-~~~~~~~~~~~~~~~~~~~~
-
-For a base map for use with polar coordinates, where the radius from 0
-to 1000 should correspond to 3 inch and with gridlines and ticks intervals
-automatically determined, use
-
- ::
-
- gmt basemap -R0/360/0/1000 -JP6i -Bafg -pdf polar
-
-Cylindrical Map Projections
----------------------------
-
-Cassini
-~~~~~~~
-
-A 10-cm-wide basemap using the Cassini projection may be obtained by
-
- ::
-
- gmt basemap -R20/50/20/35 -JC35/28/10c -Bafg -B+tCassini -pdf cassini
-
-Mercator [conformal]
-~~~~~~~~~~~~~~~~~~~~
-
-A Mercator map with scale 0.025 inch/degree along equator, and showing
-the length of 5000 km along the equator (centered on 1/1 inch), may be
-plotted as
-
- ::
-
- gmt basemap -R90/180/-50/50 -Jm0.025i -Bafg -B+tMercator -Lx1i/1i+c0+w5000k -pdf mercator
-
-Miller
-~~~~~~
-
-A global Miller cylindrical map with scale 1:200,000,000 may be plotted as
-
- ::
-
- gmt basemap -Rg -Jj180/1:200000000 -Bafg -B+tMiller -pdf miller
-
-Oblique Mercator [conformal]
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To create a page-size global oblique Mercator basemap for a pole at
-(90,30) with gridlines every 30 degrees, run
-
- ::
-
- gmt basemap -R0/360/-70/70 -Joc0/0/90/30/0.064cd -B30g30 -B+t"Oblique Mercator" -pdf oblmerc
-
-Transverse Mercator [conformal]
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-A regular Transverse Mercator basemap for some region may look like
-
- ::
-
- gmt basemap -R69:30/71:45/-17/-15:15 -Jt70/1:1000000 -Bafg -B+t"Survey area" -pdf transmerc
-
-Equidistant Cylindrical Projection
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-This projection only needs the central meridian and scale. A 25 cm wide
-global basemap centered on the 130E meridian is made by
-
- ::
-
- gmt basemap -R-50/310/-90/90 -JQ130/25c -Bafg -B+t"Equidistant Cylindrical" -pdf cyl_eqdist
-
-Universal Transverse Mercator [conformal]
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To use this projection you must know the UTM zone number, which defines
-the central meridian. A UTM basemap for Indo-China can be plotted as
-
- ::
-
- gmt basemap -R95/5/108/20r -Ju46/1:10000000 -Bafg -B+tUTM -pdf utm
-
-Cylindrical Equal-Area
-~~~~~~~~~~~~~~~~~~~~~~
-
-First select which of the cylindrical equal-area projections you want by
-deciding on the standard parallel. Here we will use 45 degrees which
-gives the Gall projection. A 9 inch wide global basemap centered
-on the Pacific is made by
-
- ::
-
- gmt basemap -Rg -JY180/45/9i -Bafg -B+tGall -pdf gall
-
-Conic Map Projections
----------------------
-
-Albers [equal-area]
-~~~~~~~~~~~~~~~~~~~
-
-A basemap for middle Europe may be created by
-
- ::
-
- gmt basemap -R0/90/25/55 -Jb45/20/32/45/0.25c -Bafg -B+t"Albers Equal-area" -pdf albers
-
-Lambert [conformal]
-~~~~~~~~~~~~~~~~~~~
-
-Another basemap for middle Europe may be created by
-
- ::
-
- gmt basemap -R0/90/25/55 -Jl45/20/32/45/0.1i -Bafg -B+t"Lambert Conformal Conic" -pdf lambertc
-
-Conic Equidistant
-~~~~~~~~~~~~~~~~~
-
-Yet another basemap of width 6 inch for middle Europe may be created by
-
- ::
-
- gmt basemap -R0/90/25/55 -JD45/20/32/45/6i -Bafg -B+t"Equidistant conic" -pdf econic
-
-Polyconic
-~~~~~~~~~
-
-A basemap for north America may be created by
-
- ::
-
- gmt basemap -R-180/-20/0/90 -JPoly/4i -Bafg -B+tPolyconic -pdf polyconic
-
-Azimuthal Map Projections
--------------------------
-
-Lambert [equal-area]
-~~~~~~~~~~~~~~~~~~~~
-
-A 15-cm-wide global view of the world from the vantage point -80/-30
-will give the following basemap:
-
- ::
-
- gmt basemap -Rg -JA-80/-30/15c -Bafg -B+t"Lambert Azimuthal" -pdf lamberta
-
-Follow the instructions for stereographic projection if you want to
-impose rectangular boundaries on the azimuthal equal-area map but
-substitute |-J|\ **a** for |-J|\ **s**.
-
-Azimuthal Equidistant
-~~~~~~~~~~~~~~~~~~~~~
-
-A 15-cm-wide global map in which distances from the center (here 125/10)
-to any point is true can be obtained by:
-
- ::
-
- gmt basemap -Rg -JE125/10/15c -Bafg -B+tEquidistant -pdf equi
-
-Gnomonic
-~~~~~~~~
-
-A view of the world from the vantage point -100/40 out to a horizon of
-60 degrees from the center can be made using the Gnomonic projection:
-
- ::
-
- gmt basemap -Rg -JF-100/40/60/6i -Bafg -B+tGnomonic -pdf gnomonic
-
-Orthographic
-~~~~~~~~~~~~
-
-A global perspective (from infinite distance) view of the world from the
-vantage point 125/10 will give the following 6-inch-wide basemap:
-
- ::
-
- gmt basemap -Rg -JG125/10/6i -Bafg -B+tOrthographic -pdf ortho
-
-General Perspective
-~~~~~~~~~~~~~~~~~~~
-
-The |-J|\ **G** option can be used in a more generalized form, specifying
-altitude above the surface, width and height of the view point, and
-twist and tilt. A view from 160 km above -74/41.5 with a tilt of 55 and
-azimuth of 210 degrees, and limiting the viewpoint to 30 degrees width
-and height will product a 6-inch-wide basemap:
-
- ::
-
- gmt basemap -Rg -JG-74/41.5/160/210/55/30/30/6i -Bafg -B+t"General Perspective" -pdf genper
-
-Stereographic [conformal]
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-To make a polar stereographic projection basemap with radius = 12 cm to
--60 degree latitude, with plot title "Salinity measurements", using 5
-degrees annotation/tick interval and 1 degree gridlines, run
-
- ::
-
- gmt basemap -R-45/45/-90/-60 -Js0/-90/12c/-60 -B5g1 -B+t"Salinity measurements" -pdf stereo1
-
-To make a 12-cm-wide stereographic basemap for Australia from an
-arbitrary view point (not the poles), and use a rectangular boundary, we
-must give the pole for the new projection and use the |-R| option to
-indicate the lower left and upper right corners (in lon/lat) that will
-define our rectangle. We choose a pole at 130/-30 and use 100/-45 and
-160/-5 as our corners. The command becomes
-
- ::
-
- gmt basemap -R100/-45/160/-5r -JS130/-30/12c -Bafg -B+t"General Stereographic View" -pdf stereo2
-
-Miscellaneous Map Projections
------------------------------
-
-Hammer [equal-area]
-~~~~~~~~~~~~~~~~~~~
-
-The Hammer projection is mostly used for global maps and thus the
-spherical form is used. To get a world map centered on Greenwich at a
-scale of 1:200000000, use
-
- ::
-
- gmt basemap -Rd -Jh0/1:200000000 -Bafg -B+tHammer -pdf hammer
-
-Sinusoidal [equal-area]
-~~~~~~~~~~~~~~~~~~~~~~~
-
-To make a sinusoidal world map centered on Greenwich, with a scale along
-the equator of 0.02 inch/degree, use
-
- ::
-
- gmt basemap -Rd -Ji0/0.02i -Bafg -B+tSinusoidal -pdf sinus1
-
-To make an interrupted sinusoidal world map with breaks at 160W, 20W,
-and 60E, with a scale along the equator of 0.02 inch/degree, run the
-following sequence of commands:
-
- ::
-
- gmt begin
- gmt basemap -R-160/-20/-90/90 -Ji-90/0.02i -Bx30g30 -By15g15 -BWesn
- gmt basemap -Bx30g30 -By15g15 -Bwesn -X2.8i
- gmt basemap -Bx30g30 -By15g15 -BwEsn -X1.6i
- gmt end show
-
-Eckert IV [equal-area]
-~~~~~~~~~~~~~~~~~~~~~~
-
-Pseudo-cylindrical projection typically used for global maps only. Set
-the central longitude and scale, e.g.,
-
- ::
-
- gmt basemap -Rg -Jkf180/0.064c -Bafg -B+t"Eckert IV" -pdf eckert4
-
-Eckert VI [equal-area]
-~~~~~~~~~~~~~~~~~~~~~~
-
-Another pseudo-cylindrical projection typically used for global maps
-only. Set the central longitude and scale, e.g.,
-
- ::
-
- gmt basemap -Rg -Jks180/0.064c -Bafg -B+t"Eckert VI" -pdf eckert6
-
-Robinson
-~~~~~~~~
-
-Projection designed to make global maps "look right". Set the central
-longitude and width, e.g.,
-
- ::
-
- gmt basemap -Rd -JN0/8i -Bafg -B+tRobinson -pdf robinson
-
-Winkel Tripel
-~~~~~~~~~~~~~
-
-Yet another projection typically used for global maps only. You can set
-the central longitude, e.g.,
-
- ::
-
- gmt basemap -R90/450/-90/90 -JR270/25c -Bafg -B+t"Winkel Tripel" -pdf winkel
-
-Mollweide [equal-area]
-~~~~~~~~~~~~~~~~~~~~~~
-
-The Mollweide projection is also mostly used for global maps and thus
-the spherical form is used. To get a 25-cm-wide world map centered on
-the Dateline:
-
- ::
-
- gmt basemap -Rg -JW180/25c -Bafg -B+tMollweide -pdf mollweide
-
-Van der Grinten
-~~~~~~~~~~~~~~~
-
-The Van der Grinten projection is also mostly used for global maps and
-thus the spherical form is used. To get a 18-cm-wide world map centered on the Dateline:
-
- ::
-
- gmt basemap -Rg -JV180/18c -Bafg -B+t"Van der Grinten" -pdf grinten
-
-Arbitrary rotation
-~~~~~~~~~~~~~~~~~~
-
-If you need to plot a map but have it rotated about a vertical axis then
-use the |-p| option. For instance, to rotate the basemap below 90
-degrees about an axis centered on the map, try
-
- ::
-
- gmt basemap -R10/40/10/40 -JM10c -Bafg -B+t"I am rotated" -p90+w25/25 -Xc -pdf rotated
-
-.. include:: basemap_notes.rst_
-
-See Also
---------
-
-:doc:`gmt`, :doc:`gmt.conf`, :doc:`gmtcolors`
diff --git a/6.2.0rc1/_sources/batch.rst.txt b/6.2.0rc1/_sources/batch.rst.txt
deleted file mode 100644
index dfd814dbedb..00000000000
--- a/6.2.0rc1/_sources/batch.rst.txt
+++ /dev/null
@@ -1,311 +0,0 @@
-.. index:: ! batch
-.. include:: module_core_purpose.rst_
-
-*****
-batch
-*****
-
-|batch_purpose|
-
-Synopsis
---------
-
-.. include:: common_SYN_OPTs.rst_
-
-**gmt batch** *mainscript*
-|-N|\ *prefix*
-|-T|\ *njobs*\|\ *min*/*max*/*inc*\ [**+n**]\|\ *timefile*\ [**+p**\ *width*]\ [**+s**\ *first*]\ [**+w**\ [*str*]]
-[ |-I|\ *includefile* ]
-[ |-M|\ [*job*] ]
-[ |-Q|\ [**s**] ]
-[ |-Sb|\ *preflight* ]
-[ |-Sf|\ *postflight* ]
-[ |SYN_OPT-V| ]
-[ |-W|\ [*workdir*] ]
-[ |-Z| ]
-[ |SYN_OPT-x| ]
-[ |SYN_OPT--| ]
-
-|No-spaces|
-
-Description
------------
-
-The **batch** module can generate GMT processing jobs using a single master script
-that is repeated for all jobs, with some variation using specific job variables. The
-module simplifies (and hides) most of the steps normally needed to set up a full-blown
-processing sequence. Instead, the user can focus on composing the main processing script and let the
-parallel execution of jobs be automatic. We can set up required data sets and do one-time calculations
-via an optional *preflight* script. After completion we can optionally assemble the data output
-and make summary plots or similar in the *postflight* script.
-
-
-Required Arguments
-------------------
-
-*mainscript*
- Name of a stand-alone GMT modern mode processing script that makes the parameter-dependent calculations. The
- script may access job variables, such as job number and others defined below, and may be
- written using the Bourne shell (.sh), the Bourne again shell (.bash), the csh (.csh)
- or DOS batch language (.bat). The script language is inferred from the file extension
- and we build hidden batch scripts using the same language. Parameters that can be accessed
- are discussed below.
-
-.. _-N:
-
-**-N**\ *prefix*
- Determines the prefix of the batch file products and the final sub-directory with all job products.
-
-.. _-T:
-
-**-T**\ *njobs*\|\ *min*/*max*/*inc*\ [**+n**]\|\ *timefile*\ [**+p**\ *width*]\ [**+s**\ *first*]\ [**+w**\ [*str*]]
- Either specify how many jobs to make, create a one-column data set width values from
- *min* to *max* every *inc* (append **+n** if *inc* is number of jobs instead), or supply a file with
- a set of parameters, one record (i.e., row) per job. The values in the columns will be available to the
- *mainscript* as named variables **BATCH_COL0**, **BATCH_COL1**, etc., while any trailing text
- can be accessed via the variable **BATCH_TEXT**. Append **+w** to split the trailing
- string into individual *words* that can be accessed via variables **BATCH_WORD0**, **BATCH_WORD1**,
- etc. By default we use any white-space to separate words. Append *str* to select another character(s)
- as the valid separator(s). The number of records equals the number of jobs. Note that the *preflight* script is allowed to
- create *timefile*, hence we check for its existence both before *and* after the *preflight* script has
- completed. Normally, the job numbering starts at 0; you can change this by appending a different starting
- job number via **+s**\ *first*. **Note**: All jobs are still included; this modifier only affects
- the numbering of the given jobs. Finally, **+p** can be used to set the tag *width* of the format
- used in naming jobs. For instance, name_000010.grd has a tag width of 6. By default, this is
- automatically set but if you are splitting large jobs across several computers (via **+s**) then you
- must use the same tag width for all names.
-
-
-Optional Arguments
-------------------
-
-.. _-I:
-
-**-I**\ *includefile*
- Insert the contents of *includefile* into the batch_init.sh script that is accessed by all batch scripts.
- This mechanism is used to add information (typically constant variable assignments) that the *mainscript*
- and any optional **-S** scripts can rely on.
-
-.. _-M:
-
-**-M**\ [*job*]
- Instead of making and launching the full processing sequence, select a single master job [0] for testing.
- The master job will be run and its product(s) are placed in the top directory. While any *preflight* script
- will be run prior to the master job, the *postflight* script will not be executed (but it will be created).
-
-.. _-Q:
-
-**-Q**\ [**s**]
- Debugging: Leave all files and directories we create behind for inspection. Alternatively, append **s** to
- only build the batch scripts but *not* perform any executions. One exception involves the optional
- *preflight* script derived from **-Sb** which is always executed since it may produce data needed when
- building the main batch (or master) scripts.
-
-.. _-Sb:
-
-**-Sb**\ *preflight*
- The optional GMT modern mode *preflight* (written in the same scripting language as *mainscript*) can be
- used to download or copy data files or create files (such as *timefile*) that will be needed by *mainscript*.
- It is always run **b**\ efore the main sequence of batch scripts.
-
-.. _-Sf:
-
-**-Sf**\ *postflight*
- The optional *postflight* (written in the same scripting language as *mainscript*) can be
- used to perform final processing steps **f**\ ollowing the completion of all the individual jobs, such as
- assembling all the products into a single larger file. The script may also make one or more illustrations
- using the products or stacked data after the main processing is completed. It does not have to be a GMT
- script.
-
-.. |Add_-V| replace:: |Add_-V_links|
-.. include:: explain_-V.rst_
- :start-after: **Syntax**
- :end-before: **Description**
-
-.. _-W:
-
-**-W**\ [*workdir*]
- By default, all temporary files and job products are created in the subdirectory *prefix* set via **-N**.
- You can override that selection by giving another *workdir* as a relative or full directory path. If no
- path is given then we create a working directory in the system temp folder named *prefix*. The main benefit
- of a working directory is to avoid endless syncing by agents like DropBox or TimeMachine, or to avoid
- problems related to low space in the main directory. The product files will still be placed in the *prefix*
- directory. The *workdir* is removed unless **-Q** is specified for debugging.
-
-.. _-Z:
-
-**-Z**
- Erase the *mainscript* and all input scripts given via **-I** and **-S** upon completion. Not compatible
- with **-Q**.
-
-.. _-cores:
-
-**-x**\ [[-]\ *n*]
- Limit the number of cores to use when loading up the cores.
- By default we try to use all available cores. Append *n* to only use *n* cores
- (if too large it will be truncated to the maximum cores available). Finally,
- give a negative *n* to select (all - *n*) cores (or at least 1 if *n* equals or exceeds all).
- The parallel processing does not depend on OpenMP; new jobs are launched when the previous ones
- complete.
-
-.. include:: explain_help.rst_
-
-Parameters
-----------
-
-Several parameters are automatically assigned and can be used when composing the *mainscript* and the
-optional *preflight* and *postflight* scripts. There are two sets of parameters: Those that are constants
-and those that change with the job number. The constants are accessible by all the scripts:
-**BATCH_PREFIX**\ : The common prefix of the batch jobs (it is set with **-N**). **BATCH_NJOBS**\ : The
-total number of jobs (given or inferred from **-T**). Also, if **-I** was used then any static parameters
-listed therein will be available to all the scripts as well. In addition, the *mainscript* also has access
-to parameters that vary with the job counter: **BATCH_JOB**\ : The current job number (an integer, e.g., 136),
-**BATCH_TAG**\ : The formatted job number given the precision (a string, e.g., 000136), and **BATCH_NAME**\ :
-The name prefix unique to the current job (i.e., *prefix*\ _\ **BATCH_TAG**), Furthermore, if a *timefile*
-was given then variables **BATCH_COL0**\ , **BATCH_COL1**\ , etc. are also set, yielding one variable per
-column in *timefile*. If *timefile* has trailing text then that text can be accessed via the variable
-**BATCH_TEXT**, and if word-splitting was explicitly requested by **+w** modifier to **-T** then the trailing
-text is also split into individual word parameters **BATCH_WORD0**\ , **BATCH_WORD1**\ , etc. **Note**: Any
-product(s) made by the processing scripts should be named using **BATCH_NAME** as their name prefix as these
-will be automatically moved up to the starting directory upon completion.
-
-Data Files
-----------
-
-The batch scripts will be able to find any files present in the starting directory when **batch** was initiated,
-as well as any new files produced by *mainscript* or the optional scripts set via **-S**.
-No path specification is needed to access these files. Other files may
-require full paths unless their directories were already included in the :term:`DIR_DATA` setting.
-
-Custom gmt.conf files
----------------------
-
-If you have a gmt.conf file in the top directory with your main script prior to running **batch** then it will be
-used and shared across all the scripts created and executed *unless* your scripts use **-C** when starting a new
-modern mode session. The preferred ways of changing GMT defaults is via :doc:`gmtset` calls in your input scripts.
-**Note**: Each script is run in isolation (modern) mode so trying to create a gmt.conf file via the *preflight*
-script to be used by other scripts is futile.
-
-Constructing the Main Script
-----------------------------
-
-A batch sequence is not very interesting if nothing changes between calls. For the process to change you need
-to have your *mainscript* either access a *different* data set as the job number changes, or you need to access
-only a varying *subset* of a data set, or the processing parameters need to change, or all of the above. There
-are several strategies you can use to accomplish these effects:
-
-#. Your *timefile* passed to **-T** may list names of specific data files and you simply have your *mainscript*
- use the relevant **BATCH_TEXT** or **BATCH_WORD?** to access the job-specific file name.
-#. You have a 3-D grid (or a stack of 2-D grids) and you want to interpolate along the axis perpendicular to the
- 2-D slices (e.g., time, or it could be depth). In this situation you will use the module :doc:`grdinterpolate`
- to have the *mainscript* obtain a slice for the correct time (this may be an interpolation between two different
- times or depths) and process this temporary grid file.
-#. You may be creating data on the fly using :doc:`gmtmath` or :doc:`grdmath`, or perhaps processing data slightly
- differently per job (using parameters in the *timefile*) and computing these or the changes between jobs.
-#. Use your imagination to pass whatever arguments are needed via *timefile*.
-
-
-Technical Details
------------------
-
-The **batch** module creates several hidden script files that are used in the generation of the products
-(here we have left the script file extension off since it depends on the scripting language used): *batch_init*
-(initializes variables related to the overall batch job and includes the contents of the optional *includefile*),
-*batch_preflight* (optional since it derives from **-Sb** and computes or prepares needed data files), *batch_postflight*
-(optional since it derives from **-Sf** and processes files once all the batch job complete), *batch_job*
-(accepts a job counter argument and processes data for those parameters), and *batch_cleanup* (removes temporary
-files at the end of the process). For each job, there is a separate *batch_params_######* script that provides
-job-specific variables (e.g., job number and anything given via **-T**). The *preflight* and *postflight* scripts
-have access to the information in *batch_init*, while the *batch_job* script in addition has access to the job-specific
-parameter file. Using the **-Q** option will just produce these scripts which you can then examine.
-**Note**: The *mainscript* is duplicated per job and many of these are run simultaneously on all available cores.
-Multi-treaded GMT modules will therefore be limited to a single core per call. Because we do not know how
-many products each batch job makes, we ensure each job creates a unique file when it is finished. Checking for
-these special (and empty) files is how **batch** learns that a particular job has completed and it is time to
-launch another one.
-
-
-Hints for Batch Makers
-----------------------
-
-Composing batch jobs is relatively simple, but you have to think in terms of *variables*. Examine the examples
-we describe. Then, start by making a single script (i.e., your *mainscript*) and identify which
-things should change with time (i.e., with the job number). Create variables for these values. If they
-are among the listed parameters that **batch** creates automatically then use those names. Unless you only
-require the job number you will need to make a file that you can pass via **-T**. This file should
-then have all the values you need, per job (i.e., per row), with values across all the columns you need.
-If you need to assign various *fixed* variables that do not change with time, then your *mainscript*
-will look shorter and cleaner if you offload those assignments to a separate *includefile* (via **-I**).
-To test your *mainscript*, start by using options **-Q -M** to ensure that your master job results are correct.
-The **-M** option simply runs one job of your batch sequence (you can select which one via the **-M**
-arguments [0]). Fix any issues with your use of variables and options until this works. You can then try
-to remove **-Q**. We recommend you make a very short (i.e., via **-T**) and small batch sequence so you don't
-have to wait very long to see the result. Once things are working you can beef up number of jobs.
-
-
-Examples
---------
-
-We extract a subset of bathymetry for the Gulf of Guinea from the 2x2 arc minute resolution Earth DEM and compute
-Gaussian filtered high-pass grids using filter widths ranging from 10 to 200 km in steps of 10 km. When the grids
-are all completed we determine the standard deviation in the result. To replicate our setup, try::
-
- cat << EOF > pre.sh
- gmt begin
- gmt math -o0 -T10/200/10 T = widths.txt
- gmt grdcut -R-10/20/-10/20 @earth_relief_02m -Gdata.grd
- gmt end
- EOF
- cat << EOF > main.sh
- gmt begin
- gmt grdfilter data.grd -Fg\${BATCH_COL0}+h -G\${BATCH_NAME}.grd -D2
- gmt end
- EOF
- cat << EOF > post.sh
- gmt begin \${BATCH_PREFIX} pdf
- gmt grdmath \${BATCH_PREFIX}_*.grd -S STD = \${BATCH_PREFIX}_std.grd
- gmt grdimage \${BATCH_PREFIX}_std.grd -B -B+t"STD of Gaussians residuals" -Chot
- gmt coast -Wthin,white
- gmt end show
- EOF
- gmt batch main.sh -Sbpre.sh -Sfpost.sh -Twidths.txt -Nfilter -V -Z
-
-Of course, the syntax of how variables are used vary according to the scripting language. Here, we actually
-build the pre.sh, main.sh, and post.sh scripts on the fly, hence we need to escape any variables (since they
-start with a dollar sign that we need to be written verbatim). At the end of the execution we find 20 grids
-(e.g., such as filter_07.grd), as well as the filter_std.grd file obtained by stacking all the individual
-scripts and computing a standard deviation. The information needed to do all of this is hidden from the user;
-the actual batch scripts that we execute are derived from the user-provided main.sh script and **batch**
-supplies the extra machinery. The **batch** module automatically manages the parallel execution loop over all
-jobs using all available cores and launches new jobs as old ones complete.
-
-As another example, we get a list of all European countries and make a simple coast plot of each of them,
-placing their name in the title and the 2-character ISO code in the upper left corner, then in postflight
-we combine all the individual PDFs into a single PDF file and delete the individual files::
-
- cat << EOF > pre.sh
- gmt begin
- gmt coast -E=EU+l > countries.txt
- gmt end
- EOF
- cat << EOF > main.sh
- gmt begin \${BATCH_NAME} pdf
- gmt coast -R\${BATCH_WORD0}+r2 -JQ10c -Glightgray -Slightblue -B -B+t"\${BATCH_WORD1}" -E\${BATCH_WORD0}+gred+p0.5p
- echo \${BATCH_WORD0} | gmt text -F+f16p+jTL+cTL -Gwhite -W1p
- gmt end
- EOF
- cat << EOF > post.sh
- gs -dQUIET -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=\${BATCH_PREFIX}.pdf -dBATCH \${BATCH_PREFIX}_*.pdf
- rm -f \${BATCH_PREFIX}_*.pdf
- EOF
- gmt batch main.sh -Sbpre.sh -Sfpost.sh -Tcountries.txt+w"\t" -Ncountries -V -W -Zs
-
-Here, the postflight script is not even a GMT script; it simply runs gs (Ghostscript) and deletes what we don't want to keep.
-
-See Also
---------
-
-:doc:`gmt`,
-:doc:`gmtmath`,
-:doc:`grdinterpolate`,
-:doc:`grdmath`
diff --git a/6.2.0rc1/_sources/begin.rst.txt b/6.2.0rc1/_sources/begin.rst.txt
deleted file mode 100644
index 35e5bc55afa..00000000000
--- a/6.2.0rc1/_sources/begin.rst.txt
+++ /dev/null
@@ -1,153 +0,0 @@
-.. index:: ! begin
-.. include:: module_core_purpose.rst_
-
-*****
-begin
-*****
-
-|begin_purpose|
-
-Synopsis
---------
-
-.. include:: common_SYN_OPTs.rst_
-
-**gmt begin** [*prefix*] [*formats*] [*options*]
-[ |-C| ]
-[ |SYN_OPT-V| ]
-
-|No-spaces|
-
-Description
------------
-
-The **begin** module instructs GMT to begin a new modern mode session. If your script only makes
-a single plot then this is the most opportune time to specify the name
-and format(s) of your plot. However, if you want to create multiple illustrations within this session,
-you will instead use :doc:`figure` to name the figure(s) you wish to make. The session
-keeps track of all default and history settings and isolates them from any other session
-that may run concurrently. Thus, unlike classic mode, you can run multiple modern sessions
-simultaneously without having destructive interference in updating the history of common
-options.
-In addition to *prefix* and *formats*, you can supply a comma-separated series of
-:doc:`psconvert` *options* (without their leading hyphens) that will override the default settings provided via
-:term:`PS_CONVERT` [**A**]. The only other available options control the verbosity.
-
-Optional Arguments
-------------------
-
-.. _begin-prefix:
-
-*prefix*
- Name-stem used to construct the single final figure name [gmtsession]. The extension is appended
- automatically from your *formats* selection(s). If your script only
- performs calculations or needs to make several figures then you will not use this argument.
- While not recommended, if your *prefix* has spaces in it then you must enclose your
- prefix in single or double quotes.
-
-.. _begin-formats:
-
-*formats*
- Give one or more comma-separated graphics extensions from the list of allowable
- :ref:`graphics formats `
- (default format is configurable via setting :term:`GMT_GRAPHICS_FORMAT` [pdf]).
-
-.. _begin-options:
-
-*options*
- Sets one or more comma-separated options (and possibly arguments) that
- can be passed to :doc:`psconvert` when preparing a session figure [**A**].
- The valid subset of options are
- **A**\ [*args*],\ **C**\ *args*,\ **D**\ *dir*,\ **E**\ *dpi*,\ **H**\ *factor*,\ **M**\ *args*,\ **Q**\ *args*,\ **S**.
- Note that the leading hyphens should not be given.
- See the :doc:`psconvert` documentation for details on these options.
-
-.. _-C:
-
-**-C**
- Start this session with a clean slate: Any gmt.conf files in the usual search path
- directories are ignored [Default starts session with the prevailing user settings].
-
-.. |Add_-V| replace:: |Add_-V_links|
-.. include:: explain_-V.rst_
- :start-after: **Syntax**
- :end-before: **Description**
-
-.. include:: explain_help_nopar.rst_
-
-
-Supported Graphic Formats
--------------------------
-
-.. _tbl-formats:
-
-====== ====================================================
-Format Explanation
-====== ====================================================
-bmp Microsoft Bit Map
-eps Encapsulated PostScript
-jpg Joint Photographic Experts Group Format
-pdf Portable Document Format [Default]
-png Portable Network Graphics
-PNG Portable Network Graphics (with transparency layer)
-ppm Portable Pixel Map
-ps Plain PostScript
-tif Tagged Image Format File
-====== ====================================================
-
-Examples
---------
-
-To initiate a new modern session that will produce a single
-map called Figure_2 saved as both a PDF vector graphics file
-and an opaque PNG raster image, we would start our script thus::
-
- gmt begin Figure_2 pdf,png
-
-If the modern session is only used for computations and no illustrations
-are produced then we do not need to give any further arguments::
-
- gmt begin
-
-Should we give such a command and still produce a plot then it will automatically
-be called gmtsession.pdf (assuming :term:`GMT_GRAPHICS_FORMAT` is pdf).
-
-To set up proceedings for a jpg figure with 0.5c white margin, and strictly using
-the GMT default settings, we would run::
-
- gmt begin 'My Figure4' jpg A+m0.5c -C
-
-.. include:: explain_postscript.rst_
-
-Note on UNIX shells
--------------------
-
-Modern mode works by communicating across gmt modules via the shell script's (or terminal's)
-process ID, which is the common parent process ID (PPID) for each module. This number is used to
-create the unique session directories where gmt keeps its book-keeping records. However, inconsistencies
-across various UNIX shells and other differences in their implementations may occasionally lead
-to problems for gmt to properly determine the unique PPID. The most common situation is
-related to a shell spawning sub-shells when you are linking two or more processes via UNIX pipes.
-Each sub-shell will then have its own process ID and gmt modules started by the sub-shell will then
-have that ID as PPID and it will differ from the one determined by gmt begin.
-If you are using pipes in your modern mode script and you get strange errors about not finding gmt_session.#####
-then you can add this command to the top of your script to make the issue go away (in Bourne shell)::
-
- export GMT_SESSION_NAME=$$
-
-or in C shell::
-
- setenv GMT_SESSION_NAME $$
-
-This setting is prescribed if you create a new script with ``gmt --new-script``.
-
-See Also
---------
-
-:doc:`clear`,
-:doc:`docs`,
-:doc:`end`,
-:doc:`figure`,
-:doc:`inset`,
-:doc:`subplot`,
-:doc:`gmt`
diff --git a/6.2.0rc1/_sources/blockmean.rst.txt b/6.2.0rc1/_sources/blockmean.rst.txt
deleted file mode 100644
index a457d3b9b46..00000000000
--- a/6.2.0rc1/_sources/blockmean.rst.txt
+++ /dev/null
@@ -1,209 +0,0 @@
-.. index:: ! blockmean
-.. include:: module_core_purpose.rst_
-
-*********
-blockmean
-*********
-
-|blockmean_purpose|
-
-Synopsis
---------
-
-.. include:: common_SYN_OPTs.rst_
-
-**gmt blockmean** [ *table* ]
-|SYN_OPT-I|
-|SYN_OPT-R|
-[ |-A|\ *fields* ]
-[ |-C| ]
-[ |-E|\ [**+p**\|\ **P**] ]
-[ |-G|\ [*grdfile*] ]
-[ |-S|\ [**m**\|\ **n**\|\ **s**\|\ **w**] ]
-[ |SYN_OPT-V| ]
-[ |-W|\ [**i**\|\ **o**][**+s**] ]
-[ |SYN_OPT-a| ]
-[ |SYN_OPT-b| ]
-[ |SYN_OPT-d| ]
-[ |SYN_OPT-e| ]
-[ |SYN_OPT-f| ]
-[ |SYN_OPT-h| ]
-[ |SYN_OPT-i| ]
-[ |SYN_OPT-o| ]
-[ |SYN_OPT-q| ]
-[ |SYN_OPT-r| ]
-[ |SYN_OPT-w| ]
-[ |SYN_OPT-:| ]
-[ |SYN_OPT--| ]
-
-|No-spaces|
-
-Description
------------
-
-**blockmean** reads arbitrarily located (*x*,\ *y*,\ *z*) triples [or
-optionally weighted quadruples (*x*,\ *y*,\ *z*,\ *w*)] from standard
-input [or *table*] and writes to standard output a mean position and
-value for every non-empty block in a grid region defined by the **-R**
-and **-I** arguments. See **-G** for writing gridded output directly.
-Either **blockmean**, :doc:`blockmedian`, or
-:doc:`blockmode` should be used as a pre-processor before running
-:doc:`surface` to avoid aliasing short wavelengths. These routines are also
-generally useful for decimating or averaging (*x*,\ *y*,\ *z*) data. You
-can modify the precision of the output format by editing the
-:term:`FORMAT_FLOAT_OUT` parameter in your :doc:`gmt.conf` file, or you may
-choose binary input and/or output to avoid loss of precision.
-
-Required Arguments
-------------------
-
-*table*
- 3 (or 4, see **-W**) column ASCII data table file(s) (or binary, see
- **-bi**) holding (*x*,\ *y*,\ *z*\ [,\ *w*])
- data values, where [*w*] is an optional weight for the data. If no file
- is specified, **blockmean** will read from standard input.
-
-.. _-I:
-
-.. include:: explain_-I.rst_
-
-.. |Add_-R| replace:: |Add_-R_links|
-.. include:: explain_-R.rst_
- :start-after: **Syntax**
- :end-before: **Description**
-
-Optional Arguments
-------------------
-
-.. _-A:
-
-**-A**\ *fields*
- Select which fields to write to individual grids. Requires **-G**.
- Append the codes for available fields: **z** (the mean
- data z, but see **-S**), **s** (standard deviation), **l** (lowest
- value), **h** (highest value) and **w** (the output weight; requires **-W**).
- Note **s**\|\ **l**\|\ **h** requires **-E** [Default is just **z**].
-
-.. _-C:
-
-**-C**
- Use the center of the block as the output location [Default uses the mean location].
-
-.. _-E:
-
-**-E**\ [**+p**\|\ **P**]
- Provide Extended report which includes **s** (the standard deviation
- about the mean), **l**, the lowest value, and **h**, the high value
- for each block. Output order becomes
- *x*,\ *y*,\ *z*,\ *s*,\ *l*,\ *h*\ [,\ *w*]. Default outputs
- *x*,\ *y*,\ *z*\ [,\ *w*]. See **-W** for enabling *w* output.
- If **-E+p**\|\ **P** is used then input data uncertainties are expected and *s*
- becomes the propagated error of the weighted (**+p**) or simple (**+P**) *z* mean.
-
-.. _-G:
-
-**-G**\ *grdfile*
- Write one or more fields directly to grids; no table data are written to
- standard output. If more than one fields are specified via **-A** then
- *grdfile* must contain the format flag %s so that we can embed the field
- code in the file names.
-
-.. _-S:
-
-**-S**\ [**m**\|\ **n**\|\ **s**\|\ **w**]
- Use **-Sn** to report the number of input points inside each block,
- **-Ss** to report the sum of all *z*-values inside a block, **-Sw**
- to report the sum of weights [Default (or **-Sm** reports mean value].
-
-.. |Add_-V| replace:: |Add_-V_links|
-.. include:: explain_-V.rst_
- :start-after: **Syntax**
- :end-before: **Description**
-
-.. _-W:
-
-**-W**\ [**i**\|\ **o**][**+s**]
- Weighted modifier[s]. Unweighted input and output have 3 columns
- *x*,\ *y*,\ *z*; Weighted i/o has 4 columns *x*,\ *y*,\ *z*,\ *w*.
- Weights can be used in input to construct weighted mean values for
- each block. Weight sums can be reported in output for later combining
- several runs, etc. Use **-W** for weighted i/o, **-Wi** for weighted
- input only, and **-Wo** for weighted output only. [Default uses
- unweighted i/o]. If your weights are actually uncertainties (one sigma)
- then append **+s** and we compute weight = 1/sigma.
-
-.. include:: explain_-aspatial.rst_
-
-.. |Add_-bi| replace:: [Default is 3 (or 4 if **-Wi** is set)].
-.. include:: explain_-bi.rst_
-
-
-.. |Add_-bo| replace:: [Default is 3 (or 4 if **-Wo** is set)]. **-E** adds 3 additional columns.
- The **-Sn** option will work with only 2 input columns (x and y).
-
-.. include:: explain_-bo.rst_
-
-.. |Add_-d| unicode:: 0x20 .. just an invisible code
-.. include:: explain_-d.rst_
-
-.. |Add_-e| unicode:: 0x20 .. just an invisible code
-.. include:: explain_-e.rst_
-
-.. |Add_-f| unicode:: 0x20 .. just an invisible code
-.. include:: explain_-f.rst_
-
-.. |Add_-h| unicode:: 0x20 .. just an invisible code
-.. include:: explain_-h.rst_
-
-.. include:: explain_-icols.rst_
-.. include:: explain_-ocols.rst_
-
-.. include:: explain_-q.rst_
-
-.. |Add_nodereg| replace::
- Each block is the locus of points nearest the grid value location. Consider an example with
- **-R**\ 10/15/10/15 and **-I**\ 1: With **-r** or **-rp**, 10 <=
- (*x*,\ *y*) < 11 is one of 25 blocks; otherwise 9.5 <= (*x*,\ *y*)
- < 10.5 is one of 36 blocks.
-.. include:: explain_nodereg.rst_
-
-.. include:: explain_-w.rst_
-
-.. include:: explain_colon.rst_
-.. include:: explain_help.rst_
-.. include:: explain_precision.rst_
-
-Examples
---------
-
-To find 5 by 5 minute block mean values from the ASCII data in ship_15.txt, run
-
- ::
-
- gmt blockmean @ship_15.txt -R245/255/20/30 -I5m > ship_5x5.txt
-
-To determine how many values were found in each 5x5 minute bin, try
-
- ::
-
- gmt blockmean @ship_15.txt -R245/255/20/30 -I5m -Sn > ship_5x5_count.txt
-
-To determine the mean and standard deviation per 10 minute bin and save these to two separate grids
-called field_z.nc and field_s.nc, run
-
- ::
-
- gmt blockmean @ship_15.txt -I10m -R-115/-105/20/30 -E -Gfield_%s.nc -Azs
-
-See Also
---------
-
-:doc:`blockmedian`,
-:doc:`blockmode`,
-:doc:`gmt`,
-:doc:`gmt.conf`,
-:doc:`greenspline`,
-:doc:`nearneighbor`,
-:doc:`sphtriangulate`,
-:doc:`surface`,
-:doc:`triangulate`
diff --git a/6.2.0rc1/_sources/blockmedian.rst.txt b/6.2.0rc1/_sources/blockmedian.rst.txt
deleted file mode 100644
index 86bdaa31e49..00000000000
--- a/6.2.0rc1/_sources/blockmedian.rst.txt
+++ /dev/null
@@ -1,226 +0,0 @@
-.. index:: ! blockmedian
-.. include:: module_core_purpose.rst_
-
-***********
-blockmedian
-***********
-
-|blockmedian_purpose|
-
-Synopsis
---------
-
-.. include:: common_SYN_OPTs.rst_
-
-**gmt blockmedian** [ *table* ]
-|SYN_OPT-I|
-|SYN_OPT-R|
-[ |-A|\ *fields* ]
-[ |-C| ]
-[ |-E|\ [**b**] ] [ |-E|\ **r**\|\ **s**\ [**+l**\|\ **h**] ]
-[ |-G|\ [*grdfile*] ]
-[ |-Q| ]
-[ |-T|\ *quantile* ]
-[ |SYN_OPT-V| ]
-[ |-W|\ [**i**\|\ **o**][**+s**] ]
-[ |SYN_OPT-a| ]
-[ |SYN_OPT-b| ]
-[ |SYN_OPT-d| ]
-[ |SYN_OPT-e| ]
-[ |SYN_OPT-f| ]
-[ |SYN_OPT-h| ]
-[ |SYN_OPT-i| ]
-[ |SYN_OPT-o| ]
-[ |SYN_OPT-q| ]
-[ |SYN_OPT-r| ]
-[ |SYN_OPT-w| ]
-[ |SYN_OPT-:| ]
-[ |SYN_OPT--| ]
-
-|No-spaces|
-
-Description
------------
-
-**blockmedian** reads arbitrarily located (*x*,\ *y*,\ *z*) triples [or
-optionally weighted quadruples (*x*,\ *y*,\ *z*,\ *w*)] from standard
-input [or *table*] and writes to standard output a median position and
-value for every non-empty block in a grid region defined by the **-R**
-and **-I** arguments. See **-G** for writing gridded output directly.
-Either :doc:`blockmean`, **blockmedian**, or
-:doc:`blockmode` should be used as a pre-processor before running
-:doc:`surface` to avoid aliasing short wavelengths. These routines are also
-generally useful for decimating or averaging (*x*,\ *y*,\ *z*) data. You
-can modify the precision of the output format by editing the
-:term:`FORMAT_FLOAT_OUT` parameter in your :doc:`gmt.conf` file, or you may
-choose binary input and/or output to avoid loss of precision.
-
-Required Arguments
-------------------
-
-*table*
- 3 (or 4, see **-W**) column ASCII data table file(s) (or binary, see
- **-bi**) holding (*x*,\ *y*,\ *z*\ [,\ *w*])
- data values, where [*w*] is an optional weight for the data.
- If no file is specified, **blockmedian** will read
- from standard input.
-
-.. _-I:
-
-.. include:: explain_-I.rst_
-
-.. |Add_-R| replace:: |Add_-R_links|
-.. include:: explain_-R.rst_
- :start-after: **Syntax**
- :end-before: **Description**
-
-Optional Arguments
-------------------
-
-.. _-A:
-
-**-A**\ *fields*
- Select which fields to write to individual grids. Requires **-G**.
- Append the codes for available fields: **z** (the median
- data z, but see **-T**), **s** (the L1 scale of the median), **l** (lowest
- value), **q25** (the 25% quartile), **q75** (the 75% quartile), **h** (highest value),
- and **w** (the output weight; requires **-W**). Note **s**\|\ **l**\|\ **h**
- requires **-E**, while **l**\|\ **q25**\|\ **q75**\|\ **h** requires **-Eb**,
- and **Es**\|\ **r** cannot be used. [Default is just **z**].
-
-.. _-C:
-
-**-C**
- Use the center of the block as the output location [Default uses the
- median x and median y as location (but see **-Q**)].
-
-.. _-E:
-
-**-E**\ [**b**]
- Provide Extended report which includes **s** (the L1 scale of the
- median, i.e., 1.4826 \* median absolute deviation [MAD]), **l**, the lowest
- value, and **h**, the high value for each block. Output order becomes
- *x*,\ *y*,\ *z*,\ *s*,\ *l*,\ *h*\ [,\ *w*]. Default outputs
- *x*,\ *y*,\ *z*\ [,\ *w*]. For box-and-whisker calculation, use
- **-Eb** which will output
- *x*,\ *y*,\ *z*,\ *l*,\ *q25*,\ *q75*,\ *h*\ [,\ *w*], where *q25* and
- *q75* are the 25% and 75% quantiles, respectively. See **-W** for
- *w* output.
-**-E**\ **r**\|\ **s**\ [**+l**\|\ **h**]
- Provide source id **s** or record number **r** output, i.e., append
- the source id or record number associated with the median value. If
- tied then report the record number of the higher of the two values (i.e., **+h** is the default);
- append **+l** to instead report the record number of the lower value.
- Note that **-E** may be repeated so that both **-E**\ [**b**] and
- **-E**\ **r**\ [**+l**\|\ **h**] can be
- specified. For **-E**\ **s** we expect input records of the form
- *x*,\ *y*,\ *z*\ [,\ *w*],\ *sid*, where *sid* is an unsigned integer
- source id.
-
-.. _-G:
-
-**-G**\ *grdfile*
- Write one or more fields directly to grids; no table data are written to
- standard output. If more than one fields are specified via **-A** then
- *grdfile* must contain the format flag %s so that we can embed the field
- code in the file names.
-
-.. _-Q:
-
-**-Q**
- (Quicker) Finds median *z* and (*x*,\ *y*) at that the median *z*
- [Default finds median *x*, median *y* independent of *z*]. Also see **-C**.
-
-.. _-T:
-
-**-T**\ *quantile*
- Sets the *quantile* of the distribution to be returned [Default is
- 0.5 which returns the median *z*]. Here, 0 < *quantile* < 1.
-
-.. |Add_-V| replace:: |Add_-V_links|
-.. include:: explain_-V.rst_
- :start-after: **Syntax**
- :end-before: **Description**
-
-.. _-W:
-
-**-W**\ [**i**\|\ **o**][**+s**]
- Weighted modifier[s]. Unweighted input and output have 3 columns
- *x*,\ *y*,\ *z*; Weighted i/o has 4 columns *x*,\ *y*,\ *z*,\ *w*.
- Weights can be used in input to construct weighted median values for each
- block. Weight sums can be reported in output for later combining
- several runs, etc. Use **-W** for weighted i/o, **-Wi** for weighted
- input only, and **-Wo** for weighted output only. [Default uses
- unweighted i/o]. If your weights are actually uncertainties (one sigma)
- then append **+s** and we compute weight = 1/sigma.
-
-.. include:: explain_-aspatial.rst_
-
-.. |Add_-bi| replace:: [Default is 3 (or 4 if **-Wi** is set)].
-.. include:: explain_-bi.rst_
-
-.. |Add_-bo| replace:: [Default is 3 (or 4 if **-Wo** is set)]. **-E** adds 3 additional columns.
-.. include:: explain_-bo.rst_
-
-.. |Add_-d| unicode:: 0x20 .. just an invisible code
-.. include:: explain_-d.rst_
-
-.. |Add_-e| unicode:: 0x20 .. just an invisible code
-.. include:: explain_-e.rst_
-
-.. |Add_-f| unicode:: 0x20 .. just an invisible code
-.. include:: explain_-f.rst_
-
-.. |Add_-h| unicode:: 0x20 .. just an invisible code
-.. include:: explain_-h.rst_
-
-.. include:: explain_-icols.rst_
-.. include:: explain_-ocols.rst_
-
-.. include:: explain_-q.rst_
-
-.. |Add_nodereg| replace::
- Each block is the locus of points nearest the grid value location. Consider an example with
- **-R**\ 10/15/10/15 and **-I**\ 1: With **-r** or **-rp**, 10 <=
- (*x*,\ *y*) < 11 is one of 25 blocks; otherwise 9.5 <= (*x*,\ *y*)
- < 10.5 is one of 36 blocks.
-.. include:: explain_nodereg.rst_
-
-.. include:: explain_-w.rst_
-
-.. include:: explain_colon.rst_
-.. include:: explain_help.rst_
-.. include:: explain_precision.rst_
-
-Examples
---------
-
-To find 5 by 5 minute block medians from the ASCII data in ship_15.txt
-and output a binary table with double precision triplets, run::
-
-
- gmt blockmedian @ship_15.txt -R245/255/20/30 -I5m -bo3d > ship_5x5.b
-
-To compute the shape of a data distribution per bin via a
-box-and-whisker diagram we need the 0%, 25%, 50%, 75%, and 100%
-quantiles. To do so on a global 5 by 5 degree basis from the ASCII table
-mars370.txt and send output to an ASCII table, run::
-
- gmt blockmedian @mars370.txt -Rg -I5 -Eb -r > mars_5x5.txt
-
-To determine the median and L1 scale (MAD) on the median per 10 minute bin and save these to two separate grids
-called field_z.nc and field_s.nc, run::
-
- gmt blockmedian @ship_15.txt -I10m -R-115/-105/20/30 -E -Gfield_%s.nc -Azs
-
-See Also
---------
-
-:doc:`blockmean`,
-:doc:`blockmode`, :doc:`gmt`,
-:doc:`gmt.conf`,
-:doc:`greenspline`,
-:doc:`nearneighbor`,
-:doc:`surface`,
-:doc:`sphtriangulate`,
-:doc:`triangulate`
diff --git a/6.2.0rc1/_sources/blockmode.rst.txt b/6.2.0rc1/_sources/blockmode.rst.txt
deleted file mode 100644
index 1b48e9259c8..00000000000
--- a/6.2.0rc1/_sources/blockmode.rst.txt
+++ /dev/null
@@ -1,223 +0,0 @@
-.. index:: ! blockmode
-.. include:: module_core_purpose.rst_
-
-*********
-blockmode
-*********
-
-|blockmode_purpose|
-
-Synopsis
---------
-
-.. include:: common_SYN_OPTs.rst_
-
-**gmt blockmode** [ *table* ]
-|SYN_OPT-I|
-|SYN_OPT-R|
-[ |-A|\ *fields* ]
-[ |-C| ]
-[ |-D|\ [*width*]\ [**+c**][**+a**\|\ **+l**\|\ **+h** ]
-[ |-E|\ **r**\|\ **s**\ [**+l**\|\ **h**] ]
-[ |-G|\ [*grdfile*] ]
-[ |-Q| ]
-[ |SYN_OPT-V| ]
-[ |-W|\ [**i**\|\ **o**][**+s**] ]
-[ |SYN_OPT-a| ]
-[ |SYN_OPT-b| ]
-[ |SYN_OPT-d| ]
-[ |SYN_OPT-e| ]
-[ |SYN_OPT-f| ]
-[ |SYN_OPT-h| ]
-[ |SYN_OPT-i| ]
-[ |SYN_OPT-o| ]
-[ |SYN_OPT-q| ]
-[ |SYN_OPT-r| ]
-[ |SYN_OPT-w| ]
-[ |SYN_OPT-:| ]
-[ |SYN_OPT--| ]
-
-|No-spaces|
-
-Description
------------
-
-**blockmode** reads arbitrarily located (*x*,\ *y*,\ *z*) triples [or
-optionally weighted quadruples (*x*,\ *y*,\ *z*,\ *w*)] from standard
-input [or *table*] and writes to standard output mode estimates of
-position and value for every non-empty block in a grid region defined by
-the **-R** and **-I** arguments. See **-G** for writing gridded output directly.
-Either :doc:`blockmean`, :doc:`blockmedian`,
-or **blockmode** should be used as a pre-processor before running
-:doc:`surface` to avoid aliasing short wavelengths. These routines are also
-generally useful for decimating or averaging (*x*,\ *y*,\ *z*) data. You
-can modify the precision of the output format by editing the
-:term:`FORMAT_FLOAT_OUT` parameter in your :doc:`gmt.conf` file, or you may
-choose binary input and/or output to avoid loss of precision.
-
-Required Arguments
-------------------
-
-*table*
- 3 (or 4, see **-W**) column ASCII data table file(s) (or binary, see
- **-bi**) holding (*x*,\ *y*,\ *z*\ [,\ *w*])
- data values, where [*w*] is an optional weight for the data.
- If no file is specified, **blockmode** will read from standard input.
-
-.. _-I:
-
-.. include:: explain_-I.rst_
-
-.. |Add_-R| replace:: |Add_-R_links|
-.. include:: explain_-R.rst_
- :start-after: **Syntax**
- :end-before: **Description**
-
-Optional Arguments
-------------------
-
-.. _-A:
-
-**-A**\ *fields*
- Select which fields to write to individual grids. Requires **-G**.
- Append the codes for available fields: **z** (the modal
- data z), **s** (the L1 scale of the mode), **l** (lowest
- value), **h** (highest value) and **w** (the output weight; requires **-W**).
- Note **s**\|\ **l**\|\ **h** requires **-E**, and **Es**\|\ **r**
- cannot be used. [Default is just **z**].
-
-.. _-C:
-
-**-C**
- Use the center of the block as the output location [Default uses the
- modal xy location (but see **-Q**)]. **-C** overrides **-Q**.
-
-.. _-D:
-
-**-D**\ [*width*]\ [**+c**][**+a**\|\ **+l**\|\ **+h**]
- Perform unweighted mode calculation via histogram binning, using the
- specified histogram *width*. Append **+c** to center bins so that
- their mid point is a multiple of *width* [uncentered].
- If multiple modes are found for a block we return the average mode [**+a**].
- Append **+l** or **+h** to return the low of high mode instead, respectively.
- If *width* is not given it will default to 1 provided your data set only
- contains integers. Also, for integer data and integer bin *width* we
- enforce bin centering (**+c**) and select the lowest mode (**+l**) if
- there are multiples. [Default mode is normally the Least Median of Squares (LMS) statistic].
-
-.. _-E:
-
-**-E**
- Provide Extended report which includes **s** (the L1 scale of the
- mode), **l**, the lowest value, and **h**, the high value for each
- block. Output order becomes
- *x*,\ *y*,\ *z*,\ *s*,\ *l*,\ *h*\ [,\ *w*]. Default outputs
- *x*,\ *y*,\ *z*\ [,\ *w*]. See **-W** for *w* output.
-**-E**\ **r**\|\ **s**\ [**+l**\|\ **h**]
- Provide source id **s** or record number **r** output, i.e., append
- the source id or record number associated with the modal value. If
- tied then report the record number of the higher of the two values (i.e., **+h** is the default);
- append **+l** to instead report the record number of the lower value.
- Note that **-E** may be repeated so that both both **-E** and
- **-E**\ **r**\ [**+l**\|\ **h**] may be specified.
- For **-E**\ **s** we expect input records of the form
- *x*,\ *y*,\ *z*\ [,\ *w*],\ *sid*, where *sid* is an unsigned integer
- source id.
-
-.. _-G:
-
-**-G**\ *grdfile*
- Write one or more fields directly to grids; no table data are written to
- standard output. If more than one fields are specified via **-A** then
- *grdfile* must contain the format flag %s so that we can embed the field
- code in the file names.
-
-.. _-Q:
-
-**-Q**
- (Quicker) Finds mode *z* and mean (*x*,\ *y*) [Default finds mode
- *x*, mode *y*, mode *z*].
-
-.. |Add_-V| replace:: |Add_-V_links|
-.. include:: explain_-V.rst_
- :start-after: **Syntax**
- :end-before: **Description**
-
-.. _-W:
-
-**-W**\ [**i**\|\ **o**][**+s**]
- Weighted modifier[s]. Unweighted input and output have 3 columns
- *x*,\ *y*,\ *z*; Weighted i/o has 4 columns *x*,\ *y*,\ *z*,\ *w*.
- Weights can be used in input to construct weighted modal values for each
- block. Weight sums can be reported in output for later combining
- several runs, etc. Use **-W** for weighted i/o, **-Wi** for weighted
- input only, and **-Wo** for weighted output only. [Default uses unweighted i/o].
- If your weights are actually uncertainties (one sigma)
- then append **+s** and we compute weight = 1/sigma.
-
-.. include:: explain_-aspatial.rst_
-
-.. |Add_-bi| replace:: [Default is 3 (or 4 if **-Wi** is set)].
-.. include:: explain_-bi.rst_
-
-.. |Add_-bo| replace:: [Default is 3 (or 4 if **-Wo** is set)]. **-E** adds 3 additional columns.
-.. include:: explain_-bo.rst_
-
-.. |Add_-d| unicode:: 0x20 .. just an invisible code
-.. include:: explain_-d.rst_
-
-.. |Add_-e| unicode:: 0x20 .. just an invisible code
-.. include:: explain_-e.rst_
-
-.. |Add_-f| unicode:: 0x20 .. just an invisible code
-.. include:: explain_-f.rst_
-
-.. |Add_-h| unicode:: 0x20 .. just an invisible code
-.. include:: explain_-h.rst_
-
-.. include:: explain_-icols.rst_
-
-.. include:: explain_-q.rst_
-
-.. |Add_nodereg| replace::
- Each block is the locus of points nearest the grid value location. Consider an example with
- **-R**\ 10/15/10/15 and **-I**\ 1: With **-r** or **-rp**, 10 <=
- (*x*,\ *y*) < 11 is one of 25 blocks; otherwise 9.5 <= (*x*,\ *y*)
- < 10.5 is one of 36 blocks.
-.. include:: explain_nodereg.rst_
-
-.. include:: explain_-w.rst_
-
-.. include:: explain_colon.rst_
-.. include:: explain_help.rst_
-.. include:: explain_precision.rst_
-
-Examples
---------
-
-To find 5 by 5 minute block mode from the ASCII data in ship_15.txt
-and output a binary table with double precision triplets, run::
-
- gmt blockmedian @ship_15.txt -R245/255/20/30 -I5m -bo3d > ship_5x5.b
-
-To determine the most frequently occurring values per 2x2 block using histogram binning, with
-data representing integer counts, try::
-
- gmt blockmode @ship_15.txt -R245/255/20/30 -I2 -r -C -D
-
-To determine the mode and L1 scale (MAD) on the mode per 10 minute bin and save these to two separate grids
-called field_z.nc and field_s.nc, run::
-
- gmt blockmode @ship_15.txt -I10m -R-115/-105/20/30 -E -Gfield_%s.nc -Azs
-
-See Also
---------
-
-:doc:`blockmean`,
-:doc:`blockmedian`, :doc:`gmt`,
-:doc:`gmt.conf`,
-:doc:`greenspline`,
-:doc:`nearneighbor`,
-:doc:`sphtriangulate`,
-:doc:`surface`,
-:doc:`triangulate`
diff --git a/6.2.0rc1/_sources/changes.rst.txt b/6.2.0rc1/_sources/changes.rst.txt
deleted file mode 100644
index d10f13dbab3..00000000000
--- a/6.2.0rc1/_sources/changes.rst.txt
+++ /dev/null
@@ -1,1670 +0,0 @@
-.. _changelog:
-
-=========
-Changelog
-=========
-
-New Features in GMT 6.2
-=======================
-
-GMT 6.2 includes a new module, new common option, general code and documentation improvements, and numerous
-bug fixes! Here are the general updates included in 6.2:
-
-#. Addition of :doc:`theme-settings` (sets of GMT defaults), with a default modern theme for modern mode, and
- :ref:`auto scaling options ` for many GMT defaults.
-#. New :doc:`animation 13 ` of seismic waveforms.
-#. Support for **+a**\ *angle* for y-axis as well as x-axis with the :ref:`-B axes settings `.
-#. General improvements to the automatic determination of frame attributes.
-#. New **+d**\ *divisor* modifier to the :ref:`-i option ` to simplify scaling of input values.
-#. Allow parsing of **-Jz**\ *1:zzzzzz* for vertical scale.
-#. New GMT configuration parameters :term:`MAP_FRAME_PERCENT`, :term:`COLOR_SET`, and :term:`COLOR_CPT`.
-#. Add support for reading variable in NetCDF-4 groups.
-#. Allow specifying the reciprocal increment for generating 1d arrays.
-#. Allow LaTeX expressions in single-line titles and Cartesian axes labels, add support for multi-line plot titles, and
- add support for subtitles.
-#. Many general documentation improvements.
-#. Various improvements to the API in support of developments taking place in the external wrappers (Python, Julia, Matlab).
-
-New Common Options in GMT 6.2:
-------------------------------
-
-#. :ref:`-w `: Convert selected coordinate to repeating cycles.
-
-New Modules in GMT 6.2:
------------------------
-
-#. :doc:`gmtbinstats`: Bin data and determine statistics per bin, with support for both hexagonal and rectangular tiling.
-
-New Core Module Features in GMT 6.2:
-------------------------------------
-
-#. :doc:`colorbar`: New **+x** and **+y** modifiers to the **-S** option for setting axis label and unit; Support
- slanted annotations with **-S**.
-#. :doc:`events`: New **-Z** option to animate geodesy and seismology symbols; New **-H** option to enable text label
- boxes; Support plotting lines as series of closely spaced circles.
-#. :doc:`gmtmath`: New **VPDF** operator.
-#. :doc:`gmtsplit`: New name for previous module splitxyz.
-#. :doc:`grd2xyz`: New modifier for the **-W** option to set the length unit used.
-#. :doc:`grdcut`: New **-F** option to clip a grid based on a polygon.
-#. :doc:`grdfft`: New **-Q** option for no wavenumber operations.
-#. :doc:`grdmath`: New **FISHER** and **VPDF** operators.
-#. :doc:`greenspline`, :doc:`grdinterpolate`: Enable writing of 3-D netCDF data cubes.
-#. :doc:`histogram`: New **-E** option for custom bar widths and optional shift; New **+b** modifier to **-C** to set
- color based on the bin value.
-#. :doc:`legend`: New **-M** option to handle both hidden and given information.
-#. :doc:`makecpt`, :doc:`grd2cpt`: Simplify the addition of category labels to CPT files with **-F**.
-#. :doc:`movie`: New modifiers to **-L** and **-P** to enable drop-shadow and rounded rectangular boxes.
-#. :doc:`plot`, :doc:`plot3d`: New **-H** option to scale the symbol size as well as the symbol pen outline attributes;
- Support sequential auto-colors for polygon fills or line pens.
-#. :doc:`rose`: New **-N** option to draw the equivalent circular normal distribution.
-#. :doc:`subplot`: New **-D** option to accept previous default plot settings.
-#. :doc:`ternary`: Add support for drawing lines and polygons.
-#. :doc:`text`: New **-S** option to cast shade beneath a text box.
-
-Supplement updates in GMT 6.2:
-------------------------------
-
-#. :doc:`coupe `: Updated syntax for the **-A** option.
-#. :doc:`coupe `, :doc:`meca `,
- :doc:`velo `: New scaling option **-H**; allow variable transparency; allow adjusting
- symbol color via intensity; allow setting symbol color using colormaps.
-#. :doc:`gmtgravmag3d `: Add option to create geometric bodies (spheres, prisms,
- ellipsoids, etc.) and compute their effect.
-#. :doc:`grdseamount `: Add polynomial seamount shape.
-
-Release of GMT 6.1.1
-====================
-
-The GMT 6.1.1 release adds no new features but fixes a number of bugs that have been reported
-since the release of 6.1. As such, it is a stable and recommended upgrade for all 6.1 users.
-For new features in 6.1.x in general, please read the following sections.
-
-New Features in GMT 6.1
-=======================
-
-GMT 6.1 may be a minor revision to 6.0 but packs quite a punch. For general
-changes, we mention
-
- #. Updated remote global data sets: Earth reliefs, crustal ages, land/ocean masks, and day/night imagery.
- The larger grid files (5x5 arc minutes and smaller resolutions) are now tiled and faster to download.
- #. Let *gmt.history*, *gmt.conf*, and *gmt.cpt* be hierarchical and maintained
- separately for figures, subplot panels, and insets in modern mode.
- #. Use a list of keywords (*separate,anywhere,lon_horizontal,lat_horizontal,
- tick_extend,tick_normal,lat_parallel*) instead of bit-sum for **MAP_ANNOT_OBLIQUE**.
- #. Let the macOS bundle be built with OpenMP support to accelerate some computational modules.
- #. Let GMT recognize MATLAB headers/comments via multiple **IO_HEADER_MARKER** characters.
- #. Let an explicitly signed grid cross size in **GMTCASE_MAP_GRID_CROSS_SIZE_PRIMARY** or
- **MAP_GRID_CROSS_SIZE_SECONDARY** mean centered (if positive) or asymmetrical (if negative) grid ticks.
- #. Add modifier **+v** for a *vertical* oblique Equator in -JO [horizontal].
- #. New **-B** modifier **+i** for placing internal frame annotations
- #. New **-B** modifier **+f** to turn on fancy geographic annotations.
- #. New polar projection (**-JP**) modifiers (**+f**\|\ **r**\|\ **t**\|\ **z**) adds new
- capabilities for annotating azimuths, depths or radii.
- #. Revise verbosity default levels and their names and abbreviations.
- #. Add Web-Mercator as new sphere that can be selected.
- #. Explore adding long-format GMT options (e.g., **--region**\ =\ *w/e/s/n*).
- #. Allow both **-i** and **-o** to specify an open-ended list of columns to end of record.
- #. API improvements to support the GMT/MEX, PyGMT, and GMT.jl environments.
-
-New Common Options in GMT 6.1:
-------------------------------
- #. **-l**: Add automatic legend entries from the modules :doc:`plot`, :doc:`plot3d`,
- :doc:`grdcontour` and :doc:`pscontour` in modern mode.
- #. **-q**\[**i**\|\ **o**\ ]: Select specific data rows to complement selection of data columns (via **-i**, **-o**).
-
-New Modules in GMT 6.1:
------------------------
-
-#. :doc:`batch`: Automate batch job processing by replicating a master script with job-specific parameters.
-#. :doc:`grdmix`: Blending and transforming grids and images, including manipulating transparency.
-#. :doc:`grdinterpolate`: Interpolate new 2-D grids or 1-D data series from a 3-D data cube.
-#. :doc:`grdgdal`: Execute GDAL raster programs (such as info, dem, grid, translate, rasterize or warp), from GMT.
-
-New Core Module Features in GMT 6.1:
-------------------------------------
-
-#. :doc:`begin`: Ignore the user's *gmt.conf* files normally included by using **-C**.
-#. :doc:`colorbar`: Option **-S** has been enhanced to handle bar appearance when **-B** is not used.
-#. :doc:`gmtget`: Options **-D**, **-I**, **-N**, and **-Q** handle download and query of remote data sets.
-#. :doc:`gmtmath`: New operators **RGB2HSV** and **HSV2RGB** for color manipulation.
-#. :doc:`gmtregress`: Let **-A** also be used to limit angles considered for LMS regressions.
-#. :doc:`gmtspatial`: New directive **-Sb** computes buffers around lines (via the optional GEOS library).
-#. :doc:`gmtvector`: Add vector operator **-Tt** that translates points by given distance in given direction.
-#. :doc:`grd2kml`: New option **-W** for adding contour overlays. Also rebuilt for global grids as well as
- to write PNG or JPG directly (depending on transparency) without going via *PostScript* conversion (only
- required if **-W** is used).
-#. :doc:`grdcontour`: Better handling of contour file that can now have unique angles and pens per contour.
-#. :doc:`grdconvert`: Enable scaling/translation services on output with **-Z**.
-#. :doc:`grdfill`: Implement minimum-curvature spline infill with **-As**.
-#. :doc:`grdfilter`: Let filter width optionally be a grid with variable widths.
-#. :doc:`grdgradient`: Add support for ambient light in **-N**, as in **-E**, and therefore via **-I**
- in :doc:`grdimage` and :doc:`grdview`.
-#. :doc:`grdimage`: Now **-I** may take a filename in addition to requests to derive intensities from it.
-#. :doc:`grdinfo`: Now **-C** also appends registration and grid type as last two output columns
- (0 = gridline, 1 = pixel registration; 0 = Cartesian, 1 = geographic).
-#. :doc:`grdmath`: New operators **DAYNIGHT** (for day/night terminator), **BLEND** (blend two grids using the weights
- from a third), **DOT** (dot product), and **RGB2HSV**, and **HSV2RGB** for color manipulations.
-#. :doc:`grdtrack`: Determine central peak in all crossections with **-F** (requires **-C**); let **-E+c** continue
- a track if next line is a direct continuation of previous line.
-#. :doc:`grdview`: Now **-I** may take a filename in addition to requests to derive intensities from it.
-#. :doc:`pscontour`: Better handling of contour file that can now have unique angles and pens per contour.
-#. :doc:`movie`: Add **-E** for an optional title sequence (with or without fading in/out), **-K** for fade in and
- fade out for main animation sequence, **-Sb** and **-Sf** can now take a PostScript layer instead of a script,
- and **-P** for adding one of six progress indicators.
-#. :doc:`nearneighbor`: Let **-Nn** call GDAL's nearest neighbor algorithm.
-#. :doc:`sample1d`: Adds a smoothing cubic spline via **-Fs**\ *p* (for a fit parameter *p*), with optional weights (**-W**).
-#. :doc:`surface`: Let **-D** take a modifier **+z**\ *value* to set a constant breakline level.
-
-Supplement updates in GMT 6.1:
-------------------------------
-#. *seis*: Update all module syntax to GMT 6 standards and make their i/o more robust.
-#. *potential*: :doc:`grdflexure ` adds new transfer functions now documented with equations.
-
-New Features in GMT 6.0
-=======================
-
-GMT 6.0 is a major revision of GMT and its eco-system. At the top level,
-there are numerous changes:
-
-#. An entirely new and permanent address with a brand new website layout and
- organization: http://www.generic-mapping-tools.org.
-#. A new discussion forum at http://forum.generic-mapping-tools.org.
-#. A data server in Hawaii (oceania.generic-mapping-tools.org) with plans
- for new mirror servers around the world. This is where the remote files
- that start with @ come from.
-#. A new way to use GMT (*modern* mode) that eliminates many of the
- aspects of classic GMT that perplexes users. In modern mode, PostSCript
- is no longer the default graphics output format and most modules that
- had names starting with **ps** have had that prefix removed. In addition,
- a few modules have entirely different names in modern mode (*psxy* is *plot*,
- *psxyz* is *plot3d*, and *psscale* is *colorbar*).
-#. The default mode remains *classic*, the only mode previously available. All
- existing classic mode GMT 4 and 5 scripts will run as before.
-
-Modern mode modules in GMT 6.0
-------------------------------
-
-GMT modern mode is supported by five new commands:
-
-#. :doc:`begin` starts a new GMT modern mode session.
-#. :doc:`figure` names a new GMT figure in the current session
-#. :doc:`subplot` starts, manages, and ends subplots in a figure.
-#. :doc:`inset` starts, manages and ends an inset in a figure or subplot.
-#. :doc:`end` ends a GMT modern mode session.
-
-Here, **gmt begin** and **gmt end** begins and ends a modern mode session, hence
-it is not possible to get entangled in modern mode if you prefer to run classic
-mode scripts. There are three additional commands that are associated with modern
-mode; the first two also work in classic mode since they are typically not useful in scripts:
-
-#. :doc:`docs` gives browser access to any GMT module documentation.
-#. :doc:`clear` removes various session files or cached data files.
-#. :doc:`movie` simplifies the construction of animated sequences.
-
-The entire cookbook, tutorial and gallery examples all use modern mode. In modern mode,
-the default graphics format is PDF and scripts can open up the plots in the default
-viewer automatically.
-
-New modules in GMT 6.0
-----------------------
-
-Apart from modern mode we have added a few modules that are accessible to all users:
-
-#. :doc:`events` makes a snapshot of all time-dependent events.
-#. :doc:`/supplements/geodesy/earthtide` (supplement) computes the solid Earth tides.
-
-General improvements in GMT 6.0
--------------------------------
-
-While our focus has been almost exclusively on GMT modern mode, there is a
-range of new capabilities have been added to all of GMT; here is a
-summary of these changes:
-
-* The :doc:`gmt` driver has several new options to display the latest GMT citation, DOI,
- the current data server, and the ability to create a blank modern mode shell script or
- DOS batch template.
-
-* A new common option **-l** lets some modules (currently, only :doc:`plot` and :doc:`plot3d`)
- build an automatic legend. Most legends are now perfectly dimensions and aligned using
- the PostScript language.
-
-* We now consider untouched pixels when rendering PostScript to be opaque, hence automatic
- cropping to tightest bounding box will recognize areas painted white as different from opaque.
-
-* We have a much improved scheme for distinguishing between minus-signs and hyphens when typesetting
- text since these are different glyphs in various character sets.
-
-* Modern mode can produce any of several graphics :ref:`formats `. While the default
- is PDF, this can be changed via a new GMT defaults :term:`GMT_GRAPHICS_FORMAT`.
- The conversion from PostScript to the desired format can be modified via another new GMT defaults
- setting :term:`PS_CONVERT`.
-
-* We have relaxed the *style* syntax for pens so that the :*phase* part is optional, with a default of 0.
-
-* We have rearranged our supplements a bit: We have split meca to seis and geodesy and moved new module
- :doc:`/supplements/geodesy/earthtide` and existing module :doc:`/supplements/geodesy/gpsgridder` to
- the geodesy supplement. Also, :doc:`dimfilter` has moved to the core and we have remove the empty misc supplement.
-
-* In most modules that need to set up an equidistant 1-D array we now use the same machinery to parse
- options and created the arrays through a redesigned **-T** option. For details on array creation,
- see `Generate 1D Array`.
-
-* We have a new GMT common option **-j** that clarifies how to select flat Earth, great circle,
- and geodesic calculations and thus eliminates awkward, sign-based increments.
-
-* The GMT common option **-r** used to always set pixel-registration for grids but it can now
- take the optional directives **g** or **p** to specify the desired registration.
-
-* We now offer slanted annotations via the **-B** option, using the modifier **+a**\ *angle*.
- We have added auto-computed annotation and tick intervals for time-axes. There is also the
- frame specifications **lrbtu** that just draw the corresponding frames without ticking.
-
-* We offer a wide range of new color tables, including the scientific color maps from Fabio Crameri,
- and we now use Google's *turbo* as the default GMT color table, and *geo* for topographic DEMs.
-
-* Modules that read data tables can now be given an ESRI shapefile directly.
-
-* GMT common options **-X** and **-Y** may now be specified using fractions of current plot's
- dimensions.
-
-* When specifying master CPTs one can add the modifier **+i**\ *dz* to ensure any automatically computed
- range is rounded into multiples of *dz*.
-
-* Let common option **-a** with no arguments place add all aspatial items to the input record.
-
-* We have added *dashdot* as a new shorthand style name.
-
-* Map regions can now be specified via **-R**\ *ISOcode* using the 2-char ISO country codes, with modifiers
- to round the resulting exact regions into multiples of given increments. Under modern mode, new shorthand
- options **-Re** and **-Ra** will examine the data files given and determine the exact or approximate region,
- respectively.
-
-Module enhancements in GMT 6.0
-------------------------------
-
-Several modules have obtained new options to extend their capabilities:
-
-* :doc:`grdfilter` now accepts the **-r** option to set grid node registration.
-
-* :doc:`clip` has a new option **-W**\ *pen* to draw the clip path as well as
- setting up clipping.
-
-* :doc:`plot` takes a new modifier **+s** to **-Sr** to specify a rectangle via opposite
- diagonal corners. Users can now also specify a color indirectly via a CPT (i.e., **-C**)
- and a new **-Z**\ *value* option (instead of directly via **-G**). The wedge symbol (**-Sw**) has been greatly upgraded to
- offer windshield and spider-graph symbols. There is now also a new QR code symbol
- that will redirect to the GMT homepage. We also added a **+h** modifier for quoted lines
- when the user wants to hide the line. Finally, symbols **-SE-**, **-SJ-** and **-SW** can
- now all handle geographic units.
-
-* :doc:`plot3d` also allows users to specify a color indirectly via a CPT (i.e., **-C**)
- and a new **-Z**\ *value* option. The wedge symbol (**-Sw**) has been greatly upgraded to
- offer windshield symbols and spider-graph symbols. There is now also a new QR code symbol
- that will redirect to the GMT homepage.
-
-* :doc:`text` can now handle lack of input files when **-F+c+t** is used to give both a string and
- its placement.
-
-* In modern mode, both :doc:`makecpt` and :doc:`grd2cpt` require a new option **-H** to actually
- write the resulting CPT to standard output (by default they write a hidden CPT that modern mode
- modules know where to find automatically). **makecpt** also has a new option **-S** to create a
- symmetric color table given the range in a data file given via **-T**.
-
-* :doc:`gmtmath` has a new operator **PHI** that computes the
- golden ratio. We now allow **-Cx** and **-Cy** to represent **-C**\ 0 and **-C** \1.
-
-* :doc:`grdmath` also has a new operator **PHI** that computes the
- golden ratio, as well as **NODE** and **NODEP** operators, and added more
- OpenMP support for operators **LDISTG**, **PSI**, **TCRIT**, **PLM**, and **PLMg**.
-
-* :doc:`rose` can now take **-JX** instead of **-S** so all plot modules take **-J**.
-
-* :doc:`grdedit` can now take **-J** and add meta-data to the grid header.
-
-* :doc:`gmt2kml` takes new option **-E** to extract altitudes stored in the Extended data property.
-
-* :doc:`/supplements/seis/polar` and :doc:`/supplements/seis/meca` can let beachball size scale
- with magnitude. These and other plotting tools in seis can now accept the 3-D projection setting via **-p**.
-
-* Both :doc:`grdcontour` and :doc:`contour` can now accept a list of comma-separated contours instead
- of always creating equidistant lists. Also, if no contours are specified we auto-compute a reasonable
- selection of 10 to 20 contours. We also added **-Ln**\|\ **N**\|\ **p**\|\ **P** for selecting
- just negative or positive contours. Finally, we added modifier **+z** to **-Q** to exclude the zero-contour
- entirely.
-
-* :doc:`mapproject` has an enhanced option **-W** that can return reference point coordinates.
- Also, either **-J+**\ *proj* or **-J**\ *EPSG*:n can now be given.
-
-* :doc:`grdproject` also takes **-J**\ +*proj* or **-J**\ *EPSG*:n.
-
-* :doc:`project` has a new option **-Z** for generating the path of a specified ellipse.
-
-* :doc:`dimfilter` now writes an error analysis template to standard output via the **-L** option.
-
-* :doc:`surface` can now apply a data mask computed from the data distribution directly rather than
- having to make separate calls to :doc:`grdmask` and :doc:`grdmath`. Also, the **-A** option now
- has a directive **m** to select Flat Earth scaling via the mean latitude.
-
-* The block-modules :doc:`blockmean`, :doc:`blockmedian`, and :doc:`blockmode` have new options
- **-A** and **-G** which allow them to write one or more grids directly.
-
-* :doc:`gmtinfo` has a new option **-a** which allows it to report aspatial column names, and
- **-Ib** to output the boundary polygon for the data.
-
-* :doc:`/supplements/spotter/backtracker` can now do reconstruction given individual hotspot
- drift histories. We also added **-M** for fractional stage rotations.
-
-* :doc:`/supplements/spotter/grdrotater` has an option **-A** to override region of output grid.
-
-* :doc:`/supplements/spotter/polespotter` has a new option **-Cx**\ *file*.
-
-* :doc:`psconvert` has a new option **-H** for automatic sub-pixel rendering and scaling. Under
- modern mode we also have option **-M** for sandwiching a PostScript plot between two other plots.
-
-* We added modifiers **+a** and **+i** to option **-Z** in :doc:`gmtselect`.
-
-* :doc:`grdcut` has new option **-ZN** to strip off outside rows and cols that are all NaN.
-
-* :doc:`grdinfo` now accepts **-o** when **-Cn** is in effect.
-
-* Enable :doc:`basemap` **-L** to do Cartesian projection scales, even vertical.
-
-* Improve the vertical scale bar for :doc:`wiggle` as well.
-
-* :doc:`gmtconvert` has new option **-W** that attempts to convert trailing text to numbers, if possible.
- Append modifier **+n** to suppress NaN columns. We also added **-N**\ *column*\ [**+a**\|\ **d**] to
- sort a table based on specified *column*. Finally, **-EM**\ *stride* is similar to **-Em** but it will
- always include the last point.
-
-* :doc:`grdlandmask` **-E** will trace nodes being positioned exactly on polygon border.
-
-* :doc:`histogram` can now run in reverse cumulative mode via **-Qr**.
-
-New Features in GMT 5.4
-=======================
-
-Between 5.3 and 5.4 we continued to work on the underlying API
-needed to support the modules and especially the external interfaces
-we are building toward MATLAB, Julia and Python. We have introduced the use of
-static analyzers to fix any code irregularities and we continue to submit
-our builds to Coverity for similar reasons. We have also made an effort
-to standardize GMT non-common option usage across the suite.
-Nevertheless, there have been many user-level enhancements as well.
-Here is a summary of these changes in three key areas:
-
-New modules in GMT 5.4
-----------------------
-
-We have added a new module to the GMT core called
-:doc:`ternary`.
-This module allows for the construction of ternary diagram, currently
-restricted to symbols (i.e., a plot-like experience but for ternary data).
-The *mgd77* supplement has gained a new tool :doc:`mgd77header `
-for creating a valid MGD77-format header from basic metadata and information
-determined from the header-less data file.
-
-General improvements in GMT 5.4
--------------------------------
-
-A range of new capabilities have been added to all of GMT; here is a
-summary of these changes:
-
-* We have added a new lower-case GMT common option. Programs that read
- ASCII data can use **-e** to only select data records that match a
- specified pattern or regular expression.
-
-* All modules can now read data via external URL addresses. This works
- by using libcurl to access an external file and save it to the users'
- GMT cache directory. This directory can be specified via a new GMT
- defaults called :term:`DIR_CACHE` (and defaults to
- the sub-directory cache under the **$GMT_USERDIR** directory [~/.gmt]).
- Subsequent use of the same URL will be read from the cache (except
- if explicitly removed by the user). An exception is CGI Get Commands
- which will be executed anew each time. Both the user directory and
- the cache directory will be created if they do not exist.
-
-* Any reference to Earth topographic/bathymetric relief files called
- **@earth_relief_**\ *res*\ **.grd** will automatically obtain the grid
- from the GMT data server. The resolution *res* allows a choice among
- 13 command grid spacings: 60m, 30m, 20m, 15m, 10m, 06m, 05m, 04m, 03m, 02m,
- 01m, 30s, and 15s (with file sizes 111 kb, 376 kb, 782 kb, 1.3 Mb, 2.8 Mb,
- 7.5 Mb, 11 Mb, 16 Mb, 27 Mb, 58 Mb, 214 Mb, 778 Mb, and 2.6 Gb respectively).
- Once one of these have been downloaded any future reference will simply
- obtain the file from **$GMT_USERDIR** (except if explicitly
- removed by the user).
-
-* We are laying the groundwork for more dynamic documentation. At present,
- the examples on the man pages (with the exception of *basemap* and *coast*)
- cannot be run by cut and paste since they reference imaginary data sets.
- These will soon appear with filenames starting in @ (e.g., @hotspots.txt),
- and when such files are found on the command line it is interpreted to be
- a shorthand notation for the full URL to the GMT cache data server.
-
-* We have added four new color tables inspired by matplotlib to the collection.
- These CPTs are called plasma, magma, inferno, and viridis.
-
-* We have updated the online documentation of user-contributed custom symbols and
- restored the beautiful biological symbols for whales and dolphins created by
- Pablo Valdés during the GMT4 era. These are now complemented by new custom
- symbols for structural geology designed by José A. Álvarez-Gómez.
-
-* The :doc:`PSL ` library no longer needs run-time files to configure the
- list of standard fonts and character encodings, reducing the number of configure
- files required.
-
-* The :doc:`gmt.conf` files produced by gmt set will only write parameters that differ
- from the GMT SI Standard settings. This means most gmt.conf files will just
- be a few lines.
-
-* We have deprecated the **-c**\ *copies* option whose purpose was to modify the
- number of copies a printer would issue give a PostScript file. This is better
- controlled by your printer driver and most users now work with PDF files.
-
-* The **-p** option can now do a simple rotation about the z-axis (i.e., not a
- perspective view) for more advanced plotting.
-
-* The placement of color scales around a map can now be near-automatic, as
- the **-DJ** setting now has many default values (such as for bar length,
- width, offsets and orientation) based on which side you specified. If you
- use this option in concert with **-B** to turn off frame annotation on the
- side you place the scale bar then justification works exactly.
-
-* The **-i** option to select input columns can now handle repeat entries,
- e.g., -i0,2,2,4, which is useful when a column is needed as a coordinate
- *and* for symbol color or size.
-
-* The vector specifications now take one more modifier: **+h**\ *shape*
- allows vectors to quickly set the head shape normally specified via
- :term:`MAP_VECTOR_SHAPE`. This is particularly useful
- when the symbol types are given via the input file.
-
-* The custom symbol macro language has been strengthened and now allows all
- angular quantities to be variables (i.e., provided from your data file as
- extra columns), the pen thickness can be specified as relative (and thus
- scale with the symbol size at run-time), and a symbol can internally switch
- colors between the pen and fill colors given on the command line.
-
-* We have reintroduced the old GMT4 polygon-vector for those who fell so hard
- in love with that symbol. By giving old-style vector specifications you
- will now get the old-style symbol. The new and superior vector symbols
- will require the use of the new (and standard) syntax.
-
-Module enhancements in GMT 5.4
-------------------------------
-
-Several modules have obtained new options to extend their capabilities:
-
-* :doc:`gmt` has new session management option that lets you clear various
- files and cache directories via the new commands
- **gmt clear** *all*\|\ *history*\|\ *conf*\|\ *cache*.
-
-* :doc:`gmt2kml` adds option **-Fw** for drawing wiggles along track.
-
-* :doc:`gmtinfo` adds option **-F** for reporting the number of tables,
- segments, records, headers, etc.
-
-* :doc:`gmtmath` will convert all plot dimensions given on the command line
- to the prevailing length unit set via :term:`PROJ_LENGTH_UNIT`.
- This allows you to combine measurements like 12c, 4i, and 72p. The module
- also has a new **SORT** operator for sorting columns and **RMSW** for weighted
- root-mean-square.
-
-* :doc:`gmtwhich` **-G** will download a file from the internet (as discussed
- above) before reporting the path to the file (which will then be in the
- user's cache directory).
-
-* :doc:`grd2xyz` can now write weights equal to the area each node represents
- via the **-Wa** option.
-
-* :doc:`grdgradient` can now take a grid of azimuths via the **-A** option.
-
-* :doc:`grdimage` and :doc:`grdview` can now auto-compute the intensities
- directly from the required input grid via **-I**, and this option now
- supports modifiers **+a** and **+n** for changing the options of the
- grdgradient call within the module.
-
-* :doc:`grdinfo` adds option **-D** to determine the regions of all the
- smaller-size grid tiles required to cover the larger area. It also take
- a new argument **-Ii** for reporting the exact region of an img grid.
- Finally, we now report area-weighted statistics for geographic grids,
- added **-Lp** for mode (maximum-likelihood) estimate of location and scale,
- and **-La** for requesting all of the statistical estimates.
-
-* :doc:`grdmath` has new operators **TRIM**, which will set all grid values
- that fall in the specified tails of the data distribution to NaN, **NODE**,
- which will create a grid with node indices 0 to (nx*ny)-1, and **RMSW**,
- which will compute the weighted root-mean-square.
-
-* :doc:`makecpt` and :doc:`grd2cpt` add option **-Ws** for producing
- wrapped (cyclic) CPT tables that repeat endlessly. New CPT keyword
- **CYCLIC** controls if the CPT is cyclic.
-
-* :doc:`mapproject` adds a new **-Z** option for temporal calculations based
- on distances and speeds, and has been redesigned to allow several outputs
- by combining the options **-A**, **-G**, **-L**, and **-Z**.
-
-* :doc:`basemap` has a new map-inset (**-D**) modifier **+t** that will
- translate the plot origin after determining the lower-left corner of the
- map inset.
-
-* :doc:`histogram` has a new **-Z** modifier **+w** that will
- accumulate weights provided in the 2nd input column instead of pure counts.
-
-* :doc:`rose` adds option **-Q** for setting the confidence level used
- for a Rayleigh test for uniformity of direction. The **-C** option also
- takes a new modifier **+w**\ *modfile* for storing mode direction to file.
-
-* :doc:`gmt_shell_functions.sh` adds numerous new functions to simplify the
- building of animation scripts, animated GIF and MP4 videos, launching
- groups of jobs across many cores, packaging KMLs into a single KMZ archive,
- and more.
-
-API changes in GMT 5.4
-----------------------
-
-We have introduced one change that breaks backwards compatibility for users of
-the API functions. We don't do this lightly but given the API is still considered
-beta it was the best solution. Function GMT_Create_Data now requires the mode to
-be **GMT_IS_OUTPUT** (an new constant) if a dummy (empty) container should be
-created to hold the output of a module. We also added two new API functions
-GMT_Duplicate_Options and GMT_Free_Option to manage option lists, and added
-the new constants **GMT_GRID_IS_CARTESIAN** and **GMT_GRID_IS_GEO** so that
-external tools can communicate the nature of grid written in situations where there
-are no projections involved (hence GMT does not know a grid is geographic).
-Passing this constant will be required in MB-System.
-
-Backwards-compatible syntax changes
------------------------------------
-
-We strive to keep the GMT user interface consistent. The common options help
-with that, but the module-specific options have often used very different
-forms to achieve similar goals. We have revised the syntax of numerous options
-across the modules to use the common *modifier* method. However, as no GMT
-users would be happy that their
-scripts no longer run, these changes are backwards compatible. Only the new
-syntax will be documented but old syntax will be accepted. Some options are
-used across GMT and will get a special mention first:
-
-* Many modules use **-G** to specify the fill (solid color or pattern).
- The pattern specification has now changed to be
- **-Gp**\|\ **P**\ *pattern*\ [**+b**\ *color*][**+f**\ *color*][**+r**\ *dpi*]
-
-* When specifying grids one can always add information such as grid type, scaling,
- offset, etc. This is now done using a cleaner syntax for grids:
- gridfile[=\ *ID*\ [**+s**\ *scale*][**+o**\ *offset*][**+n**\ *invalid*]].
-
-Here is a list of modules with revised options:
-
-* :doc:`grdcontour` now expects **-Z**\ [**+**\ *scale*][**+o**\ *offset*][**+p**].
-
-* In :doc:`grdedit` and :doc:`xyz2grd`, the mechanism to change a grid's
- metadata is now done via modifiers to the **-D** option, such as
- **+x**\ *xname*, **+t**\ *title*, etc.
-
-* :doc:`grdfft` has changed to **-E**\ [**+w**\ [**k**]][**+n**].
-
-* :doc:`grdgradient` modifies the syntax of **-E** and **-N** by introducing modifiers,
- i.e., **-E**\ [**m**\|\ **s**\|\ **p**]\ *azim/elev*\ [**+a**\ *ambient*][**+d**\ *diffuse*][**+p**\ *specular*][**+s**\ *shine*] and
- **-N**\ [**e**\|\ **t**][*amp*][**+s**\ *sigma*][**+o**\ *offset*].
-
-* :doc:`grdtrend` follows :doc:`trend1d` and now wants **-N**\ *model*\ [**+r**].
-
-* :doc:`mapproject` introduces new and consistent syntax for **-G** and **-L** as
- **-G**\ [*lon0*/*lat0*][**+a**][**+i**][**+u**\ [**+**\|\ **-**]\ *unit*][**+v**] and
- **-L**\ *line.xy*\ [**+u**\ [**+**\|\ **-**]\ *unit*][**+p**].
-
-* :doc:`project` expects **-G**\ *inc*\ [/*lat*][**+h**].
-
-* :doc:`rose` now wants **-L**\ [*wlabel*\ ,\ *elabel*\ ,\ *slabel*\ ,\ *nlabel*] to
- match the other labeling options.
-
-* :doc:`text` now expects **-D**\ [**j**\|\ **J**]\ *dx*\ [/*dy*][**+v**\ [*pen*]].
-
-* :doc:`plot` expects **-E**\ [**x**\|\ **y**\|\ **X**\|\ **Y**][**+a**][**+cl**\|\ **f**][**+n**][**+w**\ *cap*][**+p**\ *pen*].
-
-* :doc:`trend2d` follows :doc:`trend1d` and now wants **-N**\ *model*\ [**+r**].
-
-
-New Features in GMT 5.3
-=======================
-
-Between 5.2 and 5.3 we spent much time working on the underlying API
-needed to support the modules and especially the external interfaces
-we are building toward MATLAB and Python. Nevertheless, there have
-been many user-level enhancements as well.
-Here is a summary of these changes in three key areas:
-
-New modules in GMT 5.3
-----------------------
-
-We have added a new module to the GMT core called
-:doc:`solar`.
-This module plots various day-light terminators and other sunlight parameters.
-
-Two new modules have been added to the *spotter* supplement:
-The first is :doc:`gmtpmodeler`.
-Like :doc:`grdpmodeler` it evaluates plate
-tectonic model predictions but at given point locations locations instead of
-on a grid. The second is :doc:`rotsmoother`
-which smooths estimated rotations using quaternions.
-
-Also, the *meca* supplement has gained a new tool :doc:`sac `
-for the plotting of seismograms in SAC format.
-
-Finally, we have added :doc:`gpsgridder`
-to the *potential* supplement. This tool is a Green's function gridding module
-that grids vector data assumed to be coupled via an elastic model. The prime
-usage is for gridding GPS velocity components.
-
-General improvements in GMT 5.3
--------------------------------
-
-There are many changes to GMT, mostly under the hood, but also changes that
-affect users directly. We have added four new examples and one new animation
-to highlight recently added capabilities. There have been many bug fixes
-as well. For specific enhancements, we have:
-
-* All GMT-distributed color palette tables (CPTs, now a total of 44) are
- *dynamic* and many have a *hinge* and a default *range*. What this means
- is that the range of all CPTs have been normalized to 0-1, expect that
- those with a hinge are normalized to -1/+1, with 0 being the normalized
- hinge location. CPTs with a hinge are interpolated separately on either
- side of the hinge, since a hinge typically signifies a dramatic color
- change (e.g., at sea-level) and we do not want that color change to be
- shifted to some other *z*-value when an asymmetrical range is being
- requested. In situations where no range is specified then some CPTs
- will have a default range and that will be substituted instead. The
- tools :doc:`makecpt` and :doc:`grd2cpt` now displays more meta-data
- about the various CPTs, including values for hinge, range, and the
- color-model used.
-
-* We have consolidated how map embellishments are specified. This group
- includes map scales, color bars, legends, map roses, map insets,
- image overlays, the GMT logo, and a background panel. A new section in the Cookbook is
- dedicated to these items and how they are specified. Common to all is
- the concept of a *reference point* relative to which the item is
- *justified* and *offset*.
-
-* We continue to extend support for OpenMP in GMT. New modules that are
- OpenMP-enabled are :doc:`grdgradient`, :doc:`grdlandmask`, and :doc:`sph2grd`.
-
-* :doc:`blockmean`, :doc:`blockmedian` and :doc:`blockmode` have a new
- modifier **+s** to the **-W** option. When used we expect 1-sigma
- uncertainties instead of weights and compute weight = 1/sigma.
-
-* :doc:`filter1d`: can now compute high-pass filtered output via a new
- **+h** modifier to the filter settings, similar to existing capability
- in :doc:`grdfilter`.
-
-* :doc:`gmtconvert` has a new option (**-F**) for line segmentation and
- network configuration. Also, the **-D** option has a new modifier **+o**
- that sets the origin used for the numbering of tables and segments.
-
-* :doc:`gmtinfo` has a new option **-L** for finding the common bounds
- across multiple files or segments. Also, the **-T** option has been
- modified (while still being backwards compatible) to allow *dz* to be
- optional, with modifiers **+s** forcing a symmetric range and **+a**
- offering *alpha*-trimming of the tails before estimating the range.
-
-* :doc:`gmtmath` has gained new operators **VAR**,
- **RMS**, **DENAN**, as well as the weighted statistical operators
- **LMSSCLW**, **MADW**, **MEANW**, **MEDIANW**, **MODEW**, **PQUANTW**,
- **STDW**, and **VARW**. Finally, we added a **SORT** operator that lets
- you sort an entire table in ascending or descending order based on the
- values in a selected column.
-
-* :doc:`gmtselect` has a new option **-G** for selecting based on a mask grid.
- Points falling in bins whose grid nodes are non-zero are selected (or not if **-Ig**)
-
-* :doc:`gmtspatial` has two new modifiers for the **-Q** option that allow
- output segments to be limited based on the segment length (or area for
- polygons) as well as sorting the output in ascending or descending order.
-
-* :doc:`grd2cpt` existing **-F** option now takes a new modifier **+c**
- for writing a discrete palette using the categorical format.
-
-* :doc:`grdedit` can now reset text items in the header via **-D** by
- specifying '-'. Also, new **-C** option can be used to reset the
- command history in the header.
-
-* :doc:`grdfft` has a new modifier to the **-E** option that allows for more
- control of the power normalization for radial spectra.
-
-* :doc:`grdmath` also has the new operators **VAR**,
- **RMS**, **DENAN**, as well as the weighted statistical operators
- **LMSSCLW**, **MADW**, **MEANW**, **MEDIANW**, **MODEW**, **PQUANTW**,
- **STDW**, and **VARW**. In addition it gains a new
- **AREA** operator which computes the gridcell area (in km\ :sup:`2` if the
- grid is geographic). Finally, operators **MEAN**, **MEDIAN**, etc.,
- when working on a geographic grid, will weight the result using the
- **AREA** function for proper spherical statistics.
-
-* :doc:`grdvolume` can now accept **-Cr**\ *cval* which will evaluate
- the volume between *cval* and the grid's minimum value.
-
-* :doc:`greenspline` now offers a new **-E** option that evaluates the
- model fit at the input data locations and optionally saves the model
- misfits to a secondary output file.
-
-* :doc:`makecpt` can also let you build either a discrete or continuous custom
- color palette table from a comma-separated list of colors and
- *z*-values provided via a file, an equidistant setup, or comma-separated list.
- The **-F** option now takes a new modifier **+c** for writing a discrete
- palette using the categorical format.
-
-* :doc:`text` has new modifiers to its **-F** option that allows users
- to generate automatic labels such as record numbers of formatting of a
- third data column into a textual representation. We also allow any
- baseline angles to be interpreted as *orientations*, i.e., they will be
- modified to fall in the -90/+90 range when **-F**\ ...\ **+A** is set.
-
-* :doc:`rose` can now control the attributes of vectors in a windrose
- diagram via **-M**.
-
-* :doc:`plot` have seen numerous enhancements. New features include
- *decorated* lines, which are similar to quoted lines except we place
- symbols rather than text along the line. Users also gain new controls
- over the plotting of lines, including the ability to add vector heads
- to the line endings, to trim back lines by specified amounts, and to
- request a Bezier spline interpolation in PostScript (see enhanced
- **-W** option). A new option (**-F**) for line segmentation and networks
- have also been added. Various geographic symbols (such as ellipses; **-SE**,
- rotatable rectangles **-SJ**; and geo-vectors **-S=**) can now take size in geographic
- dimensions, including a new geo-wedge symbol. We also offer one more
- type of fault-slip symbol, using curved arrow heads. Also the arrow
- head selections now include inward-pointing arrows. Custom symbols
- may now simply be a preexisting EPS figure. Many of these enhancements
- are also available in :doc:`plot3d`.
-
-* The spotter supplement now comes with the latest rotation files from
- EarthByte, U. of Sydney.
-
-
-The API
--------
-
-We have spend most of our time strengthening the API, in particular in support
-of the GMT/MATLAB toolbox. A few new API functions have been added since the
-initial release, including GMT_Get_Pixel, GMT_Set_Index, GMT_Open_VirtualFile,
-GMT_Close_VirtualFile, GMT_Read_VirtualFile, GMT_Read_Group, and GMT_Convert_Data;
-see the API :ref:`api` for details.
-
-
-New Features in GMT 5.2
-=======================
-
-While the GMT 5.1-series has seen bug-fixes since its release, new features were
-only added to the 5.2-series. All in all, almost 200 new features (a combination
-of new programs, new options, and enhancements) have been implemented.
-Here is a summary of these changes in six key areas:
-
-New modules in GMT 5.2
-----------------------
-
-There are two new modules in the core system:
-
-:doc:`gmtlogo` is modeled after the shell script with the same
-name but is now a regular C module that can be used to add the
-GMT logo to maps and posters.
-
-:doc:`gmtregress` determines linear regressions for data sets using
-a variety of misfit norms and regression modes.
-
-Four new modules have also been added to the *potential* supplement:
-
-:doc:`gmtflexure `:
- Compute the elastic flexural response to a 2-D (line) load.
-
-:doc:`grdflexure `:
- Compute the flexural response to a 3-D (grid) load, using a variety
- or rheological models (elastic, viscoelastic, firmoviscous).
-
-:doc:`talwani2d `:
- Compute a profile of the free-air gravity, geoid or vertical gravity gradient anomaly
- over a 2-D body given as cross-sectional polygons.
-
-:doc:`talwani3d `:
- Compute a grid or profile of the free-air gravity, geoid or vertical gravity gradient anomaly
- over a 3-D body given as horizontal polygonal slices.
-
-In addition, two established modules have been given more suitable names
-(however, the old names are still recognized):
-
-:doc:`grdconvert`
- Converts between different grid formats.
- Previously known as grdreformat (this name is recognized
- when GMT is running in compatibility mode).
-
-:doc:`psconvert`
- Converts from PostScript to PDF, SVG, or various raster image formats.
- Previously known as ps2raster (this name is recognized
- when GMT is running in compatibility mode).
-
-Finally, we have renamed our PostScript Light (PSL) library from psl
-to PostScriptLight to avoid package name conflicts. This library will eventually
-become decoupled from GMT and end up as a required prerequisite.
-
-New common options in GMT 5.2
------------------------------
-
-We have added two new lower-case GMT common options:
-
-* Programs that need to specify which values should represent "no data"
- can now use **-d**\ [**i**\|\ **o**]\ *nodata*. For instance, this
- option replaces the old **-N** in :doc:`grd2xyz` and :doc:`xyz2grd`
- (but is backwards compatible).
-
-* Some modules are now using OpenMP to spread computations over all
- available cores (only available if compiled with OpenMP support).
- Those modules will offer the new option **-x**\ [[-]\ *n*] to reduce
- how many cores to assign to the task. The modules that currently
- have this option are :doc:`greenspline`, :doc:`grdmask`, :doc:`grdmath`,
- :doc:`grdfilter`, :doc:`grdsample`, :doc:`sph2grd`, the potential supplement's
- :doc:`grdgravmag3d `,
- :doc:`talwani2d ` and
- :doc:`talwani3d `, and the x2sys
- supplement's :doc:`x2sys_solve `.
- This list will grow longer with time.
-
-New default parameters in GMT 5.2
----------------------------------
-
-There have been a few changes to the GMT Defaults parameters. All changes
-are backwards compatible:
-
-* :term:`FORMAT_FLOAT_MAP` now allows the use %'g to get comma-separated groupings
- when integer values are plotted.
-
-* :term:`FORMAT_FLOAT_OUT` can now accept a space-separated list of formats
- as shorthand for first few columns. On output it will show the formats
- in effect for multiple columns.
-
-* :term:`GMT_LANGUAGE` has replaced the old parameter **TIME_LANGUAGE**.
- Related to this, the files share/time/\*.d have been moved and renamed to
- share/localization/\*.txt and now include a new section
- or cardinal points letter codes.
-
-* :term:`IO_SEGMENT_BINARY` is a new parameter that controls how binary records
- with just NaNs should or should not be interpreted as segment headers.
-
-* :term:`PROJ_GEODESIC` was added to control which geodesic calculation should be
- used. Choose among Vincenty [Default], Andoyer (fast approximate geodesics),
- and Rudoe (from GMT4).
-
-* :term:`TIME_REPORT` now has defaults for absolute or elapsed time stamps.
-
-Updated common options in GMT 5.2
----------------------------------
-
-Two of the established GMT common options have seen minor improvements:
-
-* Implemented modifier **-B+n** to *not* draw the frame at all.
-
-* Allow oblique Mercator projections to select projection poles in the
- southern hemisphere by using upper-case selectors **A**\|\ **B**\|\ **C**.
-
-* Added a forth way to specify the region for a new grid via the new
- **-R**\ [**L**\|\ **C**\|\ **R**][**T**\|\ **M**\|\ **B**]\ *x0*/*y0*/*nx*/*ny*
- syntax where you specify an reference point and number of points in the two
- dimensions (requires **-I** to use the increments). The optional justification
- keys specify how the reference point relate to the grid region.
-
-General improvements in GMT 5.2
--------------------------------
-
-Several changes have affects across GMT; these are:
-
-* Added optional multi-threading capabilities to several modules, such as
- :doc:`greenspline`, :doc:`grdfilter`, :doc:`grdmask`, :doc:`grdsample`,
- the potential supplement's :doc:`grdgravmag3d `,
- :doc:`talwani2d ` and
- :doc:`talwani3d ` and x2sys's :doc:`x2sys_solve `.
-
-* Optional prerequisite LAPACK means SVD decomposition in :doc:`greenspline` is
- now very fast, as is true for the regular Gauss-Jordan solution via a
- new multi-processor enabled algorithm.
-
-* Allow comma-separated colors instead of CPTs in options that are
- used to pass a CPT (typically this means the **-C** option).
-
-* Faster netCDF reading for COARDS table data (i.e., not grids).
-
-* When importing grids via GDAL the projection info is preserved and stored as netCDF metadata.
- This will allow third party programs like GDAL and QGIS to recognize the projection info of
- GMT created grids. Same thing happens when creating grids with :doc:`grdproject`.
-
-* Tools using GSHHG can now access information for both Antarctica data
- sets (ice-front and grounding line).
-
-* Tools that specify pens may now explicitly choose "solid" as an attribute,
- and we added "dashed" and "dotted" as alternatives to the shorthands "-" and ".".
-
-* Added three alternative vector head choices (terminal, square and circle) in addition
- to the default "arrow" style. We have also added the option for trimming the
- beginning and/or end point location of a vector, and you may now place the
- vector head at the mid-point of the vector instead at the ends.
-
-* All eight map embellishment features (map scale, color bar, direction rose, magnetic
- rose, GMT logo, raster images, map insets, and map legends) now use a uniform
- mechanism for specifying placement, justification, and attributes and is supported
- by a new section in the documentation.
-
-* Typesetting simultaneous sub- and super-scripts has improved (i.e., when a symbol
- should have both a subscript and and a superscript).
-
-* The custom symbol macro codes now allow for an unspecified symbol code (**?**), which
- means the desired code will be given as last item on each data record. Such custom
- symbols must be specified with uppercase **-SK**.
-
-Program-specific improvements in GMT 5.2
-----------------------------------------
-
-Finally, here is a list of enhancements to individual modules. Any
-changes to existing syntax will be backwards compatible:
-
-* :doc:`fitcircle` now has a new option **-F** that allows output to be in the
- form of coordinates only (no text report) and you may choose which items to
- return by appending suitable flags.
-
-* :doc:`gmt` now has a --show-cores option that reports the available cores.
-
-* :doc:`gmtconvert` adds a **-C** option that can be used to eliminate
- segments on output based on the number of records it contains. We also
- added a **-F** option to create line segments from an input data sets using
- a variety of connectivity modes.
-
-* :doc:`gmtmath` adds a long list of new operators. We have the operator **BPDF** for binomial probability distribution and
- **BCDF** for the cumulative binomial distribution function. Due to confusion with
- other probability distributions we have introduced a series of new operator names
- (but honor backwards compatibility). Listing the pdf and cdf for each distribution,
- these are **TPDF** and **TCDF** for the Student t-distribution,
- **FPDF** and **FCDF** for the F-distribution,
- **CHI2PDF** and **CHI2CDF** for the Chi-squared distribution,
- **EPDF** and **ECDF** for the exponential distribution (as well as **ECRIT**),
- **PPDF** and **PCDF** for the Poisson distribution,
- **LPDF** and **LCDF** for the Laplace distribution (as well as **LCRIT**),
- **RPDF** and **RCDF** for the Rayleigh distribution (as well as **RCRIT**),
- **WPDF** and **WCDF** for the Weibull distribution (as well as **WCRIT**), and
- **ZPDF** and **ZCDF** for the Normal distribution. We added **ROLL** for cyclic shifts of the stack,
- and **DENAN** as a more intuitive operator for removing NaNs, as
- well as new constants **TRANGE**, **TROW**, **F_EPS** and **D_EPS**, and we have renamed the
- normalized coordinates from **Tn** to **TNORM** (but this is backwards compatible). We added
- operator **POINT** which reads a data table and places the mean x and mean y on the stack.
- Finally, we added new hyperbolic and inverse hyperbolic functions **COTH** and **ACOTH**,
- **SECH** and **ASECH**, and **CSCH** and **ACSCH**.
-
-* :doc:`gmtspatial` now lets you specify Flat Earth or Geodesic distance calculations
- for line lengths via **-Q**.
-
-* :doc:`grdblend` relaxes the **-W** restriction on only one output grid
- and adds the new mode **-Wz** to write the weight*zsum grid.
-
-* :doc:`grdedit` enhances the **-E** option to allow for 90-degree rotations
- or flips of grid, as well as a new **-G** to enable writing of the result
- to a new output file [Default updates the existing file]. The **-J** option
- saves the georeferencing info as metadata in netCDF grids.
-
-* :doc:`grdfilter` now includes histogram mode filtering to complement mode
- (LMS) filtering.
-
-* :doc:`grdgradient` adds **-Da** to compute the aspect (down-slope) direction [up-slope].
-
-* :doc:`grdinfo` reports the projection info of netCDF grids when that is stored in
- a grid's metadata in WKT format.
-
-* :doc:`grdmath` adds numerous new operators, such as **ARC** and **WRAP** for
- angular operators, **BPDF** for binomial probability distribution and
- **BCDF** for the cumulative binomial distribution function. Due to confusion with
- other probability distributions we have introduced a series of new operator names
- (but accept backwards compatibility). Listing the pdf and cdf for each distribution,
- these are **TPDF** and **TCDF** for the Student t-distribution,
- **FPDF** and **FCDF** for the F-distribution,
- **CHI2PDF** and **CHI2CDF** for the Chi-squared distribution,
- **EPDF** and **ECDF** for the exponential distribution (as well as **ECRIT**),
- **PPDF** and **PCDF** for the Poisson distribution,
- **LPDF** and **LCDF** for the Laplace distribution (as well as **LCRIT**),
- **RPDF** and **RCDF** for the Rayleigh distribution (as well as **RCRIT**),
- **WPDF** and **WCDF** for the Weibull distribution (as well as **WCRIT**), and
- **ZPDF** and **ZCDF** for the Normal distribution. We added **LDISTG** (for distances
- to GSHHG), **CDIST2** and **SDIST2**
- (to complement **LDIST2** and **PDIST2**), and **ROLL** for cyclic shifts of the stack,
- and **DENAN** as a more intuitive operator for removing NaNs,
- while **LDIST1** has been renamed
- to **LDISTC**. We also add new constants **XRANGE**, **YRANGE**, **XCOL**,
- **YROW** and **F_EPS**, and we have renamed the normalized coordinates from **Xn** to **XNORM**
- and **Yn** to **YNORM** (but this is backwards compatible).
- Finally, we added new hyperbolic and inverse hyperbolic functions **COTH** and **ACOTH**,
- **SECH** and **ASECH**, and **CSCH** and **ACSCH**.
-
-* :doc:`grdtrack` add the modifier **-G+l**\ *list* to pass a list of grids.
-
-* :doc:`grdview` implements the Waterfall plot mode via **-Qmx**\|\ **y**.
-
-* :doc:`kml2gmt` acquires a **-F** option to control which geometry to output.
-
-* :doc:`makecpt` takes **-E** to determine range from an input data table.
-
-* :doc:`mapproject` can be used in conjunction with the 3-D projection options to
- compute 3-D projected coordinates. We also added **-W** to simply output the
- projected dimensions of the plot without reading input data.
-
-* :doc:`basemap` now takes **-A** to save the plot domain polygon in geographical coordinates.
- The **-L** option for map scale and **-T** for map roses have been revised (backwards compatible) and a
- new uniform **-F** option to specify background panel and its many settings was added.
-
-* :doc:`coast` can accept multiple **-E** settings to color several features independently.
- We also have the modifiers **+AS** to *only* plot Antarctica, **+ag** to use
- shelf ice grounding line for Antarctica coastline, and **+ai** to use ice/water
- front for Antarctica coastline [Default]. As above, the **-L** option for map scale
- and **-T** option for map roses have been revised (backwards compatible) and a new uniform **-F** option to specify
- background panel and its many settings was added.
-
-* :doc:`psconvert` (apart from the name change) has several new features, such as
- reporting dimensions of the plot when **-A** and **-V** are used,
- scaling the output plots via **-A+s**\ [**m**]\ *width*\ [/*height*],
- paint and outline the bounding box via **-A** modifiers **g**\ *fill* and **+p**\ *pen*,
- and **-Z** for removing the PostScript file on exit. In addition, we have
- added SVG as a new output vector graphics format and now handle transparency even if
- non-PDF output formats are requested.
-
-* :doc:`contour` adds a **-Q**\ *cut* option like :doc:`grdcontour` and consolidates the
- old **-T**, **-Q** options for an index file to a new **-E** option.
-
-* :doc:`histogram` added modifiers **-W**\ *width*\ [**+l**\|\ **h**\|\ **b**]
- to allow for more control on what happens to points falling in the tails.
-
-* :doc:`image` added a new uniform **-D** option to specify location of the image and new uniform
- **-F** option to specify background panel and its many settings.
-
-* :doc:`legend` has many enhancements for specifying varying cell widths and color, as
- well as a new uniform **-D** option to specify location of legend and new uniform
- **-F** option to specify background panel and its many settings.
-
-* :doc:`colorbar` new uniform **-D** option to specify location of the scale. We have
- retired the **-T** option in favor of the new uniform
- **-F** option to specify background panel and its many settings.
-
-* :doc:`plot` has seen considerable enhancements. We added two new quoted
- line (**-Sq**) modifiers: **S**\|\ **s** for treating input as consecutive
- two-point line segments that should be individually quoted,
- and **+x**\ [*first*\ ,\ *last*] for automating cross-section labeling.
- We added a new symbol (**-S~**) for *decorated lines*. These are very similar
- to quoted lines but instead place specified symbols along lines.
- We expanded **-N** to handle periodic, repeating symbols near the boundary,
- added a new modifier **+** to **-E** for asymmetrical error bars, and provided the
- shorthand **-SE-**\ *diameter* for degenerated ellipses (i.e., circles).
- The **-L** option has been enhanced to create envelope polygons around y(x),
- say for confidence envelopes (modifiers **+b**\|\ **d**\|\ **D**), and to complete a closed
- polygon by adding selected corners (modifiers **+xl**\|\ **r**\|\ *x0* or **+yb**\|\ **t**\|\ *y0*).
- The **-A**\-option now has new modifiers **x**\|\ **y** for creating stair-case curves.
- The slip-vector symbol can now optionally accept a vector-head angle [30].
- The custom symbols definition tests can now compare two input variables.
- We also added a **-F** option to draw line segments from an input data sets using
- a variety of connectivity modes. Finally, for drawing lines there are new line
- attribute modifiers available via the pen setting **-W** such as drawing with a
- Bezier spline (**+s**), trimming the segments from the ends before plotting (**+o**\ *offset*),
- or adding vector heads at the ends of the lines (**+v**).
-
-* :doc:`plot3d` also has the new **-SE-**\ *diameter* shorthand as well as the **-N**
- modifiers for handling periodic plot symbols. Like, plot it gets the same improvements
- to quoted lines and adds decorated lines as a new symbol. Likewise,
- the **-L** option has been enhanced to create envelope polygons around y(x),
- say for confidence envelopes (modifiers **+b**\|\ **d**\|\ **D**), and to complete a closed
- polygon by adding selected corners (modifiers **+xl**\|\ **r**\|\ *x0* or **+yb**\|\ **t**\|\ *y0*).
- The slip-vector symbol can now optionally accept a vector-head angle [30].
- Finally, to match :doc:`plot` we have added the option **-T** for specifying no data input.
-
-* :doc:`sample1d` spline selection option **-F** can now accept the optional
- modifiers **+1** or **+2** which will compute
- the first or second derivatives of the spline, respectively.
-
-* :doc:`spectrum1d` can now turn off single-output data to stdout via **-T**
- or turn off multi-file output via **-N**.
-
-* :doc:`sphdistance` can now also perform a nearest-neighbor gridding where
- all grid nodes inside a Voronoi polygon is set to the same value as the
- Voronoi node value, via **-Ez**.
-
-* :doc:`trend1d` can now fit mixed polynomial and Fourier series models,
- as well as allowing models with just some terms in a polynomial or a
- Fourier series, including plain cosine or sine series terms. Modifiers
- have been added to specify data origin and fundamental period instead of
- defaulting to the data mid-point and data range, respectively.
-
-A few supplement modules have new features as well:
-
-* :doc:`mgd77track ` adds the **-Gn**\ *gap* option to
- decimate the trackline coordinates by only plotting every *gap* point.
-
-* :doc:`gravfft ` adds **-W**\ *wd* to change
- observation level.
-
-* :doc:`grdgravmag3d ` adds **-H** to compute magnetic anomaly.
-
-* :doc:`grdpmodeler ` can now output more than one model
- prediction into several grids or as a record written to stdout. Also gains the **-N** option
- used by other spotter tools to extend the model duration.
-
-
-New Features in GMT 5
-=====================
-
-GMT 5 represents a new branch of GMT development that mostly preserves the
-capabilities of the previous versions while adding over 200 new features
-to an already extensive bag of tricks. Our PostScript library
-:doc:`PSL ` has seen a complete rewrite as well
-and produce shorter and more compact PostScript. However, the big news
-is aimed for developers who wish to leverage GMT in their own applications.
-We have completely revamped the code base so that high-level
-GMT functionality is now accessible via GMT "modules". These are
-high-level functions named after their corresponding programs (e.g.,
-``GMT_grdimage``) that contains all of the functionality of that program
-within the function. While currently callable from C/C++ only (with some
-support for F77), we are making progress on the Matlab interface as well
-and there are plans to start on the Python version. Developers should
-consult the :ref:`GMT API ` documentation for more details.
-
-We recommend that users of GMT 4 consider learning the new rules and defaults
-since eventually (in some years) GMT 4 will be obsolete.
-To ease the transition to GMT 5 you may run it in compatibility mode,
-thus allowing the use of many obsolete default names and command
-switches (you will receive a warning instead). This is discussed below.
-
-Below are six key areas of improvements in GMT 5.
-
-New programs in GMT 5
----------------------
-
-First, a few new programs have been added and some have been
-promoted (and possibly renamed) from earlier supplements:
-
-:doc:`gmt`
- This is the **only** program executable that is distributed with GMT 5. To avoid
- problems with namespace conflicts (e.g., there are other, non-GMT programs
- with generic names like triangulate, surface, etc.) all GMT 5 modules are
- launched from the gmt executable via "gmt module" calls (e.g, gmt coast).
- For backwards compatibility (see below) we also offer symbolic links with
- the old executable names that simply point to the gmt program, which then
- can start the correct module. Any module whose name starts with "gmt" can
- be abbreviated, e.g., "gmt gmtconvert" may be called as "gmt convert".
-
-:doc:`gmt2kml`
- A :doc:`plot` -like tool to produce KML overlays for Google Earth. Previously
- found in the misc supplement.
-
-:doc:`gmtconnect`
- Connect individual lines whose end points match within given tolerance.
- Previously known as gmtstitch in the misc supplement (this name is recognized
- when GMT is running in compatibility mode).
-
-:doc:`gmtget`
- Return the values of the specified GMT defaults. Previously only
- implemented as a shell script and thus not available on all platforms.
-
-:doc:`gmtinfo`
- Report information about data tables. Previously known by the name minmax
- (this name is still recognized when GMT is running in compatibility mode).
-
-:doc:`gmtsimplify`
- A line-reduction tool for coastlines and similar lines. Previously found
- in the misc supplement under the name gmtdp (this name is recognized when
- GMT is running in compatibility mode).
-
-:doc:`gmtspatial`
- Perform various geospatial operations on lines and polygons.
-
-:doc:`gmtvector`
- Perform basic vector manipulation in 2-D and 3-D.
-
-:doc:`gmtwhich`
- Return the full path to specified data files.
-
-grdraster
- Extracts subsets from large global grids. Previously
- found in the dbase supplement.
-
-:doc:`kml2gmt`
- Extract GMT data tables from Google Earth KML files. Previously
- found in the misc supplement.
-
-:doc:`sph2grd`
- Compute grid from list of spherical harmonic coefficients [We will add its
- natural complement grd2sph at a later date].
-
-:doc:`sphdistance`
- Make grid of distances to nearest points on a sphere. Previously
- found in the sph supplement.
-
-:doc:`sphinterpolate`
- Spherical gridding in tension of data on a sphere. Previously
- found in the sph supplement.
-
-:doc:`sphtriangulate`
- Delaunay or Voronoi construction of spherical lon,lat data. Previously
- found in the sph supplement.
-
-We have also added a new supplement called potential that contains these five modules:
-
-:doc:`gmtgravmag3d `:
- Compute the gravity/magnetic anomaly of a body by the method of Okabe.
-
-:doc:`gmtflexure `:
- Compute the flexure of a 2-D load using variable plate thickness and restoring force.
-
-:doc:`gravfft `:
- Compute gravitational attraction of 3-D surfaces and a little more by the method of Parker.
-
-:doc:`grdgravmag3d `:
- Computes the gravity effect of one (or two) grids by the method of Okabe.
-
-:doc:`grdredpol `:
- Compute the Continuous Reduction To the Pole, also known as differential RTP.
-
-:doc:`grdseamount `:
- Compute synthetic seamount (Gaussian or cone, circular or elliptical) bathymetry.
-
-Finally, the spotter supplement has added one new module:
-
-:doc:`grdpmodeler `:
- Evaluate a plate model on a geographic grid.
-
-New common options in GMT 5
----------------------------
-
-First we discuss changes that have been
-implemented by a series of new lower-case GMT common options:
-
-* Programs that read data tables can now process the aspatial metadata
- in OGR/GMT files with the new **-a** option. These can be produced by
- **ogr2ogr** (a GDAL tool) when selecting the -f "GMT" output
- format. See Chapter :ref:`OGR_compat` for an explanation of the OGR/GMT file format.
- Because all GIS information is encoded via GMT comment lines these
- files can also be used in GMT 4 (the GIS metadata is simply
- skipped).
-
-* Programs that read or write data tables can specify a custom binary format
- using the enhanced **-b** option.
-
-* Programs that read data tables can control which columns to read and
- in what order (and optionally supply scaling relations) with the new **-i** option
-
-* Programs that read grids can use new common option **-n** to control
- grid interpolation settings and boundary conditions.
-
-* Programs that write data tables can control which columns to write
- and in what order (and optionally supply scaling relations) with the new **-o** option.
-
-* All plot programs can take a new **-p** option for perspective view
- from infinity. In GMT 4, only some programs could do this (e.g.,
- :doc:`coast`) and it took a
- program-specific option, typically **-E** and sometimes an option
- **-Z** would be needed as well. This information is now all passed
- via **-p** and applies across all GMT plotting programs.
-
-* Programs that read data tables can control how records with NaNs are
- handled with the new **-s** option.
-
-* All plot programs can take a new **-t** option to modify the PDF
- transparency level for that layer. However, as PostScript has no provision for
- transparency you can only see the effect if you convert it to PDF.
-
-Updated common options in GMT 5
--------------------------------
-
-Some of the established GMT common options have seen significant
-improvements; these include:
-
-* The completely revised **-B** option can now handle irregular and custom annotations
- (see Section :ref:`custom_axes`). It also has a new automatic mode which
- will select optimal intervals given data range and plot size. The 3-D base maps can now have
- horizontal gridlines on xz and yz back walls.
-
-* The **-R** option may now accept a leading unit which implies the
- given coordinates are projected map coordinates and should be
- replaced with the corresponding geographic coordinates given the
- specified map projection. For linear projections such units imply a
- simple unit conversion for the given coordinates (e.g., km to meter).
-
-* Introduced **-fp** which allows data input to be in
- projected values, e.g., UTM coordinates while **-Ju** is given.
-
-While just giving - (the hyphen) as argument presents just the synopsis of the command
-line arguments, we now also support giving + which in addition will list
-the explanations for all options that are not among the GMT common set.
-
-New default parameters in GMT 5
--------------------------------
-
-Most of the GMT default parameters have changed names in order to
-group parameters into logical groups and to use more consistent naming.
-However, under compatibility mode (see below) the old names are still recognized.
-New capabilities have been implemented by introducing new GMT default settings:
-
-* :term:`DIR_DCW` specifies where to look for the optional
- Digital Charts of the World database (for country coloring or selections).
-
-* :term:`DIR_GSHHG` specifies where to look for the required
- Global Self-consistent Hierarchical High-resolution Geography database.
-
-* :term:`GMT_COMPATIBILITY` can be set to 4 to allow
- backwards compatibility with GMT 4 command-line syntax or 5 to impose
- strict GMT5 syntax checking.
-
-* :term:`IO_NC4_CHUNK_SIZE` is used to set the default
- chunk size for the **lat** and **lon** dimension of the **z** variable of
- netCDF version 4 files.
-
-* :term:`IO_NC4_DEFLATION_LEVEL` is used to set
- the compression level for netCDF4 files upon output.
-
-* :term:`IO_SEGMENT_MARKER` can be used to change the
- character that GMT uses to identify new segment header records [>].
-
-* :term:`MAP_ANNOT_ORTHO` controls whether axes annotations
- for Cartesian plots are horizontal or orthogonal to the individual axes.
-
-* :term:`GMT_FFT` controls which algorithms to use for Fourier
- transforms.
-
-* :term:`GMT_TRIANGULATE` controls which algorithm to use
- for Delaunay triangulation.
-
-* Great circle distance approximations can now be fine-tuned via new GMT default parameters
- :term:`PROJ_MEAN_RADIUS` and :term:`PROJ_AUX_LATITUDE`.
- Geodesics are now even more accurate by using the Vincenty [1975] algorithm instead of
- Rudoe's method.
-
-* :term:`GMT_EXTRAPOLATE_VAL` controls what splines should do if
- requested to extrapolate beyond the given data domain.
-
-* :term:`PS_TRANSPARENCY` allows users to modify how transparency will be
- processed when converted to PDF [Normal].
-
-A few parameters have been introduced in GMT 5 in the past and have been removed again.
-Among these are:
-
-* *DIR_USER*: was supposed to set the directory in which the user configuration files, or data are stored, but
- this creates problems, because it needs to be known already before it is potentially set in *DIR_USER*/gmt.conf.
- The environment variable **$GMT_USERDIR** is used for this instead.
-
-* *DIR_TMP*: was supposed to indicate the directory in which to store temporary files. But needs to be known without
- gmt.conf file as well. So the environment variable **$GMT_TMPDIR** is used instead.
-
-General improvements in GMT 5
------------------------------
-
-Other wide-ranging changes have been implemented in different
-ways, such as
-
-* All programs now use consistent, standardized choices for plot
- dimension units (**c**\ m, **i**\ nch, or **p**\ oint; we no longer
- consider **m**\ eter a plot length unit), and actual distances
- (choose spherical arc lengths in **d**\ egree, **m**\ inute, and
- **s**\ econd [was **c**], or distances in m\ **e**\ ter [Default],
- **f**\ oot [new], **k**\ m, **M**\ ile [was sometimes **i** or
- **m**], **n**\ autical mile, and s\ **u**\ rvey foot [new]).
-
-* Programs that read data tables can now process multi-segment tables
- automatically. This means programs that did not have this capability
- (e.g., :doc:`filter1d`) can now all operate on the
- segments separately; consequently, there is no longer a **-m**
- option.
-
-* While we support the scaling of z-values in grids via the filename convention
- name[=\ *ID*\ [**+s**\ *scale*][**+o**\ *offset*][**+n**\ *nan*] mechanism, there are times
- when we wish to scale the x,y domain as well. Users can now
- append **+u**\ *unit* to their gridfile names, where *unit* is one of non-arc units listed
- in Table :ref:`distunits `. This will convert your Cartesian
- x and y coordinates *from* the given unit *to* meters. We also support the inverse
- option **+U**\ *unit*, which can be used to convert your grid
- coordinates *from* meters *to* the specified unit.
-
-* CPTs also support the **+u**\|\ **U**\ *unit* mechanism. Here, the scaling
- applies to the z values. By appending these modifiers to your CPT names you
- can avoid having two CPTs (one for meter and one for km) since only one is needed.
-
-* Programs that read grids can now directly handle Arc/Info float binary
- files (GRIDFLOAT) and ESRI .hdr formats.
-
-* Programs that read grids now set boundary conditions to aid further
- processing. If a subset then the boundary conditions are taken from
- the surrounding grid values.
-
-* All text can now optionally be filled with patterns and/or drawn with
- outline pens. In the past, only :doc:`text` could plot outline fonts via
- **-S**\ *pen*. Now, any text can be an outline text by manipulating
- the corresponding FONT defaults (e.g., :term:`FONT_TITLE`).
-
-* All color or fill specifications may append @\ *transparency* to
- change the PDF transparency level for that item. See **-t** for
- limitations on how to visualize this transparency.
-
-* GMT now ships with 36 standard color palette tables (CPT), up from 24.
-
-Program-specific improvements in GMT 5
---------------------------------------
-
-Finally, here is a list of numerous enhancements to individual programs:
-
-* :doc:`blockmean` added **-Ep** for error propagation and
- **-Sn** to report the number of data points per block.
-
-* :doc:`blockmedian` added **-Er**\ [-]
- to return as last column the record number that gave the median
- value. For ties, we return the record number of the higher data value
- unless **-Er**- is given (return lower). Added **-Es** to read and
- output source id for median value.
-
-* :doc:`blockmode` added **-Er**\ [-] but
- for modal value. Added **-Es** to read and output source id for modal
- value.
-
-* :doc:`gmtconvert` now has optional PCRE (regular expression) support,
- as well as a new option to select a subset of segments specified by
- segment running numbers (**-Q**) and improved options to extract a
- subset of records (**-E**) and support for a list of search strings
- via **-S+f**\ *patternfile*.
-
-* :doc:`gmtinfo` has new option **-A** to
- select what group to report on (all input, per file, or per segment).
- Also, use **-If** to report an extended region optimized for fastest results in FFTs.
- and **-Is** to report an extended region optimized for fastest results in :doc:`surface`.
- Finally, new option **-D**\ [*inc*] to align regions found via **-I** with the center
- of the data.
-
-* :doc:`gmtmath` with **-N**\ *ncol* and input
- files will add extra blank columns, if needed. A new option **-E**
- sets the minimum eigenvalue used by operators LSQFIT and SVDFIT.
- Option **-L** applies operators on a per-segment basis instead of
- accumulating operations across the entire file. Many new
- operators have been added (BITAND, BITLEFT, BITNOT, BITOR, BITRIGHT,
- BITTEST, BITXOR, DIFF, IFELSE, ISFINITE, SVDFIT, TAPER). Finally,
- we have implemented user macros for long or commonly used expressions,
- as well as ability to store and recall using named variables.
-
-* :doc:`gmtselect` Takes **-E** to indicate if points exactly on a polygon
- boundary are inside or outside, and **-Z** can now be extended to apply
- to other columns than the third.
-
-* :doc:`grd2cpt` takes **-F** to specify output color model and **-G** to
- truncate incoming CPT to be limited to a given range.
-
-* :doc:`grd2xyz` takes **-C** to write row, col instead of x,y. Append **f**
- to start at 1, else start at 0. Alternatively, use **-Ci** to write just
- the two columns *index* and *z*, where *index*
- is the 1-D indexing that GMT uses when referring to grid nodes.
-
-* :doc:`grdblend` can now take list of grids on
- the command line and blend, and now has more blend choices (see **-C**). Grids no
- longer have to have same registration or spacing.
-
-* :doc:`grdclip` has new option **-Si** to set all data >= low and <= high
- to the *between* value, and **-Sr** to set all data == old to the *new* value.
-
-* :doc:`grdcontour` can specify a single contour with **-C+**\ *contour* and
- **-A+**\ *contour*.
-
-* :doc:`grdcut` can use **-S** to specify an origin and radius and cut the
- corresponding rectangular area, and **-N** to extend the region if the new
- **-R** domain exceeds existing boundaries.
-
-* :doc:`grdfft` can now accept two grids and let **-E** compute the cross-spectra.
- The **-N** option allows for many new and special settings, including ability
- to control data mirroring, detrending, tapering, and output of intermediate
- results.
-
-* :doc:`grdfilter` can now do spherical
- filtering (with wrap around longitudes and over poles) for non-global
- grids. We have also begun implementing Open MP threads to speed up
- calculations on multi-core machines. We have added rectangular
- filtering and automatic resampling to input resolution for high-pass
- filters. There is also **-Ff**\ *weightgrd* which reads the gridfile
- *weightgrd* for a custom Cartesian grid convolution. The *weightgrd*
- must have odd dimensions. Similarly added **-Fo**\ *opgrd* for
- operators (via coefficients in the grdfile *opgrd*) whose weight sum
- is zero (hence we do not sum and divide the convolution by the weight
- sum).
-
-* :doc:`grdgradient` now has **-Em** that gives results close to ESRI's
- "hillshade"'" (but faster).
-
-* :doc:`grdinfo` now has modifier
- **-Ts**\ *dz* which returns a symmetrical range about zero. Also,
- if **-Ib** is given then the grid's bounding box polygon is written.
-
-* :doc:`grdimage` with GDAL support can write a raster image directly to
- a raster file (**-A**) and may plot raster images as well (**-Dr**).
- It also automatically assigns a color table if none is given and can use
- any of the 36 GMT color tables and scale them to fit the grid range.
-
-* :doc:`grdmask` has new option
- **-Ni**\|\ I\|\ p\|\ P to set inside of
- polygons to the polygon IDs. These may come from OGR aspatial values,
- segment head **-L**\ ID, or a running number, starting at a specified
- origin [0]. Now correctly handles polygons with perimeters and holes.
- Added z as possible radius value in **-S** which means read radii
- from 3rd input column.
-
-* :doc:`grdmath` added many new operators such as BITAND, BITLEFT, BITNOT, BITOR, BITRIGHT,
- BITTEST, BITXOR, DEG2KM, IFELSE, ISFINITE, KM2DEG, and TAPER. Finally,
- we have implemented user macros for long or commonly used expressions,
- as well as ability to store and recall using named variables.
-
-* :doc:`grdtrack` has many new options. The **-A** option controls how the
- input track is resampled when **-C** is selected, the new **-C**, **-D**
- options automatically create an equidistant set of cross-sectional
- profiles given input line segments; one or more grids can then be
- sampled at these locations. The **-E** option allows users to quickly specify
- tracks for sampling without needed input tracks. Also added **-S** which stack
- cross-profiles generated with **-C**. The **-N** will not skip
- points that are outside the grid domain but return NaN as sampled
- value. Finally, **-T** will return the nearest non-NaN node if the initial
- location only finds a NaN value.
-
-* :doc:`grdvector` can now take **-Si**\ *scale* to give the reciprocal scale,
- i.e., cm/ unit or km/unit. Also, the vector heads in GMT have completely been overhauled
- and includes geo-vector heads that follow great or small circles.
-
-* :doc:`grdview` will automatically assigns a color table if none is given and can use
- any of the 36 GMT color tables and scale them to fit the grid range.
-
-* :doc:`grdvolume` can let **-S** accept more distance units than just km. It also
- has a modified **-T**\ [**c**\|\ **h**] for ORS estimates based on max
- curvature or height. **-Cr** to compute the *outside* volume between two contours
- (for instances, the volume of water from a bathymetry grid).
-
-* :doc:`greenspline` has an improved **-C** option to control how many eigenvalues are used
- in the fitting, and **-Sl** adds a linear (or bilinear) spline.
-
-* :doc:`makecpt` has a new **-F** option to
- specify output color representation, e.g., to output the CPT in
- h-s-v format despite originally being given in r/g/b, and **-G** to
- truncate incoming CPT to be limited to a given range. It also adds **Di**
- to match the bottom/top values in the input CPT.
-
-* :doc:`mapproject` has a new **-N**
- option to do geodetic/geocentric conversions; it combines with **-I**
- for inverse conversions. Also, we have extended **-A** to accept
- **-A**\ **o**\| \ **O** to compute line orientations (-90/90).
- In **-G**, prepend - to the unit for (fast) flat Earth or + for (slow) geodesic calculations.
-
-* :doc:`project` has added **-G**...[+] so
- if + is appended we get a segment header with information about the
- pole for the circle. Optionally, append /*colat* in **-G** for a small circle path.
-
-* :doc:`psconvert` has added a **-TF** option to create multi-page PDF files. There is
- also modification to **-A** to add user-specified margins, and it automatically detects
- if transparent elements have been included (and a detour via PDF might be needed).
-
-* :doc:`basemap` has added a **-D** option to place a map-inset box.
-
-* :doc:`clip` has added an extended **-C** option to close different types of clip paths.
-
-* :doc:`coast` has added a new option **-E** which lets users specify one or more countries
- to paint, fill, extract, or use as plot domain (requires DCW to be installed).
-
-* :doc:`contour` is now similar to :doc:`grdcontour` in the options it
- takes, e.g., **-C** in particular. In GMT 4, the program could only
- read a CPT and not take a specific contour interval.
-
-* :doc:`histogram` now takes **-D** to place histogram count labels on top of each bar
- and **-N** to draw the equivalent normal distributions.
-
-* :doc:`legend` no longer uses system calls to do the plotting. The modified **-D**
- allows for minor offsets, while **-F** offers more control over the frame and fill.
-
-* :doc:`rose` has added **-Wv**\ *pen* to
- specify pen for vector (specified in **-C**). Added **-Zu** to set all radii to
- unity (i.e., for analysis of angles only).
-
-* :doc:`colorbar` has a new option **-T** that paints a rectangle behind the color bar.
- The **+n** modifier to **-E** draws a rectangle with NaN color and adds a label.
- The **-G** option will truncate incoming CPT to be limited to the specified z-range.
- Modification **-Np** indicates a preference to use polygons to draw the color bar.
-
-* :doc:`text` can take simplified input
- via new option **-F** to set fixed font (including size), angle, and
- justification. If these parameters are fixed for all the text strings
- then the input can simply be *x y text*. It also has enhanced **-DJ** option
- to shorten diagonal offsets by :math:`\sqrt{2}` to maintain the same
- radial distance from point to annotation. Change all text to upper or
- lower case with **-Q**.
-
-* :doc:`plot` and :doc:`plot3d` both support the revised custom symbol macro
- language which has been expanded considerably to allow for complicated,
- multi-parameter symbols; see Chapter :ref:`App-custom_symbols`
- for details. Finally, we allow the base for bars and columns optionally to be
- read from data file by not specifying the base value.
-
-* :doc:`sample1d` offers **-A** to control resampling of spatial curves (with **-I**).
-
-* :doc:`spectrum1d` has added **-L** to control removal of trend, mean value or mid value.
-
-* :doc:`surface` has added **-r** to create pixel-registered grids and knows about
- periodicity in longitude (given **-fg**). There is also **-D** to supply a "sort" break line.
-
-* :doc:`triangulate` now offers **-S**
- to write triangle polygons and can handle 2-column input if **-Z** is given.
- Can also write triangle edges as line with **-M**.
-
-* :doc:`xyz2grd` now also offers **-Af** (first value encountered),
- **-Am** (mean, the default), **-Ar** (rms), and **-As** (last value encountered).
-
-Several supplements have new features as well:
-
-* :doc:`img2grd `
- used to be a shell script but is now a C program and can be used on all platforms.
-
-* :doc:`mgd77convert `
- added **-C** option to assemble \*.mgd77 files from \*.h77/\*.a77 pairs.
-
-* The spotter programs can now read GPlates rotation files directly as well
- as write this format. Also,
- :doc:`rotconverter ` can extract plate
- circuit rotations on-the-fly from the GPlates rotation file.
-
-**Note**: GMT 5 only produces PostScript and no longer has a setting for
-Encapsulated PostScript (EPS). We made this decision since (a) our EPS determination
-was always very approximate (no consideration of font metrics, etc.) and quite often wrong,
-and (b) :doc:`psconvert` handles it exactly. Hence, users who need EPS plots should
-simply process their PostScript files via :doc:`psconvert`.
diff --git a/6.2.0rc1/_sources/clear.rst.txt b/6.2.0rc1/_sources/clear.rst.txt
deleted file mode 100644
index 5696598ed92..00000000000
--- a/6.2.0rc1/_sources/clear.rst.txt
+++ /dev/null
@@ -1,103 +0,0 @@
-.. index:: ! clear
-.. include:: module_core_purpose.rst_
-
-*****
-clear
-*****
-
-|clear_purpose|
-
-Synopsis
---------
-
-.. include:: common_SYN_OPTs.rst_
-
-**gmt clear** **all** \| **cache** \| **data**\ [=\ *planet*] \| **geography**\ [=\ *name*] \| **sessions** \| **settings**
-[ |SYN_OPT-V| ]
-
-|No-spaces|
-
-Description
------------
-
-The clear command allows users to delete their entire user cache, data, geography, or sessions
-directories, and in modern mode their defaults settings (i.e., gmt.conf), or all of the above.
-
-Optional Arguments
-------------------
-
-.. _clear-all:
-
-**all**
- Deletes all the items under the control of the individual targets.
-
-.. _clear-cache:
-
-**cache**
- Delete the user's cache directory and all of its contents.
-
-.. _clear-data:
-
-**data**\ [=\ *planet*]
- Delete the user's data download server directory and all of its contents.
- Alternatively, append =\ *planet* for a specific planet and we only delete
- data for that sub-directory [all planets].
-
-.. _clear-geography:
-
-**geography**\ [=\ *name*]
- Delete the user's geography directory. Append either *=gshhg* or *=dcw*
- if you only want to delete the named data set [both].
-
-.. _clear-sessions:
-
-**sessions**
- Delete the user's sessions directory.
-
-.. _clear-settings:
-
-**settings**
- Delete the current default settings file (gmt.conf) used for the current modern session.
-
-.. |Add_-V| replace:: |Add_-V_links|
-.. include:: explain_-V.rst_
- :start-after: **Syntax**
- :end-before: **Description**
-
-.. include:: explain_help_nopar.rst_
-
-Examples
---------
-
-To remove the current default settings in a modern mode session, use::
-
- gmt clear settings
-
-To completely wipe your GMT cache directory, try::
-
- gmt clear cache
-
-To remove your GMT geography directory with downloaded GSHHG and DCW data, try::
-
- gmt clear geography
-
-To only wipe your GMT server directory for Earth data, try::
-
- gmt clear data=earth
-
-To only wipe your entire GMT server and cache directories, (carefully) try::
-
- gmt clear all
-
-.. include:: data-updating.rst_
-
-See Also
---------
-
-:doc:`begin`,
-:doc:`docs`,
-:doc:`end`,
-:doc:`figure`,
-:doc:`inset`,
-:doc:`subplot`,
-:doc:`gmt`
diff --git a/6.2.0rc1/_sources/clip.rst.txt b/6.2.0rc1/_sources/clip.rst.txt
deleted file mode 100644
index 826f1f64643..00000000000
--- a/6.2.0rc1/_sources/clip.rst.txt
+++ /dev/null
@@ -1,65 +0,0 @@
-.. index:: ! clip
-.. include:: module_core_purpose.rst_
-
-******
-clip
-******
-
-|clip_purpose|
-
-Synopsis
---------
-
-.. include:: common_SYN_OPTs.rst_
-
-**gmt clip** [ *table* ] |-J|\ *parameters* |-C|\ [*n*]
-|SYN_OPT-Rz|
-[ |-A|\ [**m**\|\ **p**\|\ **x**\|\ **y**] ]
-[ |SYN_OPT-B| ]
-|-J|\ **z**\|\ **Z**\ *parameters* ]
-[ |-N| ]
-[ |-T| ]
-[ |SYN_OPT-U| ]
-[ |SYN_OPT-V| ]
-[ |-W|\ [*pen*] ]
-[ |SYN_OPT-X| ]
-[ |SYN_OPT-Y| ]
-[ |SYN_OPT-bi| ]
-[ |SYN_OPT-di| ]
-[ |SYN_OPT-e| ]
-[ |SYN_OPT-f| ]
-[ |SYN_OPT-g| ]
-[ |SYN_OPT-h| ]
-[ |SYN_OPT-i| ]
-[ |SYN_OPT-p| ]
-[ |SYN_OPT-qi| ]
-[ |SYN_OPT-t| ]
-[ |SYN_OPT-:| ]
-[ |SYN_OPT--| ]
-
-.. include:: clip_common.rst_
-
-Examples
---------
-
-To see the effect of a simple clip path which result in some symbols
-being partly visible or missing altogether, try::
-
- gmt begin clip
- gmt clip -R0/6/0/6 -Jx2.5c -W1p,blue << EOF
- 0 0
- 5 1
- 5 5
- EOF
- gmt plot @tut_data.txt -Gred -Sc2c
- gmt clip -C -B
- gmt end show
-
-where we activate and deactivate the clip path. Note we also draw the
-outline of the clip path to make it clear what is being clipped.
-
-See Also
---------
-
-:doc:`gmt`, :doc:`grdmask`,
-:doc:`basemap`, :doc:`mask`
diff --git a/6.2.0rc1/_sources/coast.rst.txt b/6.2.0rc1/_sources/coast.rst.txt
deleted file mode 100644
index 64a8ed7d31a..00000000000
--- a/6.2.0rc1/_sources/coast.rst.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-.. index:: ! coast
-.. include:: module_core_purpose.rst_
-
-*****
-coast
-*****
-
-|coast_purpose|
-
-Synopsis
---------
-
-.. include:: common_SYN_OPTs.rst_
-
-**gmt coast** |-J|\ *parameters*
-|SYN_OPT-R|
-[ |SYN_OPT-Area| ]
-[ |SYN_OPT-B| ]
-[ |-C|\ *fill*\ [**+l**\|\ **r**] ]
-[ |-D|\ *resolution*\ [**+f**] ]
-[ |-E|\ *dcw* ]
-[ |-F|\ *box* ]
-[ |-G|\ [*fill*] ]
-[ |-I|\ *river*\ [/\ *pen*] ]
-[ |-J|\ **z**\|\ **Z**\ *parameters* ]
-[ |-L|\ *scalebar* ]
-[ |-M| ]
-[ |-N|\ *border*\ [/*pen*] ]
-[ |-Q| ]
-[ |-S|\ [*fill*] ]
-[ |-T|\ *rose* ]
-[ |SYN_OPT-U| ]
-[ |SYN_OPT-V| ]
-[ |-W|\ [*level*/]\ *pen* ]
-[ |SYN_OPT-X| ]
-[ |SYN_OPT-Y| ]
-[ |SYN_OPT-bo| ]
-[ |SYN_OPT-p| ]
-[ |SYN_OPT-t| ]
-[ |SYN_OPT--| ]
-
-.. include:: coast_common.rst_
-
-Examples
---------
-
-.. include:: oneliner_info.rst_
-
-To plot a green Africa with white outline on blue background, with
-permanent major rivers in thick blue pen, additional major rivers in
-thin blue pen, and national borders as dashed lines on a Mercator map at
-scale 0.1 inch/degree, use::
-
- gmt coast -R-30/30/-40/40 -Jm0.1i -B5 -I1/1p,blue -N1/0.25p,- \
- -I2/0.25p,blue -W0.25p,white -Ggreen -Sblue -pdf africa
-
-To plot Iceland using the lava pattern (# 28) at 100 dots per inch, on a
-Mercator map at scale 1 cm/degree, run::
-
- gmt coast -RIS+r1 -Jm1c -B -Wthin -Gp28+r100 -pdf iceland
-
-To initiate a clip path for Africa so that the subsequent colorimage of
-gridded topography is only seen over land, using a Mercator map at scale
-0.1 inch/degree, use::
-
- gmt begin
- gmt coast -R-30/30/-40/40 -Jm0.1i -B -G
- gmt grdimage @earth_relief_05m
- gmt coast -Q
- gmt end show
-
-To plot Great Britain, Italy, and France in blue with a red outline and
-Spain, Portugal and Greece in yellow (no outline), and pick up the plot
-domain from the extents of these countries, use::
-
- gmt coast -JM6i -Baf -EGB,IT,FR+gblue+p0.25p,red -EES,PT,GR+gyellow -pdf map
-
-To extract a high-resolution coastline data table for Iceland to be used
-in your analysis, try::
-
- gmt coast -RIS -Dh -W -M > iceland.txt
-
-**coast** will first look for coastline files in directory
-**$GMT_SHAREDIR**/coast If the desired file is not found, it will look
-for the file **$GMT_SHAREDIR**/coastline.conf. This file may contain
-any number of records that each holds the full pathname of an
-alternative directory. Comment lines (#) and blank lines are allowed.
-The desired file is then sought for in the alternate directories.
-
-.. include:: explain_gshhg.rst_
-
-.. include:: coast_notes.rst_
-
-See Also
---------
-
-:doc:`gmt`, :doc:`gmt.conf`,
-:doc:`gmtcolors`,
-:doc:`grdlandmask`,
-:doc:`basemap`
diff --git a/6.2.0rc1/_sources/colorbar.rst.txt b/6.2.0rc1/_sources/colorbar.rst.txt
deleted file mode 100644
index 4bdd5587408..00000000000
--- a/6.2.0rc1/_sources/colorbar.rst.txt
+++ /dev/null
@@ -1,81 +0,0 @@
-.. index:: ! colorbar
-.. include:: module_core_purpose.rst_
-
-********
-colorbar
-********
-
-|colorbar_purpose|
-
-Synopsis
---------
-
-.. include:: common_SYN_OPTs.rst_
-
-**gmt colorbar**
-[ |SYN_OPT-B| ]
-[ |-C|\ *cpt* ]
-[ |-D|\ *refpoint* ]
-[ |-F|\ *panel* ]
-[ |-G|\ *zlo*\ /\ *zhi* ]
-[ |-I|\ [*max\_intens*\|\ *low_i*/*high_i*] ]
-[ |-J|\ *parameters* ]
-[ |-J|\ **z**\|\ **Z**\ *parameters* ]
-[ |-L|\ [**i**][*gap*] ]
-[ |-M| ]
-[ |-N|\ [**p**\|\ *dpi* ]]
-[ |-Q| ]
-[ |SYN_OPT-R| ]
-[ |-S|\ [**+a**\ *angle*][**+c**\|\ **n**\ ][**+s**][**+x**\ *label*][**+y**\ *unit*] ]
-[ |SYN_OPT-U| ]
-[ |SYN_OPT-V| ]
-[ |-W|\ *scale* ]
-[ |SYN_OPT-X| ]
-[ |SYN_OPT-Y| ]
-[ |-Z|\ *zfile* ]
-[ |SYN_OPT-p| ]
-[ |SYN_OPT-t| ]
-[ |SYN_OPT--| ]
-
-.. include:: colorbar_common.rst_
-
-Examples
---------
-
-.. include:: oneliner_info.rst_
-
-To plot a horizontal color scale (12 cm long; 0.5 cm wide) at the reference point (8,1)
-(paper coordinates) with justification at top center and automatic annotation interval, do
-
- ::
-
- gmt begin map
- gmt makecpt -T-200/1000/100 -Crainbow
- gmt colorbar -Dx8c/1c+w12c/0.5c+jTC+h -Bxaf+l"topography" -By+lkm
- gmt end show
-
-
-To append a vertical color scale (7.5 cm long; 1.25 cm wide) to the
-right of a plot that is 6 inch wide and 4 inch high, using illumination,
-and show back- and foreground colors, and annotating every 5 units, we
-provide the reference point and select the left-mid anchor point via
-
- ::
-
- gmt colorbar -Dx6.5i+jLM/2i+w7.5c/1.25c+e -Ccolors.cpt -I -Bx5+lBATHYMETRY -By+lm
-
-To overlay a horizontal color scale (4 inches long and default width) above a
-Mercator map produced by a previous call, ensuring a 2 cm offset from the map frame, use
-
- ::
-
- gmt colorbar -DjCT+w4i+o0/2c+h -Ccolors.cpt -Baf
-
-.. include:: colorbar_notes.rst_
-
-See Also
---------
-
-:doc:`gmt`, :doc:`makecpt`
-:doc:`gmtlogo`, :doc:`grd2cpt`
-:doc:`image`, :doc:`legend`
diff --git a/6.2.0rc1/_sources/contour.rst.txt b/6.2.0rc1/_sources/contour.rst.txt
deleted file mode 100644
index 41a821efc46..00000000000
--- a/6.2.0rc1/_sources/contour.rst.txt
+++ /dev/null
@@ -1,97 +0,0 @@
-.. index:: ! contour
-.. include:: module_core_purpose.rst_
-
-
-*********
-contour
-*********
-
-|contour_purpose|
-
-Synopsis
---------
-
-.. include:: common_SYN_OPTs.rst_
-
-**gmt contour** [ *table* ] |-J|\ *parameters*
-|SYN_OPT-Rz|
-[ |-A|\ [**n**\|\ *contours*][*labelinfo*] ]
-[ |SYN_OPT-B| ]
-[ |-C|\ *contours* ]
-[ |-D|\ [*template*] ] [ |-E|\ *indexfile* ]
-[ |-G|\ [**d**\|\ **f**\|\ **n**\|\ **l**\|\ **L**\|\ **x**\|\ **X**]\ *params* ]
-[ |-I| ] [ |-J|\ **z**\|\ **Z**\ *parameters* ]
-[ |-L|\ *pen* ] [ |-N| ]
-[ |-Q|\ [*cut*][**+z**] ]
-[ |-S|\ [*p*\|\ *t*] ]
-[ |-T|\ [**h**\|\ **l**][**+a**][**+d**\ *gap*\ [/*length*]][**+l**\ [*labels*]] ]
-[ |SYN_OPT-U| ]
-[ |SYN_OPT-V| ]
-[ |-W|\ [*type*]\ *pen*\ [**+c**\ [**l**\|\ **f**]] ]
-[ |SYN_OPT-X| ]
-[ |SYN_OPT-Y| ]
-[ |SYN_OPT-b| ]
-[ |SYN_OPT-d| ]
-[ |SYN_OPT-e| ]
-[ |SYN_OPT-h| ]
-[ |SYN_OPT-i| ]
-[ |SYN_OPT-l| ]
-[ |SYN_OPT-p| ]
-[ |SYN_OPT-qi| ]
-[ |SYN_OPT-t| ]
-[ |SYN_OPT-:| ]
-[ |SYN_OPT--| ]
-
-.. include:: contour_common.rst_
-
-Examples
---------
-
-.. include:: explain_example.rst_
-
-.. include:: oneliner_info.rst_
-
-To make a raw contour plot from the remote file Table_5.11.txt and draw the
-contours every 25 and annotate every 50, using the default Cartesian projection, try
-
- ::
-
- gmt contour @Table_5_11.txt -Wthin -C25 -A50 -B -pdf map
-
-To use the same data but only contour the values 750 and 800, use
-
- ::
-
- gmt contour @Table_5_11.txt -A750,800 -W0.5p -B -pdf map
-
-To create a color plot of the numerical temperature
-solution obtained on a triangular mesh whose node coordinates and
-temperatures are stored in temp.xyz and mesh arrangement is given by the
-file mesh.ijk, using the colors in temp.cpt, run
-
- ::
-
- gmt contour temp.xyz -R0/150/0/100 -Jx0.1i -Ctemp.cpt -G -W0.25p -pdf temp
-
-To save the triangulated 100-m contour lines in topo.txt and separate
-them into multisegment files (one for each contour level), try
-
- ::
-
- gmt contour topo.txt -C100 -Dcontours_%.0f.txt
-
-.. include:: contour_notes.rst_
-
-.. include:: auto_legend_info.rst_
-
-See Also
---------
-
-:doc:`gmt`, :doc:`gmt.conf`,
-:doc:`gmtcolors`,
-:doc:`grdcontour`,
-:doc:`grdimage`,
-:doc:`nearneighbor`,
-:doc:`basemap`, :doc:`colorbar`,
-:doc:`surface`,
-:doc:`triangulate`
diff --git a/6.2.0rc1/_sources/cookbook.rst.txt b/6.2.0rc1/_sources/cookbook.rst.txt
deleted file mode 100644
index a2f8351acef..00000000000
--- a/6.2.0rc1/_sources/cookbook.rst.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-########
-Cookbook
-########
-
-.. note::
-
- The GMT cookbook is for GMT 6 modern mode only. Looking for the classic mode cookbook?
- Since classic mode commands haven't changed since GMT 5, please visit
- the `GMT 5 cookbook `_ instead.
-
-**Pål (Paul) Wessel**:sup:`1`,
-**Walter H. F. Smith**:sup:`2`,
-**Remko Scharroo**:sup:`3`,
-**Joaquim F. Luis**:sup:`4`, \
-**Leonardo Uieda**:sup:`5`,
-**Florian Wobbe**:sup:`6`,
-**Dongdong Tian**:sup:`7`
-
-#. SOEST, University of Hawai'i at Manoa
-#. Laboratory for Satellite Altimetry, NOAA/NESDIS/STAR
-#. EUMETSAT, Darmstadt, Germany
-#. Universidade do Algarve, Faro, Portugal
-#. University of Liverpool, UK
-#. Sea and Sun Technology, Germany
-#. Michigan State University
-
-.. figure:: /_images/GMT6_Summit_2019.jpg
- :width: 1200 px
- :align: center
-
- Dongdong Tian, David Sandwell (Steering Committee Chair), Walter H.F. Smith, Paul Wessel,
- Joaquim Luis, Leo Uieda, and Dave Caress (Steering Committee Member)
- at the GMT Developer Summit in La Jolla, California, during July 29–August 2, 2019.
-
-.. toctree::
- :maxdepth: 1
- :numbered:
-
- cookbook/preface
- cookbook/introduction
- cookbook/features
- cookbook/options
- cookbook/coordinate-transformations
- cookbook/map-projections
- cookbook/supplemental-packages
- cookbook/file-formats
- cookbook/include-figures
- cookbook/predefined-patterns
- cookbook/octal-codes
- cookbook/postscript-fonts
- cookbook/gmt-latex
- cookbook/colorspace
- cookbook/data-filtering
- cookbook/non-unix-platforms
- cookbook/cpts
- cookbook/custom-symbols
- cookbook/contour-annotations
- cookbook/ogrgmt-format.rst
- cookbook/one-liner
diff --git a/6.2.0rc1/_sources/cookbook/colorspace.rst.txt b/6.2.0rc1/_sources/cookbook/colorspace.rst.txt
deleted file mode 100644
index 0658827cd28..00000000000
--- a/6.2.0rc1/_sources/cookbook/colorspace.rst.txt
+++ /dev/null
@@ -1,379 +0,0 @@
-.. _Color Space:
-
-Color Systems and Artificial Illumination
-=========================================
-
-In this Chapter, we are going to try to explain the relationship
-between the RGB, CMYK, and HSV color systems so as to (hopefully) make
-them more intuitive. GMT allows users to specify colors in CPTs
-in either of these three systems. Interpolation between colors is
-performed in either RGB or HSV, depending on the specification in the
-CPT. Below, we will explain why this all matters.
-
-RGB color system
-----------------
-
-Remember your (parents') first color television set? Likely it had three
-little bright colored squares on it: red, green, and blue. And that is
-exactly what each color on the tube is made of: varying levels of red,
-green and blue light. Switch all of them off, *r=g=b=0*, then you
-have black. All of them at maximum, *r=g=b=255*, creates white.
-Your computer screen works the same way.
-
-A mix of levels of red, green, and blue creates basically any color
-imaginable. In GMT each color can be represented by the triplet
-*r7g7b*. For example, 127/255/0 (half red, full
-green, and no blue) creates a color called chartreuse. The color sliders
-in the graphics program GIMP are an excellent way to experiment
-with colors, since they show you in advance how moving one of the color
-sliders will change the color. As Figure *(a)* of :ref:`Chartreuse in GIMP `
-shows: increase
-the red and you will get a more yellow color, while lowering the blue
-level will turn it into brown.
-
-.. _GIMP:
-
-.. figure:: /_images/gimp-sliders+panel.png
- :height: 230 px
- :width: 775 px
- :align: center
- :scale: 75 %
-
- Chartreuse in GIMP. *(a)* Sliders indicate how the color is altered
- when changing the H, S, V, R, G, or B levels. *(b)* For a constant hue (here 90)
- value increases to the right and saturation increases up, so the pure
- color is on the top right.
-
-Is chocolate your favorite color, but you do not know the RGB equivalent
-values? Then look them up in :doc:`/gmtcolors` for a full list.
-It's 210/105/30. But GMT makes it easy
-on you: you can specify pen, fill, and palette colors by any of the
-unique colors found in that file.
-
-Are you very web-savvy and work best with hexadecimal color codes as
-they are used in HTML? Even that is allowed in GMT. Just start with a
-hash mark (``#``) and follow with the 2 hexadecimal characters for red,
-green, and blue. For example, you can use ``#79ff00`` for chartreuse,
-``#D2691E`` for chocolate.
-
-HSV color system
-----------------
-
-If you have played around with RGB color sliders, you will have noticed
-that it is not intuitive to make a chosen color lighter or darker, more
-saturated or more gray. It would involve changing three sliders. To make
-it easier to manipulate colors in terms of lightness and saturation,
-another coordinate system was invented: HSV (hue, saturation, value).
-Those terms can be made clear best by looking at the color sliders in
-Figure :ref:`Chartreuse in GIMP `\ *a*. Hue (running from 0 to 360) gives you the full
-spectrum of saturated colors. Saturation (from 0 to 1, or 100%) tells
-you how ‘full' your color is: reduce it to zero and you only have gray
-scales. Value (from 0 to 1, or 100%) will bring you from black to a
-fully saturated color. Note that "value" is not the same as "intensity",
-or "lightness", used in other color geometries. "Brilliance" may be the
-best alternative word to describe "value". Apple calls it as
-"brightness", and hence refers to HSB for this color space.
-
-Want more chartreuse or chocolate? You can specify them in GMT as
-90-1-1 and 25-0.86-0.82, respectively.
-
-The color cube
---------------
-
-We are going to try to give you a geometric picture of color mixing in
-RGB and HSV by means of a tour of the RGB cube depicted in
-Figure :ref:`fig_ex11`. The geometric picture is most
-helpful, we think, since HSV are not orthogonal coordinates and not
-found from RGB by a simple algebraic transformation. So here goes: Look
-at the cube face with black, red, magenta, and blue corners. This is the
-*g* = 0 face. Orient the cube so that you are looking at this face
-with black in the lower left corner. Now imagine a right-handed
-cartesian (*rgb*) coordinate system with
-origin at the black point; you are looking at the *g = 0* plane
-with *r* increasing to your right, *g* increasing away from
-you, and *b* increasing up. Keep this sense of (*rgb*) as you look at the cube.
-
-Now tip the cube such that the black corner faces down and the white
-corner up. When looking from the top, you can see the hue, contoured in
-gray solid lines, running around in 360° counter-clockwise. It starts
-with shades of red (0), then goes through green (120) and blue (240),
-back to red.
-
-On the three faces that are now on the lower side (with the white print)
-one of (*rgb*) is equal to 0. These three
-faces meet at the black corner, where *r = g = b = 0*. On these
-three faces the colors are fully saturated: *s = 1*. The dashed
-white lines indicate different levels of *v*, ranging from 0 to 1
-with contours every 0.1.
-
-On the upper three faces (with the black print), one of
-(*rgb*) is equal to the maximum value. These
-three faces meet at the white corner, where *r = g = b = 255*. On
-these three faces value is at its maximum: *v = 1* (or 100%). The
-dashed black lines indicate varying levels of saturation: *s*
-ranges from 0 to 1 with contours every 0.1.
-
-Now turn the cube around on its vertical axis (running from the black to
-the white corner). Along the six edges that zigzag around the "equator",
-both saturation and value are maximum, so *s = v = 1*. Twirling
-the cube around and tracing the zigzag, you will visit six of the eight
-corners of the cube, with changing hue (*h*): red (0), yellow
-(60), green (120), cyan (180), blue (240), and magenta (300). Three of
-these are the RGB colors; the other three are the CMY colors which are
-the complement of RGB and are used in many color hardcopy devices (see
-below). The only cube corners you did not visit on this path are the
-black and white corners. They lie on the vertical axis where hue is
-undefined and *r = g = b*. Any point on this axis is a shade of gray.
-
-Let us call the points where *s = v = 1* (points along the RYGCBM
-path described above) the "pure" colors. If we start at a pure color and
-we want to whiten it, we can keep *h* constant and *v = 1*
-while decreasing *s*; this will move us along one of the cube
-faces toward the white point. If we start at a pure color and we want to
-blacken it, we can keep *h* constant and *s = 1* while
-decreasing *v*; this will move us along one of the cube faces
-toward the black point. Any point in (*rgb*)
-space which can be thought of as a mixture of pure color + white, or
-pure color + black, is on a face of the cube.
-
-The points in the interior of the cube are a little harder to describe.
-The definition for *h* above works at all points in (non-gray)
-(*rgb*) space, but so far we have only
-looked at (*s*, *v*) on the cube faces, not inside it. At
-interior points, none of (*rgb*) is equal to
-either 0 or 255. Choose such a point, not on the gray axis. Now draw a
-line through your point so that the line intersects the gray axis and
-also intersects the RYGCBM path of edges somewhere. It is always
-possible to construct this line, and all points on this line have the
-same hue. This construction shows that any point in RGB space can be
-thought of as a mixture of a pure color plus a shade of gray. If we move
-along this line away from the gray axis toward the pure color, we are
-"purifying" the color by "removing gray"; this move increases the
-color's saturation. When we get to the point where we cannot remove any
-more gray, at least one of (*rgb*) will have
-become zero and the color is now fully saturated; *s = 1*.
-Conversely, any point on the gray axis is completely undersaturated, so
-that *s = 0* there. Now we see that the black point is special,
-*s* is both 0 and 1 at the same time. In other words, at the black
-point saturation in undefined (and so is hue). The convention is to use
-*h = s = v = 0* at this point.
-
-It remains to define value. To do so, try this: Take your point in RGB
-space and construct a line through it so that this line goes through the
-black point; produce this line from black past your point until it hits
-a face on which *v = 1*. All points on this line have the same
-hue. Note that this line and the line we made in the previous paragraph
-are both contained in the plane whose hue is constant. These two lines
-meet at some arbitrary angle which varies depending on which point you
-chose. Thus HSV is not an orthogonal coordinate system. If the line you
-made in the previous paragraph happened to touch the gray axis at the
-black point, then these two lines are the same line, which is why the
-black point is special. Now, the line we made in this paragraph
-illustrates the following: If your chosen point is not already at the
-end of the line, where *v = 1*, then it is possible to move along
-the line in that direction so as to increase
-(*rgb*) while keeping the same hue. The
-effect this has on a color monitor is to make the color more
-"brilliant", your hue will become "stronger"; if you are already on a
-plane where at least one of (*rgb*) = 255,
-then you cannot get a stronger version of the same hue. Thus, *v*
-measures brilliance or strength. Note that it is not quite true to say
-that *v* measures distance away from the black point, because
-*v* is not equal to :math:`\sqrt{r^2 + g^2 + b^2}/255`.
-
-Another representation of the HSV space is the color cone illustrated in
-Figure :ref:`hsv_cone`.
-
-.. _hsv_cone:
-
-.. figure:: /_images/hsv-cone.png
- :height: 508 px
- :width: 750 px
- :align: center
- :scale: 50 %
-
- The HSV color space
-
-Color interpolation
--------------------
-
-From studying the RGB cube, we hope you will have understood that there
-are different routes to follow between two colors, depending whether you
-are in the RGB or HSV system. Suppose you would make an interpolation
-between blue and red. In the RGB system you would follow a path
-diagonally across a face of the cube, from 0/0/255 (blue) via 127/0/127
-(purple) to 255/0/0 (red). In the HSV system, you would trace two edges,
-from 240-1-1 (blue) via 300-1-1 (magenta) to 360-1-1 (red). That is even
-assuming software would be smart enough to go the shorter route. More
-likely, red will be recorded as 0-1-1, so hue will be interpolated the
-other way around, reducing hue from 240 to 0, via cyan, green, and yellow.
-
-Depending on the design of your CPT, you may want to have it
-either way. By default, GMT interpolates in RGB space, even when the
-original CPT is in the HSV system. However, when you add the
-line ``#COLOR_MODEL=+HSV`` (with the leading '+' sign) in the header of
-the CPT, GMT will not only read the color
-representation as HSV values, but also interpolate colors in the HSV
-system. That means that H, S, and V values are interpolated linearly
-between two colors, instead of their respective R, G, and B values.
-
-The top row in Figure :ref:`Interpolating colors `
-illustrates two examples: a blue-white-red scale (the palette in
-Chapter :ref:`Of Colors and Color Legends`) interpolated in RGB and the palette interpolated in
-HSV. The bottom row of the Figure demonstrates how things can go
-terribly wrong when you do the interpolation in the other system.
-
-.. _color_interpolate:
-
-.. figure:: /_images/GMT_color_interpolate.*
- :width: 500 px
- :align: center
-
- When interpolating colors, the color system matters. The polar palette on the left needs to
- be interpolated in RGB, otherwise hue will change between blue (240) and white (0). The rainbow
- palette should be interpolated in HSV, since only hue should change between magenta (300) and red (0).
- Diamonds indicate which colors are defined in the palettes; they are fixed, the rest is interpolated.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_color_interpolate.txt
-
-Artificial illumination
------------------------
-
-.. _slope2intensity:
-
-.. figure:: /_images/GMT_slope2intensity.*
- :width: 500 px
- :align: center
-
- For digital elevation models (DEM) one can specify an illumination azimuth
- and elevation and compute the unit vector **s**. Then, at any point on the grid
- we can compute the normal vector **n**. Their dot products can be used to compute an
- *intensity* grid that will be positive if the surface faces the light, negative if facing
- away, and zero if the vectors are orthogonal. In GMT, uses may wish to add artificial
- illumination on non-DEM data, such as geopotential data. In those cases, while an
- illumination azimuth still makes sense, an elevation does not since the normal vectors
- no longer can easily be related to elevation. GMT thus only uses the directions of these
- vectors and normalizes the intensities to yield suitable shading; see :doc:`/grdgradient`
- for more details.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_slope2intensity.txt
-
-GMT uses the HSV system to achieve artificial illumination of colored
-images (e.g., **-I** option in :doc:`/grdimage`) by changing the saturation
-*s* and value *v* coordinates of the color. As explained above, when the *intensity* is zero
-(flat illumination), the data are colored according to the CPT. If
-the intensity is non-zero, the color is either lightened or darkened
-depending on the illumination. The color is first converted to HSV (if
-necessary) and then darkened by moving (*sv*) toward
-(:term:`COLOR_HSV_MIN_S`, :term:`COLOR_HSV_MIN_V`)
-if the intensity is negative, or lightened by sliding (*sv*) toward
-(:term:`COLOR_HSV_MAX_S`, :term:`COLOR_HSV_MAX_V`)
-if the illumination is positive. The extremes of the *s* and *v* are defined in the
-:doc:`/gmt.conf` file and are usually chosen so the corresponding points are nearly black
-(*s = 1*, *v = 0*) and white (*s = 0*, *v = 1*).
-The reason this works is that the HSV system allows movements in color
-space which correspond more closely to what we mean by "tint" and
-"shade"; an instruction like "add white" is easy in HSV and not so
-obvious in RGB.
-
-.. _color_hsv:
-
-.. figure:: /_images/GMT_color_hsv.*
- :width: 500 px
- :align: center
-
- The red circle represents the RGB color (217, 271, 54). This color has a hue that
- is yellow, which is H = 60 degrees in the HSV system. Here we show a slice through
- the color RGB cube at H = 60. All the colors in this slice have a yellow hue but
- there saturation and values vary. Our point has an S of 0.75 and a V of 0.85. In
- applications that take intensity values we use an intensity (in the range of ±1)
- to move the color towards the black (B) or white (W) point for negative and positive
- intensities, respectively (an intensity of 0 leaves the color unchanged). Because (a) printers
- are not good at yielding near-black or near-white colors, and (2) to avoid colors
- with saturating intensities being pushed into black and white, we do not use the
- B and W points as terminal points but instead end at the two white circles. Their
- coordinates are given by (:term:`COLOR_HSV_MIN_S`, :term:`COLOR_HSV_MIN_V`) [1, 0.3]
- and (:term:`COLOR_HSV_MAX_S`, :term:`COLOR_HSV_MAX_V`) [0.1, 1].
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_color_hsv.txt
-
-Thinking in RGB or HSV
-----------------------
-
-The RGB system is understandable because it is cartesian, and we all
-learned cartesian coordinates in school. But it doesn't help us create a
-tint or shade of a color; we cannot say, "We want orange, and a lighter
-shade of orange, or a less vivid orange". With HSV we can do this, by
-saying, "Orange must be between red and yellow, so its hue is about
-*h = 30*; a less vivid orange has a lesser *s*, a darker
-orange has a lesser *v*". On the other hand, the HSV system is a
-peculiar geometric construction, more like a cone
-(Figure :ref:`hsv_cone`). It is not an orthogonal coordinate system, and
-it is not found by a matrix transformation of RGB; these make it
-difficult in some cases too. Note that a move toward black or a move
-toward white will change both *s* and *v*, in the general
-case of an interior point in the cube. The HSV system also doesn't
-behave well for very dark colors, where the gray point is near black and
-the two lines we constructed above are almost parallel. If you are
-trying to create nice colors for drawing chocolates, for example, you
-may be better off guessing in RGB coordinates.
-
-CMYK color system
------------------
-
-Finally, you can imagine that printers work in a different way: they mix
-different paints to make a color. The more paint, the darker the color,
-which is the reverse of adding more light. Also, mixing more colored
-paints does not give you true black, so that means that you really need
-four colors to do it right. Open up your color printer and you'll
-probably find four cartridges: cyan, magenta, yellow (often these are
-combined into one), and black. They form the CMYK system of colors, each
-value running from 0 to 1 (or 100%). In GMT CMYK color coding can be
-achieved using *c/m/y/k* quadruplets.
-
-.. _color_cmyk:
-
-.. figure:: /_images/GMT_cmyk.*
- :width: 500 px
- :align: center
-
- (left) Mixing of light on a computer screen shows that the mixing
- of primary colors red (R), green (G) and blue (B) yields the other
- primary colors of magenta (M), cyan (C) and yellow (Y), plus white.
- (right) Mixing of colors for printing uses C, M and Y and when these
- mix completely we get black (K). To get a better representation of black
- the amount of black in any particular color is removed from the color
- and painted with a specific black ink instead, leading to under-color
- removal of the remaining three pigments.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_cmyk.txt
-
-Obviously, there is no unique way to go from the 3-dimensional RGB
-system to the 4-dimensional CMYK system. So, again, there is a lot of
-hand waving applied in the transformation. Strikingly, CMYK actually
-covers a smaller color space than RGB. We will not try to explain you
-the details behind it, just know that there is a transformation needed
-to go from the colors on your screen to the colors on your printer. It
-might explain why what you see is not necessarily what you get. If you
-are really concerned about how your color plots will show up in your PhD
-thesis, for example, it might be worth trying to save and print all your
-color plots using the CMYK system. Letting GMT do the conversion to
-CMYK may avoid some nasty surprises when it comes down to printing. To
-specify the color space of your PostScript file, set
-:term:`PS_COLOR_MODEL` in the :doc:`/gmt.conf` file to RGB, HSV, or CMYK.
diff --git a/6.2.0rc1/_sources/cookbook/contour-annotations.rst.txt b/6.2.0rc1/_sources/cookbook/contour-annotations.rst.txt
deleted file mode 100644
index a9e8bb9e63f..00000000000
--- a/6.2.0rc1/_sources/cookbook/contour-annotations.rst.txt
+++ /dev/null
@@ -1,539 +0,0 @@
-Annotation of Contours and "Quoted Lines"
-=========================================
-
-The GMT programs :doc:`/grdcontour` (for
-data given as 2-dimensional grids) and
-:doc:`/contour` (for *x,y,z* tables) allow
-for contouring of data sets, while :doc:`/plot`
-and :doc:`/plot3d` can plot lines based on *x,y*-
-and *x,y,z*-tables, respectively. In both cases it may be necessary to
-attach labels to these lines. Clever or optimal placements of labels is
-a very difficult topic, and GMT provides several algorithms for this
-placement as well as complete freedom in specifying the attributes of
-the labels. Because of the richness of these choices we present this
-Chapter which summarizes the various options and gives several examples
-of their use.
-
-Label Placement
----------------
-
-While the previous GMT versions 1–3 allowed for a single algorithm
-that determined where labels would be placed, GMT 4 allows for five
-different algorithms. Furthermore, a new "symbol" option (**-Sq** for
-"quoted line") has been added to :doc:`/plot` and
-:doc:`/plot3d` and hence the new label placement
-mechanisms apply to those programs as well. The contouring programs
-expect the algorithm to be specified as arguments to **-G** while the
-line plotting programs expect the same arguments to follow **-Sq**. The
-information appended to these options is the same in both cases and is
-of the form [**code**]\ *info*. The five algorithms correspond to the
-five codes below (some codes will appear in both upper and lower case;
-they share the same algorithm but differ in some other ways). In what
-follows, the phrase "line segment" is taken to mean either a contour or
-a line to be labeled. The codes are:
-
-**d**:
- Full syntax is
- **d**\ *dist*\ [**c**\|\ **i**\|\ **p**][/\ *frac*].
- Place labels according to the distance measured along the projected
- line on the map. Append the unit you want to measure distances in
- [Default is taken from :term:`PROJ_LENGTH_UNIT`]. Starting at the
- beginning of a line, place labels every *dist* increment of distance
- along the line. To ensure that closed lines whose total length is
- less than *dist* get annotated, we may append *frac* which will
- place the first label at the distance *d = dist*
- :math:`\times` *frac* from the start of a closed line (and every
- *dist* thereafter). If not given, *frac* defaults to 0.25.
-
-**D**:
- Full syntax is
- **D**\ *dist*\ [**d**\|\ **m**\|\ **s**\|\ **e**\|\ **f**\|\ **k**\|\ **M**\|\ **n**][/\ *frac*].
- This option is similar to **d** except the original data must be
- referred to geographic coordinates (and a map projection must have
- been chosen) and actual Earth [36]_ surface distances along the
- lines are considered. Append the unit you want to measure distances
- in; choose among arc **d**\ egree, **m**\ inute, and **s**\ econd,
- or m\ **e**\ ter [Default], **f**\ eet, **k**\ ilometer, statute
- **M**\ iles, or **n**\ autical miles. Other aspects are similar to
- code **d**.
-
-**f**:
- Full syntax is
- **f**\ *fix.txt*\ [/*slop*\ [**c**\|\ **i**\|\ **p**]].
- Here, an ASCII file *fix.txt* is given which must contain records
- whose first two columns hold the coordinates of points along the
- lines at which locations the labels should be placed. Labels will
- only be placed if the coordinates match the line coordinates to
- within a distance of *slop* (append unit or we use
- :term:`PROJ_LENGTH_UNIT`). The default *slop* is zero, meaning only
- exact coordinate matches will do.
-
-**l**:
- Full syntax is **l**\ *line1*\ [,\ *line2*\ [, ...]]. One or more
- straight line segments are specified separated by commas, and labels
- will be placed at the intersections between these lines and our line
- segments. Each *line* specification implies a *start* and *stop*
- point, each corresponding to a coordinate pair. These pairs can be
- regular coordinate pairs (i.e., longitude/latitude separated by a
- slash), or they can be two-character codes that refer to
- predetermined points relative to the map region. These codes are
- taken from the :doc:`/text` justification keys
- [**L**\|\ **C**\|\ **R**][**B**\|\ **M**\|\ **T**]
- so that the first character determines the *x*-coordinate and
- the second determines the *y*-coordinate. In
- :doc:`/grdcontour`, you can also use
- the two codes **Z+** and **Z-** as shorthands for the location of
- the grid's global maximum and minimum, respectively. For example,
- the *line* **LT**/**RB** is a diagonal from the upper left to the
- lower right map corner, while **Z-**/135W/15S is a line from the
- grid minimum to the point (135°W, 15°S).
-
-**L**:
- Same as **l** except we will treat the lines given as great circle
- start/stop coordinates and fill in the points between before looking
- for intersections. You must make sure not to give antipodal start and
- stop coordinates since the great circle path would be undefined.
-
-**n**:
- Full syntax is
- **n**\ *number*\ [/*minlength*\ [**c**\|\ **i**\|\ **p**]].
- Place *number* of labels along each line regardless of total line
- length. The line is divided into *number* segments and the labels
- are placed at the centers of these segments. Optionally, you may
- give a *minlength* distance to ensure that no labels are placed
- closer than this distance to its neighbors.
-
-**N**:
- Full syntax is
- **N**\ *number*\ [/*minlength*\ [**c**\|\ **i**\|\ **p**]].
- Similar to code **n** but here labels are placed at the ends of each
- segment (for *number* >= 2). A special case arises for
- *number = 1* when a single label will be placed according to
- the sign of *number*: -1 places one label justified at the
- start of the line, while +1 places one label justified at
- the end of the line.
-
-**s**:
- Similar to **n** but splits input lines into a series of two-point
- line segments first. The rest of the algorithm them operates on
- these sets of lines. This code (and **S**) are specific to
- quoted lines.
-
-**S**:
- Similar to **N** but with the modification described for **s**.
-
-**x**:
- Full syntax is **x**\ *cross.d*. Here, an ASCII file *cross.d* is a
- multi-segment file whose lines will intersect our segment lines;
- labels will be placed at these intersections.
-
-**X**:
- Same as **x** except we treat the lines given as great circle
- start/stop coordinates and fill in the points between before looking
- for intersections.
-
-Only one algorithm can be specified at any given time.
-
-Label Attributes
-----------------
-
-Determining where to place labels is half the battle. The other half is
-to specify exactly what are the attributes of the labels. It turns out
-that there are quite a few possible attributes that we may want to
-control, hence understanding how to specify these attributes becomes
-important. In the contouring programs, one or more attributes may be
-appended to the **-A** option using the format +\ *code*\ [*args*] for
-each attribute, whereas for the line plotting programs these attributes
-are appended to the **-Sq** option following a colon (:) that separates
-the label codes from the placement algorithm. Several of the attributes
-do not apply to contours so we start off with listing those that apply
-universally. These codes are:
-
-**+a**:
- Controls the angle of the label relative to the angle of the line.
- Append **n** for normal to the line, give a fixed *angle* measured
- counter-clockwise relative to the horizontal. or append **p** for
- parallel to the line [Default]. If using
- :doc:`/grdcontour` the latter option
- you may further append **u** or **d** to get annotations whose upper
- edge always face the next higher or lower contour line.
-
-**+c**:
- Surrounding each label is an imaginary label "textbox" which defines
- a region in which no segment lines should be visible. The initial
- box provides an exact fit to the enclosed text but clearance may be
- extended in both the horizontal and vertical directions (relative to
- the label baseline) by the given amounts. If these should be
- different amounts please separate them by a slash; otherwise the
- single value applies to both directions. Append the distance units
- of your choice (**c\|\ i\|\ m\|\ p**), or
- give % to indicate that the clearance should be this fixed
- percentage of the label font size in use. The default is 15%.
-
-**+d**:
- Debug mode. This is useful when testing contour placement as it will
- draw the normally invisible helper lines and points in the label
- placement algorithms above.
-
-**+e**:
- Delayed mode, to delay the plotting of the text as text clipping is set instead.
-
-**+f**:
- Specifies the desired label font, including size or color. See
- :doc:`/text` for font names or numbers.
- The default font is given by :term:`FONT_ANNOT_PRIMARY`.
-
-**+g**:
- Selects opaque rather than the default transparent text boxes. You
- may optionally append the color you want to fill the label boxes;
- the default is the same as :term:`PS_PAGE_COLOR`.
-
-**+j**:
- Selects the justification of the label relative to the placement
- points determined above. Normally this is center/mid justified
- (**CM** in :doc:`/text` justification
- parlance) and this is indeed the default setting. Override by using
- this option and append another justification key code from
- [**L**\|\ **C**\|\ **R**][**B**\|\ **M**\|\ **T**].
- Note for curved text (**+v**) only vertical justification will be
- affected.
-
-**+o**:
- Request a rounded, rectangular label box shape; the default is
- rectangular. This is only manifested if the box is filled or
- outlined, neither of which is implied by this option alone (see
- **+g** and **+p**). As this option only applies to straight text, it
- is ignored if **+v** is given.
-
-**+p**:
- Selects the drawing of the label box outline; append your preferred
- *pen* unless you want the default GMT pen [0.25p,black].
-
-**+r**:
- Do *not* place labels at points along the line whose local radius of
- curvature falls below the given threshold value. Append the radius
- unit of your choice (**c**\|\ **i**\|\ **p**) [Default is 0].
-
-**+u**:
- Append the chosen *unit* to the label. Normally a space will
- separate the label and the unit. If you want to close this gap,
- append a *unit* that begins with a hyphen (-). If you are contouring
- with :doc:`/grdcontour` and you specify
- this option without appending a unit, the unit will be taken from
- the *z*-unit attribute of the grid header.
-
-**+v**:
- Place curved labels that follow the wiggles of the line segments.
- This is especially useful if the labels are long relative to the
- length-scale of the wiggles. The default places labels on an
- invisible straight line at the angle determined.
-
-**+w**:
- The angle of the line at the point of straight label placement is
- calculated by a least-squares fit to the *width* closest points. If
- not specified, *width* defaults to 10.
-
-**+=**:
- Similar in most regards to **+u** but applies instead to a label
- *prefix* which you must append.
-
-For contours, the label will be the value of the contour (possibly
-modified by **+u** or **+=**). However, for quoted lines other options apply:
-
-**+l**:
- Append a fixed *label* that will be placed at all label locations.
- If the label contains spaces you must place it inside matching
- quotes.
-
-**+L**:
- Append a code *flag* that will determine the label. Available codes
- are:
-
- **+Lh**:
- Take the label from the current multi-segment header (hence it
- is assumed that the input line segments are given in the
- multi-segment file format; if not we pick the single label from
- the file's header record). We first scan the header for an
- embedded **-L**\ *label* option; if none is found we instead use
- the first word following the segment marker [>].
-
- **+Ld**:
- Take the Cartesian plot distances along the line as the label;
- append **c**\|\ **i**\|\ **p** as the unit [Default is
- :term:`PROJ_LENGTH_UNIT`]. The label will be formatted according
- to the :term:`FORMAT_FLOAT_OUT` string, *unless* label placement
- was determined from map distances along the segment lines, in
- which case we determine the appropriate format from the distance
- value itself.
-
- **+LD**:
- Calculate actual Earth surface distances and use the distance at
- the label placement point as the label; append
- **d**\|\ **e**\|\ **f**\|\ **k**\|\ **m**\|\ **M**\|\ **n**\|\ **s**
- to specify the unit [If not given we default to **d**\ egrees,
- *unless* label placement was determined from map distances along
- the segment lines, in which case we use the same unit specified
- for that algorithm]. Requires a map projection to be used.
-
- **+Lf**:
- Use all text after the 2nd column in the fixed label location
- file *fix.txt* as labels. This choice obviously requires the
- fixed label location algorithm (code **f**) to be in effect.
-
- **+Ln**:
- Use the running number of the current multi-segment as label.
-
- **+LN**:
- Use a slash-separated combination of the current file number and
- the current multi-segment number as label.
-
- **+Lx**:
- As **h** but use the multi-segment headers in the *cross.d* file
- instead. This choice obviously requires the crossing segments
- location algorithm (code **x\|\ X**) to be in effect.
-
-Examples of Contour Label Placement
------------------------------------
-
-We will demonstrate the use of these options with a few simple examples.
-First, we will contour a subset of the global geoid data used in
-Example :ref:`example_01`; the region selected encompasses the world's strongest
-"geoid dipole": the Indian Low and the New Guinea High.
-
-Equidistant labels
-~~~~~~~~~~~~~~~~~~
-
-Our first example uses the default placement algorithm. Because of the
-size of the map we request contour labels every 1.5 inches along the
-lines:
-
-
-.. literalinclude:: /_verbatim/GMT_App_O_1.txt
-
-As seen in Figure :ref:`Contour label 1 `, the contours are
-placed rather arbitrary. The string of contours for -40 to
-60 align well but that is a fortuitous consequence of reaching
-the 1.5 inch distance from the start at the bottom of the map.
-
-.. _Contour_label_1:
-
-.. figure:: /_images/GMT_App_O_1.*
- :width: 500 px
- :align: center
-
- Equidistant contour label placement with **-Gd**, the only algorithm
- available in previous GMT versions.
-
-
-Fixed number of labels
-~~~~~~~~~~~~~~~~~~~~~~
-
-We now exercise the option for specifying exactly how many labels each
-contour line should have:
-
-.. literalinclude:: /_verbatim/GMT_App_O_2.txt
-
-By selecting only one label per contour and requiring that labels only
-be placed on contour lines whose length exceed 1 inch, we achieve the
-effect shown in Figure :ref:`Contour label 2 `.
-
-.. _Contour_label_2:
-
-.. figure:: /_images/GMT_App_O_2.*
- :width: 500 px
- :align: center
-
- Placing one label per contour that exceed 1 inch in length, centered on the segment with **-Gn**.
-
-
-Prescribed label placements
-~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Here, we specify four points where we would like contour labels to be
-placed. Our points are not exactly on the contour lines so we give a
-nonzero "slop" to be used in the distance calculations: The point on the
-contour closest to our fixed points and within the given maximum
-distance will host the label.
-
-.. literalinclude:: /_verbatim/GMT_App_O_3.txt
-
-The angle of the label is evaluated from the contour line geometry, and
-the final result is shown in Figure :ref:`Contour label 3 `.
-To aid in understanding the algorithm we chose to specify "debug" mode
-(**+d**) which placed a small circle at each of the fixed points.
-
-.. _Contour_label_3:
-
-.. figure:: /_images/GMT_App_O_3.*
- :width: 500 px
- :align: center
-
- Four labels are positioned on the points along the contours that are
- closest to the locations given in the file fix.txt in the **-Gf** option.
-
-
-Label placement at simple line intersections
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Often, it will suffice to place contours at the imaginary intersections
-between the contour lines and a well-placed straight line segment. The
-**-Gl** or **-GL** algorithms work well in those cases:
-
-.. literalinclude:: /_verbatim/GMT_App_O_4.txt
-
-The obvious choice in this example is to specify a great circle between
-the high and the low, thus placing all labels between these extrema.
-
-.. _Contour_label_4:
-
-.. figure:: /_images/GMT_App_O_4.*
- :width: 500 px
- :align: center
-
- Labels are placed at the intersections between contours and the great circle specified in the **-GL** option.
-
-
-The thin debug line in Figure :ref:`Contour label 4 ` shows
-the great circle and the intersections where labels are plotted. Note
-that any number of such lines could be specified; here we are content
-with just one.
-
-Label placement at general line intersections
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-If (1) the number of intersecting straight line segments needed to pick
-the desired label positions becomes too large to be given conveniently
-on the command line, or (2) we have another data set or lines whose
-intersections we wish to use, the general crossing algorithm makes more
-sense:
-
-.. literalinclude:: /_verbatim/GMT_App_O_5.txt
-
-.. _Contour_label_5:
-
-.. figure:: /_images/GMT_App_O_5.*
- :width: 500 px
- :align: center
-
- Labels are placed at the intersections between contours and the
- multi-segment lines specified in the **-GX** option.
-
-
-In this case, we have created three strands of lines whose intersections
-with the contours define the label placements, presented in
-Figure :ref:`Contour label 5 `.
-
-Examples of Label Attributes
-----------------------------
-
-We will now demonstrate some of the ways to play with the label
-attributes. To do so we will use :doc:`/plot` on
-a great-circle line connecting the geoid extrema, along which we have
-sampled the ETOPO5 relief data set. The file thus contains *lon, lat,
-dist, geoid, relief*, with distances in km.
-
-Label placement by along-track distances, 1
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-This example will change the orientation of labels from along-track to
-across-track, and surrounds the labels with an opaque, outlined text box
-so that the label is more readable. We choose the place the labels every
-1000 km along the line and use that distance as the label. The labels
-are placed normal to the line:
-
-.. literalinclude:: /_verbatim/GMT_App_O_6.txt
-
-.. _Contour_label_6:
-
-.. figure:: /_images/GMT_App_O_6.*
- :width: 500 px
- :align: center
-
- Labels attributes are controlled with the arguments to the **-Sq** option.
-
-
-The composite illustration in Figure :ref:`Contour label 6 `
-shows the new effects. Note that the line connecting the extrema does
-not end exactly at the ‘-' and ‘+' symbols. This is because the
-placements of those symbols are based on the mean coordinates of the
-contour and not the locations of the (local or global) extrema.
-
-Label placement by along-track distances, 2
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-A small variation on this theme is to place the labels parallel to the
-line, use spherical degrees for placement, append the degree symbol as a
-unit for the labels, choose a rounded rectangular text box, and
-inverse-video the label:
-
-.. literalinclude:: /_verbatim/GMT_App_O_7.txt
-
-The output is presented as Figure :ref:`Contour label 7 `.
-
-.. _Contour_label_7:
-
-.. figure:: /_images/GMT_App_O_7.*
- :width: 500 px
- :align: center
-
- Another label attribute example.
-
-
-Using a different data set for labels
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-In the next example we will use the bathymetry values along the transect
-as our label, with placement determined by the distance along track. We
-choose to place labels every 1500 km. To do this we need to pull out
-those records whose distances are multiples of 1500 km and create a
-"fixed points" file that can be used to place labels and specify the
-labels. This is done with **awk**.
-
-.. literalinclude:: /_verbatim/GMT_App_O_8.txt
-
-The output is presented as Figure :ref:`Contour label 8 `.
-
-.. _Contour_label_8:
-
-.. figure:: /_images/GMT_App_O_8.*
- :width: 500 px
- :align: center
-
- Labels based on another data set (here bathymetry) while the placement is based on distances.
-
-
-Putting it all together
------------------------
-
-Finally, we will make a more complex composite illustration that uses
-several of the label placement and label attribute settings discussed in
-the previous sections. We make a map showing the tsunami travel times
-(in hours) from a hypothetical catastrophic landslide in the Canary
-Islands [37]_. We lay down a color map based on the travel times and the
-shape of the seafloor, and travel time contours with curved labels as
-well as a few quoted lines. The final script is
-
-.. literalinclude:: /_verbatim/GMT_App_O_9.txt
-
-with the complete illustration presented as Figure
-:ref:`Contour label 9 `.
-
-.. _Contour_label_9:
-
-.. figure:: /_images/GMT_App_O_9.*
- :width: 500 px
- :align: center
-
- Tsunami travel times from the Canary Islands to places in the Atlantic,
- in particular New York. Should a catastrophic landslide occur it is possible
- that New York will experience a large tsunami about 8 hours after the event.
-
-Footnotes
----------
-
-.. [36]
- or whatever planet we are dealing with.
-
-.. [37]
- Travel times were calculated using Geoware's travel time calculator,
- **ttt**; see ``_.
diff --git a/6.2.0rc1/_sources/cookbook/coordinate-transformations.rst.txt b/6.2.0rc1/_sources/cookbook/coordinate-transformations.rst.txt
deleted file mode 100644
index 8edeec0e69f..00000000000
--- a/6.2.0rc1/_sources/cookbook/coordinate-transformations.rst.txt
+++ /dev/null
@@ -1,330 +0,0 @@
-GMT Coordinate Transformations
-==============================
-
-GMT programs read real-world coordinates and convert them to positions on a plot. This is achieved by selecting one of
-several coordinate transformations or projections. We distinguish between three sets of such conversions:
-
-- :ref:`Cartesian coordinate transformations `
-
-- :ref:`Polar coordinate transformations `
-
-- :doc:`Map coordinate transformations `
-
-The next Chapter will be dedicated to GMT map projections in its entirety. Meanwhile, the present Chapter will summarize
-the properties of the :ref:`Cartesian ` and
-:ref:`Polar ` coordinate transformations available
-in GMT, list which parameters define them, and demonstrate how they are used to create simple plot axes. We will mostly
-be using :doc:`/basemap` (and occasionally :doc:`/plot`) to demonstrate the various transformations. Our illustrations
-may differ from those you reproduce with the same commands because of different settings in our ``gmt.conf`` file.
-Finally, note that while we will specify dimensions in inches (by appending **i**), you may want to use cm (**c**), or
-points (**p**) as :ref:`unit ` instead.
-
-Cartesian coordinate transformations
---------------------------------------------------------------------------------
-
-GMT Cartesian coordinate transformations come in three flavors:
-
-- :ref:`cookbook/coordinate-transformations:Linear coordinate transformation`
-
-- :ref:`cookbook/coordinate-transformations:Logarithmic coordinate transformation`
-
-- :ref:`cookbook/coordinate-transformations:Power (exponential) coordinate transformation`
-
-These transformations convert input coordinates :math:`(x,y)` to locations :math:`(x', y')` on a plot. There is no
-coupling between :math:`x` and :math:`y` (i.e., :math:`x' = f(x)` and :math:`y' = f(y)`); it is a **one-dimensional**
-projection. Hence, we may use separate transformations for the :math:`x`- and :math:`y`-axes (and :math:`z`-axes for 3-D
-plots). Below, we will use the expression :math:`u' = f(u)`, where :math:`u` is either :math:`x` or :math:`y` (or
-:math:`z` for 3-D plots). The coefficients in :math:`f(u)` depend on the desired plot size (or scale), the chosen
-:math:`(x,y)` domain, and the nature of :math:`f` itself.
-
-Two subsets of linear will be discussed separately; these are a polar (cylindrical) projection and a linear projection
-applied to geographic coordinates (with a 360° periodicity in the *x*-coordinate). We will show examples of all of these
-projections using dummy data sets created with :doc:`/gmtmath`, a "Reverse Polish Notation" (RPN) calculator that
-operates on or creates table data:
-
- ::
-
- gmt math -T0/100/1 T SQRT = sqrt.txt
- gmt math -T0/100/10 T SQRT = sqrt10.txt
-
-.. _-Jx_linear:
-
-Linear coordinate transformation
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-There are in fact three different uses of the Cartesian linear transformation, each associated with specific command
-line options. The different manifestations result from specific properties of three kinds of data:
-
-#. :ref:`cookbook/coordinate-transformations:Regular floating point coordinates`
-
-#. :ref:`cookbook/coordinate-transformations:Geographic coordinates`
-
-#. :ref:`cookbook/coordinate-transformations:Calendar time coordinates`
-
-Regular floating point coordinates
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-**Syntax**
-
- **-Jx**\|\ **X**\ *x-scale*\|\ *width*\ [*/y-scale*\|\ *height*]
-
-**Parameters**
-
-- The *x-scale* in :ref:`plot-units `/data-unit (with **-Jx**) or the *width* (*x*-axis length) in
- :ref:`plot-units ` (with **-JX**).
-- Optionally, the *y-scale* in :ref:`plot-units `/data-unit (with **-Jx**) or the *height* (*y*-axis length)
- in :ref:`plot-units ` (with **-JX**). If the *y*-scale or *y*-axis length is different from that of the
- *x*-axis (which is most often the case), separate the two scales (or lengths) by a slash, e.g., **-Jx**\ 0.1i/0.5i
- or **-JX**\ 8i/5i.
-
-**Description**
-
-Selection of the Cartesian linear transformation with regular floating point coordinates will result in a simple linear
-scaling :math:`u' = au + b` of the input coordinates.
-
-Normally, the user's :math:`x`-values will increase to the right and the :math:`y`-values will increase upwards. It
-should be noted that in many situations it is desirable to have the direction of positive coordinates be reversed. For
-example, when plotting depth on the *y*-axis it makes more sense to have the positive direction downwards. All that is
-required to reverse the sense of positive direction is to supply a negative *scale* (or *width*). Finally, sometimes it
-is convenient to specify the *width* (or *height*) of a map and let the other dimension be computed based on the implied
-scale and the range of the other axis. To do this, simply specify the length to be recomputed as **0**.
-
-**Example**
-
-Our :math:`y = \sqrt{x}` data set can be plotted as follows:
-
-.. literalinclude:: /_verbatim/GMT_linear.txt
-
-.. figure:: /_images/GMT_linear.*
- :width: 400 px
- :align: center
-
- Linear transformation of Cartesian coordinates.
-
-Geographic coordinates
-^^^^^^^^^^^^^^^^^^^^^^
-
-**Syntax**
-
- **-Jx**\|\ **X**\ *x-scale*\|\ *width*\ [*/y-scale*\|\ *height*][**d**\|\ **g**] or **-Rg**\|\ **d**
-
-**Parameters**
-
-- The *x-scale* in :ref:`plot-units `/data-unit (with **-Jx**) or the *width* (*x*-axis length) in
- :ref:`plot-units ` (with **-JX**).
-- Optionally, the *y-scale* in :ref:`plot-units `/data-unit (with **-Jx**) or the *height* (*y*-axis length)
- in :ref:`plot-units ` (with **-JX**). If the *y*-scale or *y*-axis length is different from that of the
- *x*-axis (which is most often the case), separate the two scales (or lengths) by a slash, e.g., **-Jx**\ 0.1i/0.5i
- or **-JX**\ 8i/5i.
-- **d** or **g** to indicate that data are geographical coordinates
-
-**Description**
-
-While the Cartesian linear projection is primarily designed for regular floating point :math:`x`,\ :math:`y` data, it is
-sometimes necessary to plot geographical data in a linear projection. This poses a problem since longitudes have a 360°
-periodicity. GMT therefore needs to be informed that it has been given geographical coordinates even though a linear
-transformation has been chosen. We do so by adding a **g** (for geographical) or **d** (for degrees) directly after
-**-R** or by appending a **g** or **d** to the end of the **-Jx** (or **-JX**) option.
-
-**Example**
-
-A crude world map centered on 125°E can be plotted as follows:
-
-.. literalinclude:: /_verbatim/GMT_linear_d.txt
-
-.. figure:: /_images/GMT_linear_d.*
- :width: 500 px
- :align: center
-
- Linear transformation of map coordinates.
-
-.. _-Jx_time:
-
-Calendar time coordinates
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-**Syntax**
-
- **-Jx**\|\ **X**\ *x-scale*\|\ *width*\ [*/y-scale*\|\ *height*]\ **T**\|\ **t** or
- **-R** with [*date*]\ **T**\ [*clock*] time entry or relative time followed by **t**
-
-**Parameters**
-
-- The *x-scale* in :ref:`plot-units `/data-unit (with **-Jx**) or the *width* (*x*-axis length) in
- :ref:`plot-units ` (with **-JX**).
-- Optionally, the *y-scale* in :ref:`plot-units `/data-unit (with **-Jx**) or the *height* (*y*-axis length)
- in :ref:`plot-units ` (with **-JX**). If the *y*-scale or *y*-axis length is different from that of the
- *x*-axis (which is most often the case), separate the two scales (or lengths) by a slash, e.g., **-Jx**\ 0.1i/0.5i
- or **-JX**\ 8i/5i.
-- **t** to indicate that input coordinates are time relative to :term:`TIME_EPOCH` or **T** to indicate that input
- coordinates are absolute time.
-
-**Description**
-
-Several particular issues arise when we seek to make linear plots using calendar date/time as the input coordinates. As
-far as setting up the coordinate transformation we must indicate whether our input data have absolute time coordinates
-or relative time coordinates. For the former we append **T** after the axis scale (or width), while for the latter we
-append **t** at the end of the **-Jx** (or **-JX**) option. However, other command line arguments (like the **-R**
-option) may already specify whether the time coordinate is absolute or relative. An absolute time entry must be given
-as [*date*]\ **T**\ [*clock*] (with *date* given as *yyyy*\ [-*mm*\ [-*dd*]], *yyyy*\ [-*jjj*], or
-*yyyy*\ [-**W**\ *ww*\ [-*d*]], and *clock* using the *hh*\ [:*mm*\ [:*ss*\ [*.xxx*]]] 24-hour clock format) whereas the
-relative time is simply given as the units of time since the epoch followed by **t** (see :term:`TIME_UNIT` and
-:term:`TIME_EPOCH` for information on specifying the time unit and the epoch).
-
-When the coordinate ranges provided by the **-R** option and the projection type given by **-JX** (including the
-optional **d**, **g**, **t** or **T**) conflict, GMT will warn the users about it. In general, the options provided
-with **-JX** will prevail.
-
-**Example**
-
-A simple plot of a school week calendar can be made as follows:
-
-.. literalinclude:: /_verbatim/GMT_linear_cal.txt
-
-.. figure:: /_images/GMT_linear_cal.*
- :width: 400 px
- :align: center
-
- Linear transformation of calendar coordinates.
-
-.. _-Jx_log:
-
-Logarithmic coordinate transformation
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jx**\|\ **X**\ *x-scale*\|\ *width*\ [**l**]\ [*/y-scale*\|\ *height*\ [**l**]]
-
-**Parameters**
-
-- The *x-scale* in :ref:`plot-units `/data-unit (with **-Jx**) or the *width* (*x*-axis length) in
- :ref:`plot-units ` (with **-JX**).
-- Optionally, the *y-scale* in :ref:`plot-units `/data-unit (with **-Jx**) or the *height* (*y*-axis length)
- in :ref:`plot-units ` (with **-JX**). If the *y*-scale or *y*-axis length is different from that of the
- *x*-axis (which is most often the case), separate the two scales (or lengths) by a slash, e.g., **-Jx**\ 0.1i/0.5i
- or **-JX**\ 8i/5i.
-- **l** to take log10 of values before scaling.
-
-**Description**
-
-The :math:`\log_{10}` transformation is simply :math:`u' = a \log_{10}(u) + b` and is selected by appending an **l**
-immediately following the *scale* (or axis length) value.
-
-Note that if :math:`x`- and :math:`y`-scaling are different and a :math:`\log_{10}-\log_{10}` plot is desired, the
-**l** must be appended twice: Once after the *x*-scale (before the /) and once after the *y*-scale.
-
-**Example**
-
-A plot in which the *x*-axis is logarithmic (the *y*-axis remains linear, i.e., a semi-log plot) can be made as follows:
-
-.. literalinclude:: /_verbatim/GMT_log.txt
-
-.. figure:: /_images/GMT_log.*
- :width: 400 px
- :align: center
-
- Logarithmic transformation of x–coordinates.
-
-.. _-Jx_power:
-
-Power (exponential) coordinate transformation
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jx**\|\ **X**\ *x-scale*\|\ *width*\ [**p**\ *power*]\ [*/y-scale*\|\ *height*\ [**p**\ *power*]]
-
-**Parameters**
-
-- The *x-scale* in :ref:`plot-units `/data-unit (with **-Jx**) or the *width* (*x*-axis length) in
- :ref:`plot-units ` (with **-JX**).
-- Optionally, the *y-scale* in :ref:`plot-units `/data-unit (with **-Jx**) or the *height* (*y*-axis length)
- in :ref:`plot-units ` (with **-JX**). If the *y*-scale or *y*-axis length is different from that of the
- *x*-axis (which is most often the case), separate the two scales (or lengths) by a slash, e.g., **-Jx**\ 0.1i/0.5i
- or **-JX**\ 8i/5i.
-- **p**\ *power* to raise values to *power* before scaling.
-
-**Description**
-
-This projection uses :math:`u' = a u^b + c` and allows us to explore exponential relationships like :math:`x^p` versus
-:math:`y^q`.
-
-**Example**
-
-This example uses the exponents :math:`p = 0.5` and :math:`q = 1` which means we will plot :math:`x` versus
-:math:`\sqrt{x}`. We indicate this scaling by appending a **p** followed by the desired exponent, in our case 0.5.
-Since :math:`q = 1` we do not need to specify **p**\ 1 since it is identical to the linear transformation.
-
-.. literalinclude:: /_verbatim/GMT_pow.txt
-
-.. figure:: /_images/GMT_pow.*
- :width: 400 px
- :align: center
-
- Exponential or power transformation of x–coordinates.
-
-.. _-Jp:
-
-Polar coordinate transformations
---------------------------------------------------------------------------------
-
-**Syntax**
-
- **-Jp**\|\ **P**\ *scale*\|\ *width*\ [**+a**]\ [**+f**\ [**e**\|\ **p**\|\ *radius*]]\
- [**+r**\ *offset*][**+t**\ *origin*][**+z**\ [**p**\|\ *radius*]]]
-
-**Parameters**
-
-- The *scale* (with **-Jp**; in :ref:`plot-units `/r-unit) or *width*
- (with **-JP**; in :ref:`plot-units `).
-- Optionally, **+a** to indicate that *theta* is azimuth CW from North instead of direction CCW from East [Default is
- CCW from East].
-- Optionally, **+f** to flip the radial direction to point inwards, and append **e** to indicate that *r* represents
- *elevations* in degrees (requires *south* >= 0 and *north* <= 90), **p** to select current planetary radius
- (determined by :term:`PROJ_ELLIPSOID`) as maximum radius [*north*], or *radius* to specify a custom radius.
-- Optionally, **+r**\ *offset* to include a radial offset in measurement units [default is **0**].
-- Optionally, **+t**\ *origin* in degrees so that this angular value is aligned with the positive *x*-axis (or the
- azimuth to be aligned with the positive *y*-axis if **+a**) [default is **0**].
-- Optionally, **+z** to annotate depth rather than radius [default is radius]. Alternatively, if your *r* data are
- actually depths then you can append **p** or *radius* to get radial annotations (*r = radius - z*) instead.
-
-**Description**
-
-This transformation converts polar coordinates (angle :math:`\theta` and radius *r*) to positions on a plot. Now
-:math:`x' = f(\theta,r)` and :math:`y' = g(\theta,r)`, hence it is similar to a regular map projection because :math:`x`
-and :math:`y` are coupled and :math:`x` (i.e., :math:`\theta`) has a 360° periodicity. With input and output points both
-in the plane it is a **two-dimensional** projection. The transformation comes in several flavors:
-
-#. Normally, :math:`\theta` is understood to be directions
- counter-clockwise from the horizontal axis, but we may choose to
- specify an angular offset [default is zero]. We will call
- this offset :math:`\theta_0`. Then,
- :math:`x' = f(\theta, r) = ar \cos (\theta-\theta_0) + b` and
- :math:`y' = g(\theta, r) = ar \sin (\theta-\theta_0) + c`.
-
-#. Alternatively, :math:`\theta` can be interpreted to be azimuths
- clockwise from the vertical axis, yet we may again choose to specify
- the angular offset [default is zero]. Then,
- :math:`x' = f(\theta, r) = ar \cos (90 - (\theta-\theta_0)) + b` and
- :math:`y' = g(\theta, r) = ar \sin (90 - (\theta-\theta_0)) + c`.
-
-#. The radius *r* can either be radius or inverted to mean depth from the surface,
- planetary radii, or even elevations in degrees.
-
-**Example**
-
-As an example of this projection we will create a gridded data set in polar coordinates
-:math:`z(\theta, r) = r^2 \cdot \cos{4\theta}` using :doc:`/grdmath`, a RPN calculator that operates on or creates
-grid files.
-
-We will use :doc:`/grdcontour` to make a contour map of this data. Because the data file only contains values
-with :math:`2 \leq r \leq 4`, a donut shaped plot appears in the example figure shown below.
-
-.. literalinclude:: /_verbatim/GMT_polar.txt
-
-.. figure:: /_images/GMT_polar.*
- :width: 400 px
- :align: center
-
- Polar (Cylindrical) transformation of (:math:`\theta, r`) coordinates.
\ No newline at end of file
diff --git a/6.2.0rc1/_sources/cookbook/cpts.rst.txt b/6.2.0rc1/_sources/cookbook/cpts.rst.txt
deleted file mode 100644
index 1fabd9a6b7f..00000000000
--- a/6.2.0rc1/_sources/cookbook/cpts.rst.txt
+++ /dev/null
@@ -1,119 +0,0 @@
-.. _Of Colors and Color Legends:
-
-Of Colors and Color Legends
-===========================
-
-Built-in color palette tables (CPT)
------------------------------------
-
-Figures :ref:`CPTs a `, :ref:`b `,
-:ref:`c ` and :ref:`d ` show the built-in
-color palettes, stored in so-called CPTs. The programs
-:doc:`/makecpt` and :doc:`/grd2cpt` are used to access these
-master CPTs and translate/scale them to fit the user's range of
-*z*-values. The top half of the color bars in the Figure shows the
-original color scale, which can be either discrete or continuous, though
-some (like **globe**) are a mix of the two. The bottom half the color
-bar are built by using :doc:`/makecpt`
-**-T**-1/1/0.25, thus splitting the color scale into 8 discrete colors.
-Black and white triangles indicate which tables have hard or soft hinges,
-respectively. Some CPTs have a default *z*-range while others are dynamic.
-Default ranges, if available, are indicated on the top-right of the scales.
-
-.. _CPT_files_a:
-
-.. figure:: /_images/GMT_App_M_1a.*
- :width: 500 px
- :align: center
-
- The standard 44 CPTs supported by GMT.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_App_M_1a.txt
-
-.. _CPT_files_b:
-
-.. figure:: /_images/GMT_App_M_1b.*
- :width: 500 px
- :align: center
-
- The 30 scientific color maps by Fabio Crameri supported by GMT.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_App_M_1b.txt
-
-.. _CPT_files_c:
-
-.. figure:: /_images/GMT_App_M_1c.*
- :width: 500 px
- :align: center
-
- The 18 categorical CPTs (those ending in "S" are the categorical
- scientific color maps by Fabio Crameri) supported by GMT.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_App_M_1c.txt
-
-.. _CPT_files_d:
-
-.. figure:: /_images/GMT_App_M_1d.*
- :width: 500 px
- :align: center
-
- The 5 cyclic scientific color maps by Fabio Crameri supported by GMT.
- **Note**: Any GMT CPT can be made cyclic by running :doc:`/makecpt`
- with the **-Ww** option (wrapped = cyclic).
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_App_M_1d.txt
-
-For additional color tables, visit
-`cpt-city `_ and
-`Scientific Colour-Maps `_.
-
-Labeled and non-equidistant color legends
------------------------------------------
-
-The use of color legends has already been introduced in Examples
-:ref:`2 `, :ref:`16 `, and :ref:`17 `.
-Things become a bit more
-complicated when you want to label the legend with names for certain
-intervals (like geological time periods in the example below). To
-accomplish that, one should add a semi-colon and the label name at the
-end of a line in the CPT and add the **-L** option to the
-:doc:`/colorbar` command that draws the color
-legend. This option also makes all intervals in the legend of equal
-length, even it the numerical values are not equally spaced.
-
-Normally, the name labels are plotted at the lower end of the intervals.
-But by adding a *gap* amount (even when zero) to the **-L** option, they
-are centered. The example below also shows how to annotate ranges using
-**-Li** (in which case no name labels should appear in the CPT),
-and how to switch the color bar around (by using a negative length).
-
-**Note**: If the last slice should have both lower and upper
-custom labels then you must supply *two* semicolon-separated labels and set the
-annotation code to **B**.
-
-.. figure:: /_images/GMT_App_M_2.*
- :width: 600 px
- :align: center
-
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_App_M_2.txt
\ No newline at end of file
diff --git a/6.2.0rc1/_sources/cookbook/custom-symbols.rst.txt b/6.2.0rc1/_sources/cookbook/custom-symbols.rst.txt
deleted file mode 100644
index d48473ea446..00000000000
--- a/6.2.0rc1/_sources/cookbook/custom-symbols.rst.txt
+++ /dev/null
@@ -1,382 +0,0 @@
-.. _App-custom_symbols:
-
-Custom Plot Symbols
-===================
-
-Background
-----------
-
-The GMT tools :doc:`/plot` and :doc:`/plot3d` are capable of using custom
-symbols as alternatives to the built-in, standard geometrical shapes
-such as circles, triangles, and many others. One the command line, custom
-symbols are selected via the **-Sk**\ *symbolname*\ [/*size*] symbol
-selection, where *symbolname* refers
-
-#. An Encapsulated PostScript File named ``symbolname.eps``
-#. A special symbol definition file called ``symbolname.def``
-
-Either type of file must be available via the standard GMT user paths. EPS symbols
-are widely available on the Internet or can be created, even with GMT. If all you
-want to do is to use an EPS file as a custom symbol, then selecting the option
-**-Sk** is all you need to do. For using an EPS file as
-part of a more general custom symbol, for instance to allow rotation, then you will
-find more information provided below.
-
-Several custom symbol definitions comes included with GMT (see Figure :ref:`Custom symbols `)
-
-.. _Custom_symbols:
-
-.. figure:: /_images/GMT_App_N_1.*
- :width: 500 px
- :align: center
-
- Custom plot symbols supported by GMT. These are all single-parameter symbols.
- Be aware that some symbols may have a hardwired fill or no-fill component,
- while others duplicate what is already available as standard built-in symbols.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_App_N_1.txt
-
-You may find it convenient to examine some of these and use them as a
-starting point for your own design; they can be found in GMT's
-share/custom directory. In addition to the ones listed in Figure :ref:`Custom symbols `
-you can use the symbol **QR** to place the GMT QR Code that links to www.generic-mapping-tools.org;
-alternatively use **QR_transparent** to *not* plot the background opaque white square.
-
-The macro language
-------------------
-
-To make your own custom plot symbol, you will need to design your own
-\*.def files. This section defines the language used to build custom
-symbols. You can place these definition files in your current directory
-or in your ``~/.gmt`` user directory. When designing the symbol you are working
-in a relative coordinate system centered on (0,0). This point will be
-mapped to the actual location specified by your data coordinates.
-Furthermore, your symbol should be constructed within the domain
-:math:`{-\frac{1}{2},+\frac{1}{2},-\frac{1}{2},+\frac{1}{2}}`, resulting
-in a 1 by 1 relative canvas area. This 1 x 1 square will be scaled to your
-actual symbol size when plotted. However, there are no requirement that
-all your design fit inside this domain. This command will produce a nice
-template for you to draw your design::
-
- gmt basemap -R-0.5/0.5/-0.5/0.5 -JX15c -Bpa0.1fg0.02 -Bsg0.1 --GRID_PEN_PRIMARY=faint -pdf template
-
-Comment lines
-~~~~~~~~~~~~~
-
-Your definition file may have any number of comment lines, defined to
-begin with the character #. These are skipped by GMT but provides a
-mechanism for you to clarify what your symbol does.
-
-Symbol variables
-~~~~~~~~~~~~~~~~
-
-Simple symbols, such as circles and triangles, only take a single
-parameter: the symbol size, which is either given on the command line
-(via **-Sk**) or as part of the input data. However, more complicated
-symbols that involve angles, or conditional tests, may require more
-parameters. If your custom symbol requires more than the implicit single size
-parameter you must include the line
-
- **N**: *n_extra_parameters* [*types*]
-
-before any other macro commands. It is an optional statement in that
-*n_extra_parameters* will default to 0 unless explicitly set. By
-default the extra parameters are considered to be quantities that should
-be passed directly to the symbol machinery. However, you can use the
-*types* argument to specify different types of parameters and thus single
-out parameters for pre-processing. The available types are
-
- **a** Geographic azimuth (positive clockwise from north toward east). Parameters
- identified as azimuth will first be converted to map angle
- (positive counter-clockwise from horizontal) given the current
- map projection (or simply via 90-azimuth for Cartesian plots).
- We ensure the angles fall in the 0-360 range and any macro test can rely on this range.
-
- **l** Length, i.e., an additional length scale (in cm, inch, or point as
- per :term:`PROJ_LENGTH_UNIT`) in addition to the given symbol size.
-
- **o** Other, i.e., a numerical quantity to be passed to the custom symbol unchanged.
-
- **r** rotation angles (positive counter-clockwise from horizontal).
- We ensure the angles fall in the 0-360 range and any macro test can rely on this range.
-
- **s** String, i.e., a single column of text to be placed by the **l** command.
- Use octal \\040 to include spaces to ensure the text string remains a single word.
-
-To use the extra parameters in your macro you address them as $1, $2, etc. There
-is no limit on how many parameters your symbol may use. To access the trailing text in
-the input file you use $t and for a particular word (number k = 0, 1, ...) in the
-trailing text you use $t\ *k*.
-
-Macro commands
-~~~~~~~~~~~~~~
-
-The custom symbol language contains commands to rotate the relative
-coordinate system, draw free-form polygons and lines, change the current
-fill and/or pen, place text, and include basic geometric symbols as part of the
-overall design (e.g., circles, triangles, etc.). The available commands
-are listed in Table :ref:`custsymb `. Note that all angles
-in the arguments can be provided as variables while the remaining parameters
-are constants.
-
-.. _tbl-custsymb:
-
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| **Name** | **Code** | **Purpose** | **Arguments** |
-+===============+============+========================================+============================================+
-| arc | **A** | Append circular arc to existing path | :math:`x_c, y_c, d, \alpha_1, \alpha_2` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| drawto | **D** | Draw line from previous point | :math:`x, y` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| moveto | **M** | Set a new anchor point | :math:`x_0, y_0` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| rotate | **O** | Rotate the coordinate system | :math:`\alpha`\[**a**] |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| EPS | **P** | Place an Encapsulated PostScript file | :math:`x, y, size, name` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| stroke | **S** | Stroke existing path only | |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| texture | **T** | Change current pen and fill | |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| star | **a** | Plot a star | :math:`x, y, size` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| circle | **c** | Plot a circle | :math:`x, y, size` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| diamond | **d** | Plot a diamond | :math:`x, y, size` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| ellipse | **e** | Plot an ellipse | :math:`x, y, \alpha`,\ *major*,\ *minor* |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| octagon | **g** | Plot an octagon | :math:`x, y, size` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| hexagon | **h** | Plot a hexagon | :math:`x, y, size` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| invtriangle | **i** | Plot an inverted triangle | :math:`x, y, size` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| rotrectangle | **j** | Plot an rotated rectangle | :math:`x, y, \alpha, width, height` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| letter | **l** | Plot a letter | :math:`x, y, size, string` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| marc | **m** | Plot a math arc (no heads) | :math:`x, y, r, \alpha_1, \alpha_2` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| pentagon | **n** | Plot a pentagon | :math:`x, y, size` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| rect | **r** | Plot a rectangle | :math:`x, y, width, height` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| roundrect | **R** | Plot a rounded rectangle | :math:`x, y, width, height, radius` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| square | **s** | Plot a square | :math:`x, y, size` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| triangle | **t** | Plot a triangle | :math:`x, y, size` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| wedge | **w** | Plot a wedge | :math:`x, y, d, \alpha_1, \alpha_2` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| cross | **x** | Plot a cross | :math:`x, y, size` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| y-dash | **y** | Plot a y-dash | :math:`x, y, size` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| x-dash | **-** | Plot a x-dash | :math:`x, y, size` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-| plus | **+** | Plot a plus sign | :math:`x, y, size` |
-+---------------+------------+----------------------------------------+--------------------------------------------+
-
-Note for **O**\: if an **a** is appended to the angle then :math:`\alpha` is considered
-to be a map azimuth; otherwise it is a Cartesian map angle. The **a** modifier
-does not apply if the angle is given via a variable, in which case the type of angle
-has already been specified via **N:** above and already converged before seen by **O**.
-Finally, the **O** command can also be given the negative of a variable, e.g., -$2 to
-undo a rotation, if necessary.
-
-Symbol fill and outline
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Normally, symbols, polygons and lines will be rendered using any
-fill and outline options you have given on the command line, similarly to how
-the regular built-in symbols behave. For **M**, **T**, and all the lower-case
-symbol codes you may optionally append specific pens (with **-W**\ *pen*) and fills (with
-**-G**\ *pen*). These options will force the use of these settings and
-ignore any pens and fills you may or may not have specified on the command line.
-Passing **-G**- or **-W**- means a symbol or polygon will have no
-fill or outline, respectively, regardless of what your command line settings are.
-Unlike pen options on the command line, a pen setting inside the macro symbol
-offers more control. Here, pen width is a *dimension* and you can specify
-it in three different ways: (1) Give a fixed pen width with trailing unit (e.g., **-W**\ 1p,red);
-we then apply that pen exactly as it is regardless of the size of the symbol,
-(2) give a normalized pen thickness in the 0-1 range (e.g., **-W**\ 0.02);
-at run-time this thickness will be multiplied by the current symbol size to yield
-the actual pen thickness, and (3) specify a variable pen thickness (e.g., **-W**\ $1,blue); we then
-obtain the actual pen thickness from the data record at run-time.
-Finally, you may indicate that a symbol or polygon should be filled using the color
-of the current pen instead of the current fill; do this by specifying **-G+p**.
-Likewise, you may indicate that an outline should be drawn with the color of the
-current fill instead of the current pen; do this by appending **+g** to your
-**-W** setting (which may also indicate pen thickness and texture). E.g.,
-**-W**\ 1p,-+g would mean "draw the outline with a 1p thick dashed pen but obtain
-the color from the current fill".
-
-Symbol substitution
-~~~~~~~~~~~~~~~~~~~
-
-Custom symbols that need to plot any of the standard geometric symbols
-(i.e., those controlled by a single size) can make the symbol code a variable. By specifying **?** instead
-of the symbol codes **a**, **c**, **d**, **g**, **h**, **i**, **n**, **+**, **s**, **t**,
-**x**, **-**, or **y** the actual symbol code is expected to be found at the end of
-each data record. Such custom symbols must be invoked with **-SK** rather than **-Sk**.
-
-Text substitution
-~~~~~~~~~~~~~~~~~
-
-Normally, the **l** macro code will place a hard-wired text string. However,
-you can also obtain the entire string from your input file via a single symbol
-variable **$t** that must be declared with type **s** (string). The string will be taken
-as all trialing text in your data record. To select a single word from the trailing text
-you just use **$t**\ *k*, where *k* starts at 0 for the first word, regardless of how many numerical
-columns that precede it. For each word you plan to use you must add a type **s** above.
-Words must be separated by one tab or space only. To place the dollar sign $ itself you must
-use octal \\044 so as to not confuse the parser with a symbol variable.
-The string itself, if obtained from the symbol definition file,
-may contain special codes that will be expanded given information from the current record. You
-can embed the codes %X or %Y to add the current longitude (or x) and latitude (or y) in
-your label string. You may also use $n (*n* is 1, 2, etc.) to embed a numerical symbol variable as text.
-It will be formatted according to :term:`FORMAT_FLOAT_MAP`,
-unless you append the modifiers **+X** (format as longitude via :term:`FORMAT_GEO_MAP`),
-**+Y** (format as latitude via :term:`FORMAT_GEO_MAP`), or **+T** (format as calendar time via
-:term:`FORMAT_DATE_MAP` and :term:`FORMAT_CLOCK_MAP`.
-
-Text alignment and font attributes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Like the **Sl** symbol in :doc:`/plot`, you can change the current
-font by appending to **l** the modifier **+f**\ *font* [:term:`FONT_ANNOT_PRIMARY`] and change the text justification
-by appending the modifier **+j**\ *justify* [CM]. **Note**: Here, the *font* specification
-will only be considered for the font type and not its size (which is set separately by your *size*
-argument) or color and outline (which are set separately by **-G** and **-W** arguments).
-Finally, there are two ways to specify the font size. If a fixed font size is given in points
-(e.g,, 12p) then the text will be set at that size regardless of the symbol size specified in **-S**.
-Without the trailing **p** we interpret the size as a relative size in the 0-1 range and the actual
-font size will then scale with the symbol size, just like other symbol items.
-
-Conditional statements
-~~~~~~~~~~~~~~~~~~~~~~
-
-There are two types of conditional statements in the macro language: A
-simple condition preceding a single command, or a more elaborate
-if-then-elseif-else construct. In any test you may use one (and only
-one) of many logical operators, as listed in Table :ref:`custop `.
-
-.. _tbl-custop:
-
-+----------------+----------------------------------------------------------+
-| **Operator** | **Purpose** |
-+================+==========================================================+
-| < | Is *left* less than *right*? |
-+----------------+----------------------------------------------------------+
-| <= | Is *left* less than or equal to *right*? |
-+----------------+----------------------------------------------------------+
-| == | Is *left* equal to *right*? |
-+----------------+----------------------------------------------------------+
-| != | Is *left* not equal to *right*? |
-+----------------+----------------------------------------------------------+
-| >= | Is *left* greater than or equal to *right*? |
-+----------------+----------------------------------------------------------+
-| > | Is *left* greater than *right*? |
-+----------------+----------------------------------------------------------+
-| % | Does *left* have a remainder with *right*? |
-+----------------+----------------------------------------------------------+
-| !% | Is *left* an exact multiple of *right*? |
-+----------------+----------------------------------------------------------+
-| <> | Is *left* within the exclusive range of *right*? |
-+----------------+----------------------------------------------------------+
-| [] | Is *left* within the inclusive range of *right*? |
-+----------------+----------------------------------------------------------+
-| <] | Is *left* within the in/ex-clusive range of *right*? |
-+----------------+----------------------------------------------------------+
-| [> | Is *left* within the ex/in-clusive range of *right*? |
-+----------------+----------------------------------------------------------+
-
-Above, *left* refers to one of your variable arguments (e.g., $1, $2) or any constant
-(e.g. 45, 2c, 1i) on the left hand side of the operator. On the right hand side of the
-operator, *right* is either one of your other variables, or a constant, or a range indicated by
-two colon-separated constants or variables (e.g., 10:50, $2:60, $3:$4, etc.).
-You can also use $x and $y for tests involving the current point's longitude (or *x*) and
-latitude (or *y*) values, respectively. Note that any tests involving $x will not consider
-the periodicity of longitudes. Finally, $s can be used to access the current symbol size.
-Note that symbol size internally is converted to inches so any test you write that compares
-the size to a constant should use a constant with the appropriate unit appended (e.g., 2c).
-For text comparison note that case will be considered, so "A" does not equal "a".
-
-Simple conditional test
-^^^^^^^^^^^^^^^^^^^^^^^
-
-The simple if-test uses a one-line format, defined as
-
- **if** *left* *operator* *right* **then** *command*
-
-where *left* must be one of the symbol parameters, specified as $1, $2,
-$3, etc., or a constant. You must document what these additional parameters control. For
-example, to plot a small cyan circle at (0.2, 0.3) with diameter 0.4
-only if $2 exceeds 45 you would write
-
- ::
-
- if $2 > 45 then 0.2 0.3 0.4 c -Gcyan
-
-Note that this form of the conditional test has no mechanism for an
-**else** branch, but this can be accomplished by repeating the test but
-reversing the logic for the second copy, e.g.,
-
- ::
-
- if $1 > 10 then 0 0 0.5 c -Gred
- if $1 <= 10 then 0 0 0.5 c -Gblue
-
-or you may instead consider the complete conditional construct below.
-Using a comparison between variables is similarly straightforward:
-
- ::
-
- if $2 > $3 then 0.2 0.3 0.4 c -Ggreen
-
-
-If you are comparing text strings then $t can be on either side of the operator and
-the other side would be a string constant (in quotes if containing spaces).
-
-Complete conditional test
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The complete conditional test uses a multi-line format, such as
-
-| **if** *left* *operator* *right* **then** {
-|
-| } **elseif** *left* *operator* *right* **then** {
-|
-| } **else** {
-|
-| }
-
-The **elseif** (one or more) and **else** branches are optional. Note
-that the syntax is strictly enforced, meaning the opening brace must
-appear after **then** with nothing following it, and the closing brace
-must appear by itself with no other text, and that the **elseif** and
-**else** statements must have both closing and opening braces on the
-same line (and nothing else). If you need comments please add them as
-separate lines. You may nest tests as well (up to 10
-levels deep), e.g.,
-
- ::
-
- if $1 > 45 then {
- if $2 [> 0:10 then 0 0 0.5 c -Gred
- } elseif $1 < 15 then {
- if $2 [> 0:10 then 0 0 0.5 c -Ggreen
- } else {
- if $2 [> 10:20 then {
- 0 0 M -W1p,blue
- 0.3 0.3 D
- S
- 0.3 0.3 0.3 c -Gcyan
- }
- }
diff --git a/6.2.0rc1/_sources/cookbook/data-filtering.rst.txt b/6.2.0rc1/_sources/cookbook/data-filtering.rst.txt
deleted file mode 100644
index 864413850d8..00000000000
--- a/6.2.0rc1/_sources/cookbook/data-filtering.rst.txt
+++ /dev/null
@@ -1,107 +0,0 @@
-Filtering of Data in GMT
-========================
-
-The GMT programs :doc:`/filter1d` (for
-tables of data indexed to one independent variable) and
-:doc:`/grdfilter` (for data given as
-2-dimensional grids) allow filtering of data by a moving-window process.
-(To filter a grid by Fourier transform use
-:doc:`/grdfft`.) Both programs use an argument
-**-F**\ <\ *type*\ ><\ *width*> to specify the
-type of process and the window's width (in 1-D) or diameter (in 2-D).
-(In :doc:`/filter1d` the width is a length of
-the time or space ordinate axis, while in
-:doc:`/grdfilter` it is the diameter of a
-circular area whose distance unit is related to the grid mesh via the
-**-D** option). If the process is a median, mode, or extreme value
-estimator then the window output cannot be written as a convolution and
-the filtering operation is not a linear operator. If the process is a
-weighted average, as in the boxcar, cosine, and gaussian filter types,
-then linear operator theory applies to the filtering process. These
-three filters can be described as convolutions with an impulse response
-function, and their transfer functions can be used to describe how they
-alter components in the input as a function of wavelength.
-
-Impulse responses are shown here for the boxcar, cosine, and gaussian
-filters. Only the relative amplitudes of the filter weights shown; the
-values in the center of the window have been fixed equal to 1 for ease
-of plotting. In this way the same graph can serve to illustrate both the
-1-D and 2-D impulse responses; in the 2-D case this plot is a
-diametrical cross-section through the filter weights
-(Figure :ref:`Impulse responses `).
-
-.. _Impulse_responses:
-
-.. figure:: /_images/GMT_App_J_1.*
- :width: 500 px
- :align: center
-
- Impulse responses for GMT filters.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_App_J_1.txt
-
-Although the impulse responses look the same in 1-D and 2-D, this is not
-true of the transfer functions; in 1-D the transfer function is the
-Fourier transform of the impulse response, while in 2-D it is the Hankel
-transform of the impulse response. These are shown in Figures
-:ref:`Transfer functions for 1D ` and
-:ref:`2D `,
-respectively. Note that in 1-D the
-boxcar transfer function has its first zero crossing at *f = 1*,
-while in 2-D it is around :math:`f \sim 1.2`. The 1-D cosine transfer
-function has its first zero crossing at *f = 2*; so a cosine
-filter needs to be twice as wide as a boxcar filter in order to zero the
-same lowest frequency. As a general rule, the cosine and gaussian
-filters are "better" in the sense that they do not have the "side lobes"
-(large-amplitude oscillations in the transfer function) that the boxcar
-filter has. However, they are correspondingly "worse" in the sense that
-they require more work (doubling the width to achieve the same cut-off wavelength).
-
-.. _GMT_1D_filters:
-
-.. figure:: /_images/GMT_App_J_2.*
- :width: 500 px
- :align: center
-
- Transfer functions for 1-D GMT filters.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_App_J_2.txt
-
-One of the nice things about the gaussian filter is that its transfer
-functions are the same in 1-D and 2-D. Another nice property is that it
-has no negative side lobes. There are many definitions of the gaussian
-filter in the literature (see page 7 of Bracewell [30]_). We define
-:math:`\sigma` equal to 1/6 of the filter width, and the impulse
-response proportional to :math:`\exp[-0.5(t/\sigma)^2)`. With this
-definition, the transfer function is :math:`\exp[-2(\pi\sigma f)^2]` and
-the wavelength at which the transfer function equals 0.5 is about 5.34
-:math:`\sigma`, or about 0.89 of the filter width.
-
-.. _GMT_2D_filters:
-
-.. figure:: /_images/GMT_App_J_3.*
- :width: 500 px
- :align: center
-
- Transfer functions for 2-D (radial) GMT filters.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_App_J_3.txt
-
-Footnote
---------
-
-.. [30]
- R. Bracewell, *The Fourier Transform and its Applications*,
- McGraw-Hill, London, 444 p., 1965.
diff --git a/6.2.0rc1/_sources/cookbook/features.rst.txt b/6.2.0rc1/_sources/cookbook/features.rst.txt
deleted file mode 100644
index 6c8c6de1ebc..00000000000
--- a/6.2.0rc1/_sources/cookbook/features.rst.txt
+++ /dev/null
@@ -1,2954 +0,0 @@
-.. _GMT_General_Features:
-
-General Features
-================
-
-This section explains features common to all the programs in GMT and
-summarizes the philosophy behind the system. Some of the features
-described here may make more sense once you reach the cook-book section
-where we present actual examples of their use.
-
-GMT Modern Mode Hierarchical Levels
------------------------------------
-
-As you read below of how we handle default settings, command-line history, and
-color tables, it is important to understand that under GMT **modern mode** we
-maintain several *levels* of these parameters. As you will see later, this affects
-*three* aspects of GMT: The chosen default settings, the current history of
-previous common option arguments, and the current color table. All three items
-are given a consistent treatment in GMT modern mode (in classic mode there is
-only a single level and no concept of a current color table). Below, *item* refers
-to any of those three aspects.
-
-#. The top level is the *session*. Any item set here is accessible to all other
- levels.
-
-#. The next level is the *figure* level. A session may create numerous figures
- and items determined at this level are only accessible to that figure and
- plot constructs below it (like subplots).
-
-#. A figure may include a *subplot*. Before any panels are started, any
- items determined at this level apply to *all* the panels in the subplot.
- For instance, setting a new color table will apply to all the panels that
- need it.
-
-#. Once you start a specific *panel* in a subplot, any items determined at this
- level only apply to that panel. For instance, changing the font used for
- frame annotations for this panel is not affecting any other panels.
-
-#. Figures or panels may include a map *inset*. Any items determined in an
- inset is private to that inset and does not affect the higher levels.
-
-There is a distinction between *setting* an item (e.g., a font choice, an option
-like plot region, or a color table) and *getting* that item. When we *specify*
-a particular item it is recorded at that level. When we need to *access*
-that item, there may or may not be an item at the current hierarchical level.
-If there is not, we look at the level above the current level to see if it has
-the required item, and this search may go all the way back to the session level.
-In other words, we always give preference to items set at or just above the
-current hierarchical level as possible. If no such item is found anywhere then
-we use the GMT defaults or color table, or we must terminate with an error if a
-required setting such as a region cannot be determined from your options or data sets.
-
-Discussions below on GMT defaults and history are presented as they apply to
-classic mode, but under modern mode these files are maintained at the levels we
-just discussed.
-
-GMT units
----------
-
-While GMT has default units for both actual Earth distances and plot
-lengths (i.e., dimensions) of maps, it is recommended that you explicitly
-indicate the units of your arguments by appending the unit character, as
-discussed below. This will aid you in debugging, let others understand your
-scripts, and remove any uncertainty as to what unit you thought you wanted.
-
-.. _plt-units:
-
-Dimension units
-~~~~~~~~~~~~~~~
-
-GMT programs accept plot dimensional quantities (widths, offsets, etc.) in
-**c**\ m, **i**\ nch, or **p**\ oint (1/72 of an inch) [8]_. There are
-two ways to ensure that GMT understands which unit you intend to use:
-
-#. Append the desired unit to the dimension you supply. This way is
- explicit and clearly communicates what you intend, e.g.,
- **-JM**\ 10\ **c** means the map width being passed to the **-JM** switch
- is 10 cm, and modifier **+o**\ 24p means we are offsetting a feature
- by 24 points from its initial location.
-
-#. Set the parameter :term:`PROJ_LENGTH_UNIT` to the desired unit. Then,
- all dimensions without explicit units will be interpreted accordingly.
- By default, GMT always initializes :term:`PROJ_LENGTH_UNIT` to cm and
- interprets unitless dimensional values as cm, except for fonts and pen
- thicknesses which are by default interpreted as points.
-
-The latter method is less robust as other users may have a different
-default unit set and then your script may not work as intended. For portability,
-we therefore recommend you always append the desired unit explicitly.
-
-.. _dist-units:
-
-Distance units
-~~~~~~~~~~~~~~
-
-.. _tbl-distunits:
-
-+---------+-------------------+---------+------------------+
-+=========+===================+=========+==================+
-| **d** | Degree of arc | **M** | Statute mile |
-+---------+-------------------+---------+------------------+
-| **e** | Meter [Default] | **n** | Nautical mile |
-+---------+-------------------+---------+------------------+
-| **f** | Foot | **s** | Second of arc |
-+---------+-------------------+---------+------------------+
-| **k** | Kilometer | **u** | US Survey foot |
-+---------+-------------------+---------+------------------+
-| **m** | Minute of arc | | |
-+---------+-------------------+---------+------------------+
-
-For Cartesian data the data units do not normally matter
-(they could be kg or Lumens for all we know) and are never entered.
-Geographic data are different, as distances can be specified in a variety
-of ways. GMT programs that accept actual Earth length scales like
-search radii or distances can therefore handle a variety of units. These
-choices are listed in the Table :ref:`Distance Units `;
-simply append the desired unit to the distance value you supply. A value
-without a unit suffix will be consider to be in meters. For example, a distance
-of 30 nautical miles should be given as 30\ **n**.
-
-Distance calculations
-~~~~~~~~~~~~~~~~~~~~~
-
-The calculation of distances on Earth (or other planetary bodies)
-depends on the ellipsoidal parameters of the body (via
-:term:`PROJ_ELLIPSOID`) and the method of computation. GMT offers three
-alternatives that trade off accuracy and computation time.
-
-Flat Earth distances
-^^^^^^^^^^^^^^^^^^^^
-
-Quick, but approximate "Flat Earth" calculations make a first-order
-correction for the spherical nature of a planetary body by computing the
-distance between two points A and B as
-
-.. math::
-
- d_f = R \sqrt{(\theta_A - \theta_B)^2 + (\cos \left [ \frac{\theta_A +
- \theta_B}{2} \right ] \Delta \lambda)^2}, \label{eq:flatearth}
-
-where *R* is the representative (or spherical) radius of the
-planet, :math:`\theta` is latitude, and the difference in longitudes,
-:math:`\Delta \lambda = \lambda_A - \lambda_B`, is adjusted for any
-jumps that might occur across Greenwich or the Dateline. As written, the
-geographic coordinates are given in radians. This approach is suitable
-when the points you use to compute :math:`d_f` do not greatly differ in
-latitude and computation speed is paramount. You can select this mode
-of computation by specifying the common GMT option **-j** and appending the directive
-**f** (for Flat Earth). For instance, a search radius of 50 statute miles
-using this mode of computation might be specified via **-S**\ 50\ **M** **-jf**.
-
-Great circle distances
-^^^^^^^^^^^^^^^^^^^^^^
-
-This is the default distance calculation, which will also approximate
-the planetary body by a sphere of mean radius *R*. However, we
-compute an exact distance between two points A and B on such a sphere
-via the Haversine equation
-
-.. math::
-
- d_g = 2R \sin^{-1} {\sqrt{\sin^2\frac{\theta_A - \theta_B}{2} + \cos
- \theta_A \cos \theta_B \sin^2 \frac{\lambda_A - \lambda_B}{2}} },
- \label{eq:greatcircle}
-
-This approach is suitable for most situations unless exact calculations
-for an ellipsoid is required (typically for a limited surface area). For
-instance, a search radius of 5000 feet using this mode of computation
-would be specified as **-S**\ 5000\ **f**.
-
-**Note**: There are two additional GMT defaults that control how
-great circle (and Flat Earth) distances are computed. One concerns the
-selection of the "mean radius". This is selected by
-:term:`PROJ_MEAN_RADIUS`, which selects one of several possible
-representative radii. The second is :term:`PROJ_AUX_LATITUDE`, which
-converts geodetic latitudes into one of several possible auxiliary
-latitudes that are better suited for the spherical approximation. While
-both settings have default values to best approximate geodesic distances
-(*authalic* mean radius and latitudes), expert users can choose from a
-range of options as detailed in the :doc:`/gmt.conf` man page. Note that
-these last two settings are only used if the :term:`PROJ_ELLIPSOID`
-is not set to "sphere".
-
-Geodesic distances
-^^^^^^^^^^^^^^^^^^
-
-For the most accurate calculations we use a full ellipsoidal
-formulation. Currently, we are using Vincenty's [1975] formula [7]_
-which is accurate to 0.5 mm. You
-select this mode of computation by using the common GMT option **-j**
-and appending the directive **e** (for ellipsoidal).
-For instance, a search radius of 20 km using this mode of
-computation would be set by **-S**\ 20\ **k** **-je**. You may use the
-setting :term:`PROJ_GEODESIC` which defaults to
-*Vincenty* but may also be set to *Rudoe* for old GMT4-style calculations
-or *Andoyer* for an approximate geodesic (within a few tens of meters)
-that is much faster to compute.
-
-GMT defaults
-------------
-
-Overview and the gmt.conf file
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-There are almost 150 parameters which can be adjusted individually to
-modify the appearance of plots or affect the manipulation of data. When
-a new session starts (unless **-C** is given), it initializes all parameters to the
-GMT defaults [9]_, then tries to open the file ``gmt.conf`` in the current
-directory [10]_. If not found, it will look for that file in a
-sub-directory ``/.gmt`` of your home directory, and finally in your home directory
-itself. If successful, the session will read the contents and set the
-default values to those provided in the file. By editing this file you
-can affect features such as pen thicknesses used for maps, fonts and
-font sizes used for annotations and labels, color of the pens,
-dots-per-inch resolution of the hardcopy device, what type of spline
-interpolant to use, and many other choices. A complete list of all the
-parameters and their default values can be found in the
-:doc:`/gmt.conf` manual pages. Figures
-:ref:`GMT Parameters a `,
-:ref:`b `, and
-:ref:`c ` show the parameters that affect
-plots. You may create your own ``gmt.conf`` files by running
-:doc:`/gmtdefaults` and then modify those
-parameters you want to change. If you want to use the parameter settings
-in another file you can do so by copying that file to the current
-directory and call it gmt.conf. This makes it easy to maintain several distinct parameter
-settings, corresponding perhaps to the unique styles required by
-different journals or simply reflecting font changes necessary to make
-readable overheads and slides. At the end of such scripts you should then
-delete the (temporary) gmt.conf file. Note that any arguments given on the
-command line (see below) will take precedent over the default values.
-E.g., if your ``gmt.conf`` file has *x* offset = 3\ **c** as default, the
-**-X**\ 5\ **c** option will override the default and set the offset to 5 cm.
-
-.. _gmt_defaults_a:
-
-.. figure:: /_images/GMT_Defaults_1a.*
- :width: 500 px
- :align: center
-
- Some GMT parameters that affect plot appearance.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_Defaults_1a.txt
-
-
-.. _gmt_defaults_b:
-
-.. figure:: /_images/GMT_Defaults_1b.*
- :width: 500 px
- :align: center
-
- More GMT parameters that affect plot appearance.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_Defaults_1b.txt
-
-.. _gmt_defaults_c:
-
-.. figure:: /_images/GMT_Defaults_1c.*
- :width: 500 px
- :align: center
-
- Even more GMT parameters that affect plot appearance.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_Defaults_1c.txt
-
-There are at least two good reasons why the GMT default options are
-placed in a separate parameter file:
-
-#. It would not be practical to allow for command-line syntax covering
- so many options, many of which are rarely or never changed (such as
- the ellipsoid used for map projections).
-
-#. It is convenient to keep separate ``gmt.conf`` files for specific projects, so
- that one may achieve a special effect simply by running
- GMT commands in the directory whose ``gmt.conf`` file has the desired settings.
- For example, when making final illustrations for a journal article
- one must often standardize on font sizes and font types, etc. Keeping
- all those settings in a separate ``gmt.conf`` file simplifies this process and
- will allow you to generate those illustrations with the same settings
- later on. Likewise, GMT scripts that make figures for PowerPoint
- presentations often use a different color scheme and font size than
- output intended for laser printers. Organizing these various
- scenarios into separate ``gmt.conf`` files will minimize headaches associated with
- micro-editing of illustrations.
-
-
-.. _auto-scaling:
-
-Automatic GMT settings
-~~~~~~~~~~~~~~~~~~~~~~
-
-The **auto** flag for :doc:`GMT parameters ` signals that suitable
-dimensions or settings will be automatically computed when the plot dimensions
-are known. The **auto** flag is supported for the following parameters:
-
-================================== ===============================================
-:term:`FONT_ANNOT_PRIMARY` Primary annotation font [11.00p]
-:term:`FONT_ANNOT_SECONDARY` Secondary annotation font [13.20p]
-:term:`FONT_HEADING` Subplot heading font [30.80p]
-:term:`FONT_LABEL` Axis label font [15.40p]
-:term:`FONT_LOGO` Logo font [8.80p]
-:term:`FONT_SUBTITLE` Plot subtitle font [19.80p]
-:term:`FONT_TAG` Tag/labeling font [17.60p]
-:term:`FONT_TITLE` Plot title font [24.20p]
-:term:`MAP_ANNOT_MIN_SPACING` Minimum space between annotations [11.00p]
-:term:`MAP_ANNOT_OFFSET_PRIMARY` Primary annotation offset from axis [3.30p]
-:term:`MAP_ANNOT_OFFSET_SECONDARY` Secondary annotation offset from axis [3.30p]
-:term:`MAP_FRAME_AXES` Axes that are drawn and annotated
-:term:`MAP_FRAME_PEN` Pen width of plain frame [1.65p]
-:term:`MAP_FRAME_WIDTH` Width of fancy frame [3.30p]
-:term:`MAP_GRID_PEN_PRIMARY` Pen width of primary gridline [0.28p]
-:term:`MAP_GRID_PEN_SECONDARY` Pen width of secondary gridline [0.55p]
-:term:`MAP_HEADING_OFFSET` Heading offset from subplot [17.60p]
-:term:`MAP_LABEL_OFFSET` Label offset from annotations [6.60p]
-:term:`MAP_POLAR_CAP` Appearance of gridlines near the poles
-:term:`MAP_TICK_LENGTH_PRIMARY` Length of primary tick marks [2.2p/1.1p]
-:term:`MAP_TICK_LENGTH_SECONDARY` Length of secondary tick marks [6.60p/1.65p]
-:term:`MAP_TICK_PEN_PRIMARY` Pen width of primary tick marks [0.55p]
-:term:`MAP_TICK_PEN_SECONDARY` Pen width of secondary tick marks [0.28p]
-:term:`MAP_TITLE_OFFSET` Title offset from plot [13.20p]
-================================== ===============================================
-
-The reference dimensions listed in brackets are the values for a plot
-with a height and width of 25 cm. Larger and smaller illustrations
-will see a linear magnification or attenuation of these dimensions. The primary
-annotation font size will be computed as::
-
- size = (2/15) * (map_size_in_cm - 10) + 9 [in points]
-
-where :math:`map\_size\_in\_cm = sqrt(map\_height x map\_width)`. All other
-items will have their reference sizes scaled by :math:`scale = size / 10`. In
-modern mode, if you do nothing then all of the above dimensions will be
-automatically set based on your plot dimensions. However, you are free to
-override any of them using the methods described in the next section. **Note**:
-Selecting **auto** for font sizes and dimensions requires GMT to know the plot
-dimensions. If the plot dimensions are not available (e.g., :doc:`/pslegend`
-with **-Dx** and no **-R -J**), the settings will be updated using the nominal
-font sizes and dimensions for a 10 x 1 cm plot. **Note**: The particular scaling
-relationship is experimental in 6.2 and we reserve the right to adjust it
-pending further experimentation and user feedback.
-
-For **MAP_POLAR_CAP**, **auto** will determine a suitable *pc_lat* for your
-region for all azimuthal projections and a few others in which the geographic
-poles are plotted as points (Lambert Conic, Oblique Mercator, Hammer, Mollweide,
-Sinusoidal, and van der Grinten).
-
-For **MAP_FRAME_AXES**, **auto** will determine a suitable setting based on the
-projection, type of plot, perspective, etc. For example, GMT will determine the
-position of different quadrants for perspective and polar plots and select the
-equivalent of **WrStZ**. The default for the Gnomonic and general perspective
-projections is **WESNZ**. The default for non-perspective, non-Gnomonic, and
-non-polar plots using **MAP_FRAME_AXES**\ =\ **auto** is **WrStZ**.
-
-Changing GMT defaults
-~~~~~~~~~~~~~~~~~~~~~
-
-As mentioned, GMT programs will attempt to open a file named ``gmt.conf``. At
-times it may be desirable to override that default. There are several
-ways in which this can be accomplished.
-
-* One method is to start each script by saving a copy of the current ``gmt.conf``,
- then copying the desired ``gmt.conf`` file to the current directory, and finally
- reverting the changes at the end of the script. Possible side effects
- include premature ending of the script due to user error or bugs
- which means the final resetting does not take place (unless you write
- your script very carefully.)
-
-* To permanently change some of the GMT parameters on the fly
- inside a script the :doc:`/gmtset` utility
- can be used. E.g., to change the primary annotation font to 12 point
- Times-Bold in red we run
-
- ::
-
- gmt set FONT_ANNOT_PRIMARY 12p,Times-Bold,red
-
- These changes will remain in effect until they are overridden.
-
-* If all you want to achieve is to change a few parameters during the
- execution of a single command but otherwise leave the environment
- intact, consider passing the parameter changes on the command line
- via the **-**\ **-**\ *PAR=value* mechanism. For instance, to temporarily
- set the output format for floating points to have lots of decimals,
- say, for map projection coordinate output, append
- **-**\ **-**\ :term:`FORMAT_FLOAT_OUT`\ =%.16lg to the command in question.
-
-In addition to those parameters that directly affect the plot there are
-numerous parameters than modify units, scales, etc. For a complete
-listing, see the :doc:`/gmt.conf` man pages.
-We suggest that you go through all the available parameters at least
-once so that you know what is available to change via one of the
-described mechanisms. The gmt.conf file can be cleared by running
-**gmt clear settings**.
-
-Command line arguments
-----------------------
-
-Each program requires certain arguments specific to its operation. These
-are explained in the manual pages and in the usage messages.
-We have tried to choose letters of the alphabet which
-stand for the argument so that they will be easy to remember. Each
-argument specification begins with a hyphen (except input file names;
-see below), followed by a letter, and sometimes a number or character
-string immediately after the letter. *Do not* space between the hyphen,
-letter, and number or string. *Do* space between options. Example:
-
- ::
-
- gmt coast -R0/20/0/20 -Ggray -JM15c -Wthin -Baf -V -pdf map
-
-Command line history
---------------------
-
-GMT programs "remember" the standardized command line options (See
-Chapter :doc:`options`) given during their first invocations in a modern
-mode session, and afterwards we do not need to repeat them any further.
-For example, if a map was created with an Cartesian linear projection,
-then any subsequent :doc:`/plot` commands to plot symbols on the same map
-do not need to repeat the region and projection information, as shown here::
-
- gmt begin map
- gmt basemap -R0/6.5/0/7 -Jx2c -B
- gmt plot @Table_5_11.txt -Sc0.3c -Gred
- gmt end show
-
-Thus, the chosen options remain in effect until you provide new option
-arguments on the command line.
-
-Usage messages, syntax- and general error messages
---------------------------------------------------
-
-Each program carries a usage message. If you enter the program name
-without any arguments, the program will write the complete usage message
-to standard error (your screen, unless you redirect it). This message
-explains in detail what all the valid arguments are. If you enter the
-program name followed by a *hyphen* (-) only you will get a shorter
-version which only shows the command line syntax and no detailed
-explanations. If you incorrectly specify an option or omit a required
-option, the program will produce syntax errors and explain what the
-correct syntax for these options should be. If an error occurs during
-the running of a program, the program will in some cases recognize this
-and give you an error message. Usually this will also terminate the run.
-The error messages generally begin with the name of the program in which
-the error occurred; if you have several programs piped together this
-tells you where the trouble is.
-
-Standard input or file, header records
---------------------------------------
-
-Most of the programs which expect table data input can read either
-standard input or input in one or several files. These programs will try
-to read *stdin* unless you type the filename(s) on the command line
-without the above hyphens. (If the program sees a hyphen, it reads the
-next character as an instruction; if an argument begins without a
-hyphen, it tries to open this argument as a filename). This feature
-allows you to connect programs with pipes if you like.
-To give numerous input files you can either list them all (file1.txt file2.txt ...),
-use UNIX wild cards (file*.txt), or make a simple *listfile* with the
-names of all your datafiles (one per line) and then use the special
-=\ *filelist* mechanism to specify the input files to a module.
-This allows GMT modules to obtain the input file names from *filelist*.
-If your input is
-ASCII and has one or more header records that do not begin with #, you
-must use the **-h** option (see Section :ref:`option_-h`).
-ASCII files may in many cases also contain segment-headers
-separating data segments. These are called "multi-segment files". For
-binary table data the **-h** option may specify how many bytes should be
-skipped before the data section is reached. Binary files may also
-contain segment-headers separating data segments. These segment-headers
-are simply data records whose fields are all set to NaN; see Chapter
-:doc:`file-formats` for complete documentation.
-
-If filenames are given for reading, GMT programs will first look for
-them in the current directory. If the file is not found, the programs
-will look in other directories pointed to by the
-:ref:`directory parameters ` :term:`DIR_DATA` and :term:`DIR_CACHE`
-or by the environmental parameters **$GMT_USERDIR**, **$GMT_CACHEDIR** and
-**$GMT_DATADIR** (if set). They may be set by the user to point to
-directories that contain data sets of general use, thus eliminating the
-need to specify a full path to these files. Usually, the :term:`DIR_DATA`
-directory will hold data sets of a general nature (tables, grids),
-whereas the **$GMT_USERDIR** directory (its default value is $HOME/.gmt)
-may hold miscellaneous data sets more specific to the user; this directory
-also stores GMT defaults, other configuration files and modern session directories as well as the
-directory *server* which olds downloaded data sets from the GMT data server
-The :term:`DIR_CACHE` will typically contain other data files
-downloaded when running tutorial or example scripts. See :ref:`directory parameters `
-for details. Program output is always written to the current directory
-unless a full path has been specified.
-
-URLs and remote files
----------------------
-
-Three classes of files are given special treatment in GMT.
-
-#. Some data sets are ubiquitous and used by nearly all GMT users.
- At the moment this collection is limited to Earth relief grids. If you specify
- a grid input named **@earth_relief_**\ *res* on a command line then
- such a grid will automatically be downloaded from the GMT Data Server and placed
- in the *server* directory under **$GMT_USERDIR** [~/.gmt]. The resolution *res* allows a choice among
- 15 common grid spacings: 01d, 30m, 20m, 15m, 10m, 06m, 05m, 04m, 03m, 02m, 01m,
- 30s, and 15s (with file sizes 111 kb, 376 kb, 782 kb, 1.3 Mb, 2.8 Mb, 7.5 Mb,
- 11 Mb, 16 Mb, 27 Mb, 58 Mb, 214 Mb, 778 Mb, and 2.6 Gb respectively) as well
- as the SRTM tile resolutions 03s and 01s (6.8 Gb and 41 Gb for the whole set, respectively). Once
- one of these grids have been downloaded any future reference will simply obtain the
- file from **$GMT_USERDIR** (except if explicitly removed by the user).
- **Note**: The 15 arc-sec data comes from the original dataset SRTM15+.
- Lower resolutions are spherically Gaussian-filtered versions of SRTM15+.
- The SRTM (version 3) 1 and 3 arc-sec tiles are only available over land
- between 60 degrees south and north latitude and are stored as highly compressed JPEG2000
- tiles on the GMT server. These are individually downloaded as requested, converted to netCDF
- grids and stored in subdirectories srtm1 and srtm3 under the server directory, and assembled
- into a seamless grid using :doc:`/grdblend`. A tile is only downloaded and converted
- once (unless the user cleans the data directories).
-#. If a file is given as a full URL, starting with **http://**, **https://**,
- or **ftp://**, then the file will be downloaded to the current directory and subsequently
- read from there (until removed by the user). If the URL is actually a CGI Get
- command (i.e., ends in ?par=val1&par2=val2...) then we download the file
- each time we encounter the URL.
-#. Demonstration files used in online documentation, example scripts, or even the
- large test suite may be given in the format @\ *filename*. When such a file is
- encountered on the command line it is understood to be a short-hand representation
- of the full URL to *filename* on the GMT Cache Data site.
- Since this address may change over time we use the leading
- @ to simplify access to these files. Such files will also be downloaded
- to :term:`DIR_CACHE` and subsequently read from there (until removed by the user).
-#. By default, remote files are downloaded from the SOEST data server. However, you
- can override that selection by setting the environmental parameter **$GMT_DATA_SERVER** or
- the default setting for :term:`GMT_DATA_SERVER`. Alternatively, configure the CMake
- parameter GMT_DATA_SERVER at compile time.
-#. If your Internet connection is slow or nonexistent (e.g., on a plane) you can also
- limit the size of the largest datafile to download via :term:`GMT_DATA_SERVER_LIMIT` or
- you can temporarily turn off such downloads by setting :term:`GMT_DATA_UPDATE_INTERVAL` to "off".
-
-The user cache (:term:`DIR_CACHE`) and all its contents can be cleared any time
-via the command **gmt clear cache**, while the server directory with downloaded data
-can be cleared via the command **gmt clear data**. Finally, when a remote file is requested
-we also check if that file has changed at the server and re-download the updated file;
-this check is only performed no more often than once a day.
-
-.. figure:: /_images/GMT_SRTM.*
- :width: 700 px
- :align: center
-
- The 14297 1x1 degree tiles (red) for which SRTM 1 and 3 arc second data are available.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_SRTM.txt
-
-As a short example, we can make a quick map of Easter Island using the SRTM 1x1 arc second
-grid via
-
-::
-
- gmt grdimage -R109:30W/109:12W/27:14S/27:02S -JM15c -B @earth_relief_01s -png easter
-
-Verbose operation
------------------
-
-Most of the programs take an optional **-V** argument which will run the
-program in the "verbose" mode (see Section :ref:`option_-V`).
-Verbose will write to standard error information about the
-progress of the operation you are running. Verbose reports things such
-as counts of points read, names of data files processed, convergence of
-iterative solutions, and the like. Since these messages are written to
-*stderr*, the verbose talk remains separate from your data output. You
-may optionally choose among six models of *verbosity*; each mode adds
-more messages with an increasing level of details. The modes are
-
- **q** Complete silence, not even fatal error messages.
-
- **e** Errors messages only.
-
- **w** Warnings [Default].
-
- **t** Timings (for time-intensive algorithms only).
-
- **i** Informational messages.
-
- **c** Compatibility warnings about deprecated usage (if compiled for compatibility).
-
- **d** Debugging messages (mostly of interest to developers).
-
-The verbosity is cumulative, i.e., mode **w** means all messages of mode
-**e** as well will be reported.
-
-Program output
---------------
-
-Most programs write their results, including PostScript plots, to
-standard output. The exceptions are those which may create binary netCDF
-grid files such as :doc:`/surface` (due to the
-design of netCDF a filename must be provided; however, alternative
-binary output formats allowing piping are available; see Section
-:ref:`grid-file-format`).
-Most operating systems let you can redirect
-standard output to a file or pipe it into another process. Error
-messages, usage messages, and verbose comments are written to standard
-error in all cases. You can usually redirect standard error as well, if
-you want to create a log file of what you are doing. The syntax for
-redirection differ among the main shells (Bash and C-shell) and is a bit
-limited in DOS.
-
-.. _input-data-formats:
-
-Input data formats
-------------------
-
-Most of the time, GMT will know what kind of *x* and *y*
-coordinates it is reading because you have selected a particular
-coordinate transformation or map projection. However, there may be times
-when you must explicitly specify what you are providing as input using
-the **-f** switch. When binary input data are expected (**-bi**) you
-must specify exactly the format of the records. However, for ASCII input
-there are numerous ways to encode data coordinates (which may be
-separated by white-space or commas). Valid input data are generally of
-the same form as the arguments to the **-R** option (see
-Section :ref:`option_-R`), with additional flexibility for calendar data.
-Geographical coordinates, for example, can be given in decimal degrees
-(e.g., -123.45417) or in the
-[±]\ *ddd*\ [:*mm*\ [:*ss*\ [*.xxx*]]][**W**\|\ **E**\|\ **S**\|\ **N**]
-format (e.g., 123:27:15W). With **-fp** you may even supply projected
-data like UTM coordinates.
-
-Because of the widespread use of incompatible and ambiguous formats, the
-processing of input date components is guided by the template
-:term:`FORMAT_DATE_IN` in your :doc:`/gmt.conf` file; it is by default set to *yyyy-mm-dd*.
-Y2K-challenged input data such as 29/05/89 can be processed by setting
-:term:`FORMAT_DATE_IN` to dd/mm/yy. A complete description of possible
-formats is given in the :doc:`/gmt.conf` man
-page. The *clock* string is more standardized but issues like 12- or
-24-hour clocks complicate matters as well as the presence or absence of
-delimiters between fields. Thus, the processing of input clock
-coordinates is guided by the template :term:`FORMAT_CLOCK_IN` which
-defaults to *hh:mm:ss.xxx*.
-
-GMT programs that require a map projection argument will implicitly
-know what kind of data to expect, and the input processing is done
-accordingly. However, some programs that simply report on minimum and
-maximum values or just do a reformatting of the data will in general not
-know what to expect, and furthermore there is no way for the programs to
-know what kind of data other columns (beyond the leading *x* and
-*y* columns) contain. In such instances we must explicitly tell
-GMT that we are feeding it data in the specific geographic or calendar
-formats (floating point data are assumed by default). We specify the
-data type via the **-f** option (which sets both input and output
-formats; use **-fi** and **-fo** to set input and output separately).
-For instance, to specify that the the first two columns are longitude
-and latitude, and that the third column (e.g., *z*) is absolute
-calendar time, we add **-fi**\ 0x,1y,2T to the command line. For more
-details, see the man page for the program you need to use.
-
-.. _output-data-formats:
-
-Output data formats
--------------------
-
-The numerical output from GMT programs can be binary (when **-bo** is
-used) or ASCII [Default]. In the latter case the issue of formatting
-becomes important. GMT provides extensive machinery for allowing just
-about any imaginable format to be used on output. Analogous to the
-processing of input data, several templates guide the formatting
-process. These are :term:`FORMAT_DATE_OUT` and :term:`FORMAT_CLOCK_OUT` for
-calendar-time coordinates, :term:`FORMAT_GEO_OUT` for geographical
-coordinates, and :term:`FORMAT_FLOAT_OUT` for generic floating point data.
-In addition, the user have control over how columns are separated via
-the :term:`IO_COL_SEPARATOR` parameter. Thus, as an example, it is possible
-to create limited FORTRAN-style card records by setting
-:term:`FORMAT_FLOAT_OUT` to %7.3lf and :term:`IO_COL_SEPARATOR` to none
-[Default is tab].
-
-PostScript features
----------------------
-
-PostScript is a command language for driving graphics devices such as
-laser printers. It is ASCII text which you can read and edit as you wish
-(assuming you have some knowledge of the syntax). We prefer this to
-binary metafile plot systems since such files cannot easily be modified
-after they have been created. GMT programs also write many comments to
-the plot file which make it easier for users to orient themselves should
-they need to edit the file (e.g., % Start of x-axis) [16]_. All
-GMT programs create PostScript code by calling the :doc:`PSL ` plot
-library (The user may call these functions from his/her own C or FORTRAN
-plot programs. See the manual pages for :doc:`PSL ` syntax). Although
-GMT programs can create very individualized plot code, there will
-always be cases not covered by these programs. Some knowledge of
-PostScript will enable the user to add such features directly into the
-plot file. By default, GMT will produce freeform PostScript output
-with embedded printer directives. To produce Encapsulated
-PostScript (EPS) that can be imported into graphics programs such as
-**CorelDraw**, **Illustrator** or **InkScape** for further
-embellishment, simply run gmt :doc:`/psconvert`
-**-Te**. See Chapter :doc:`include-figures` for an extensive discussion of converting
-PostScript to other formats.
-
-.. _-Wpen_attrib:
-
-Specifying pen attributes
--------------------------
-
-A pen in GMT has three attributes: *width*, *color*, and
-*style*. Most programs will accept pen attributes in the form of an
-option argument, with commas separating the given attributes, e.g.,
-
-**-W**\ [*width*\ [**c**\|\ **i**\|\ **p**]],[*color*],[*style*\ [**c**\|\ **i**\|\ **p**]]
-
- *Width* is by default measured in points (1/72 of an inch). Append
- **c**, **i**, or **p** to specify pen width in cm, inch, or points,
- respectively. Minimum-thickness pens can be achieved by giving zero
- width. The result is device-dependent but typically means that as
- you zoom in on the feature in a display, the line thickness stays
- at the minimum. Finally, a few predefined
- pen names can be used: default, faint, and {thin, thick,
- fat}[er\|\ est], and wide. Table :ref:`pennames ` shows this
- list and the corresponding pen widths.
-
-.. _tbl-pennames:
-
- +------------+---------+------------+--------+
- +============+=========+============+========+
- | faint | 0 | thicker | 1.5p |
- +------------+---------+------------+--------+
- | default | 0.25p | thickest | 2p |
- +------------+---------+------------+--------+
- | thinnest | 0.25p | fat | 3p |
- +------------+---------+------------+--------+
- | thinner | 0.50p | fatter | 6p |
- +------------+---------+------------+--------+
- | thin | 0.75p | fattest | 10p |
- +------------+---------+------------+--------+
- | thick | 1.0p | wide | 18p |
- +------------+---------+------------+--------+
-
-.. _color_attrib:
-
- The *color* can be specified in five different ways:
-
- #. Gray. Specify a *gray* shade in the range 0–255 (linearly going
- from black [0] to white [255]).
-
- #. RGB. Specify *r*/*g*/*b*, each ranging from 0–255. Here 0/0/0 is
- black, 255/255/255 is white, 255/0/0 is red, etc. Alternatively,
- you can give RGB in hexadecimal using the *#rrggbb* format.
-
- #. HSV. Specify *hue*-*saturation*-*value*, with the former in the
- 0–360 degree range while the latter two take on the range 0–1 [17]_.
-
- #. CMYK. Specify *cyan*/*magenta*/*yellow*/*black*, each ranging
- from 0–100%.
-
- #. Name. Specify one of 663 valid color names. See :doc:`/gmtcolors` for
- a list of all valid names. A very small yet versatile
- subset consists of the 29 choices *white*, *black*, and
- [light\|\ dark]{*red, orange, yellow, green, cyan, blue,
- magenta, gray\|\ grey, brown*\ }. The color names are
- case-insensitive, so mixed upper and lower case can be used (like
- *DarkGreen*).
-
- The *style* attribute controls the appearance of the line. Giving "dotted" or "."
- yields a dotted line, whereas a dashed pen is requested with "dashed" or "-".
- Also combinations of dots and dashes, like ".-" for a dot-dashed
- line, are allowed. To override a default style and secure a solid line you can
- specify "solid" for style. The lengths of dots and dashes are scaled
- relative to the pen width (dots has a length that equals the pen
- width while dashes are 8 times as long; gaps between segments are 4
- times the pen width). For more detailed attributes including exact
- dimensions you may specify *string*\ [:*offset*], where *string* is a
- series of numbers separated by underscores. These numbers represent
- a pattern by indicating the length of line segments and the gap
- between segments. The optional *offset* phase-shifts the pattern from the
- beginning the line [0]. For example, if you want a yellow line of width
- 0.1 cm that alternates between long dashes (4 points), an 8 point
- gap, then a 5 point dash, then another 8 point gap, with pattern
- offset by 2 points from the origin, specify
- **-W**\ 0.1c,yellow,4_8_5_8:2p. Just as with pen width, the
- default style units are points, but can also be explicitly specified
- in cm, inch, or points (see *width* discussion above).
-
-Table :ref:`penex ` contains additional examples of pen specifications
-suitable for, say, :doc:`/plot`.
-
-.. _tbl-penex:
-
-+-------------------------------+-----------------------------------------------------+
-+===============================+=====================================================+
-| **-W**\ 0.5p | 0.5 point wide line of default color and style |
-+-------------------------------+-----------------------------------------------------+
-| **-W**\ green | Green line with default width and style |
-+-------------------------------+-----------------------------------------------------+
-| **-W**\ thin,red,- | Dashed, thin red line |
-+-------------------------------+-----------------------------------------------------+
-| **-W**\ fat,. | Fat dotted line with default color |
-+-------------------------------+-----------------------------------------------------+
-| **-W**\ 0.1c,120-1-1 | Green (in h-s-v) pen, 1 mm thick |
-+-------------------------------+-----------------------------------------------------+
-| **-W**\ faint,100/0/0/0,..- | Very thin, cyan (in c/m/y/k), dot-dot-dashed line |
-+-------------------------------+-----------------------------------------------------+
-
-In addition to these pen settings there are several
-PostScript settings that can affect the appearance of lines. These are
-controlled via the GMT defaults settings :term:`PS_LINE_CAP`,
-:term:`PS_LINE_JOIN`, and :term:`PS_MITER_LIMIT`. They determine how a line
-segment ending is rendered, be it at the termination of a solid line or
-at the end of all dashed line segments making up a line, and how a
-straight lines of finite thickness should behave when joined at a common
-point, as shown in Figures :ref:`Cap ` and :ref:`Miter `.
-
-.. _Cap_settings:
-
-.. figure:: /_images/GMT_cap.*
- :width: 400 px
- :align: center
-
- Line appearance can be varied by using :term:`PS_LINE_CAP`, choosing from **SQUARE** [Default],
- **ROUND**, or **BUTT**. The circles and thin lines indicate the coordinates. All lines
- where plotted with the same width and dash-spacing (-W10p,20_20:0).
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_cap.txt
-
-.. _Miter_settings:
-
-.. figure:: /_images/GMT_joint.*
- :width: 550 px
- :align: center
-
- Given lines have finite thickness, there are three types of joints where line-segments
- meet that can be adjusted with :term:`PS_LINE_JOIN`. There is **BEVEL**, **ROUND**, and
- **MITER**. The last setting also depends on :term:`PS_MITER_LIMIT` which sets a limit on
- the angle at the mitered joint below which we apply a bevel.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_joint.txt
-
-By default, line segments have rectangular ends, but this can
-change to give rounded ends. When :term:`PS_LINE_CAP` is set to round the
-a segment length of zero will appear as a circle. This can be used to
-created circular dotted lines, and by manipulating the phase shift in
-the *style* attribute and plotting the same line twice one can even
-alternate the color of adjacent items.
-Figure :ref:`Line appearance ` shows various lines made in this
-fashion by adjusting the joint and cap settings as well as plotting lines twice with
-different phase *offset* and color. See the :doc:`/gmt.conf` man page for more information.
-
-.. _Line_appearance:
-
-.. figure:: /_images/GMT_linecap.*
- :width: 500 px
- :align: center
-
- Line appearance can be varied by using :term:`PS_LINE_CAP`
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_linecap.txt
-
-Experience has shown that the rendering of lines that are short relative to the pen thickness
-can sometimes appear wrong or downright ugly. This is a feature of PostScript interpreters, such as
-Ghostscript. By default, lines are rendered using a fast algorithm which is susceptible to
-errors for thick lines. The solution is to select a more accurate algorithm to render the lines
-exactly as intended. This can be accomplished by using the GMT Defaults :term:`PS_LINE_CAP`
-and :term:`PS_LINE_JOIN` by setting both to *round*. Figure :ref:`Line appearance `
-displays the difference in results.
-
-.. _Line_badrender:
-
-.. figure:: /_images/GMT_fatline.*
- :width: 500 px
- :align: center
-
- Very thick line appearance using the default (left) and round line cap and join (right). The
- red line (1p width) illustrates the extent of the input coordinates.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_fatline.txt
-
-Specifying line attributes
---------------------------
-
-A line is drawn with the texture provided by the chosen pen (`Specifying pen attributes`_).
-However, depending on the module, a line also may have other attributes that can be changed in some modules.
-Given as modifiers to a pen specification, one or more modifiers may be appended to a pen
-specification. The line attribute modifiers are:
-
-
-* **+o**\ *offset*
- Lines are normally drawn from the beginning to the end point. You can modify this behavior
- by requesting a gap between these terminal points and the start and end of the
- visible line. Do this by specifying the desired offset between the terminal point and the
- start of the visible line. Unless you are giving distances in Cartesian data units,
- please append the distance unit, **u**. Depending on your desired effect, you can append
- plot distance units (i.e., **c**\ m, **i**\ nch, **p**\ oint; Section `Dimension units`_)) or map distance units,
- such as **k**\ m, **d**\ egrees, and many other standard distance units listed in
- Section `GMT units`_. If only one offset is given then it applies equally to both ends of
- the line. Give two slash-separated distances to indicate different offsets at the
- beginning and end of the line (and use 0 to indicate no offset at one end).
-
-.. _Line_offset:
-
-.. figure:: /_images/GMT_lineoffset.*
- :width: 500 px
- :align: center
-
- The thin red line shows an original line segment, whereas the 2-point thick pen illustrates the effect
- of plotting the same line while requesting offsets of 1 cm at the beginning and 500 km
- at the end, via **-W**\ 2p\ **+o**\ 1c/500k.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_lineoffset.txt
-
-* **+s**
- Normally, all PostScript line drawing is implemented as a linear spline, i.e., we simply
- draw straight line-segments between the map-projected data points. Use this modifier to render the
- line using Bezier splines for a smoother curve. **Note**: The spline is fit to the projected
- 2-D coordinates, not the raw user coordinates (i.e., it is not a spherical surface spline).
-
-.. _Line_bezier:
-
-.. figure:: /_images/GMT_bezier.*
- :width: 500 px
- :align: center
-
- (left) Normal plotting of line given input points (red circles) via **-W**\ 2p. (right) Letting
- the projected points be interpolated by a Bezier cubic spline via **-W**\ 2p\ **+s**.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_bezier.txt
-
-* **+v**\ [**b**\|\ **e**]\ *vspecs*
- By default, lines are normally drawn from start to end. Using the **+v** modifier you can
- place arrow-heads pointing outward at one (or both) ends of the line. Use **+v** if you
- want the same vector attributes for both ends, or use **+vb** and **+ve** to specify a vector
- only at the beginning or end of the line, respectively. Finally, these two modifiers may both be given
- to specify different attributes for the two vectors. The vector specification is very rich
- and you may place other symbols, such as circle, square, or a terminal cross-line, in lieu of the
- vector head (see :doc:`/plot` for more details).
-
-.. _Line_vector:
-
-.. figure:: /_images/GMT_linearrow.*
- :width: 500 px
- :align: center
-
- Same line as above but now we have requested a blue vector head at the end of the line and a
- red circle at the beginning of the line with **-W**\ 2p\ **+o**\ 1c/500k\ **+vb**\ 0.2i\ **+g**\ red\ **+p**\ faint\ **+b**\ c\ **+ve**\ 0.3i\ **+g**\ blue.
- Note that we also prescribed the line offsets in addition to the symbol endings.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_linearrow.txt
-
-.. _-Gfill_attrib:
-
-Specifying area fill attributes
--------------------------------
-
-Many plotting programs will allow the user to draw filled polygons or
-symbols. The fill specification may take two forms (note: not all modules
-use **-G** for this task and some have several options specifying different fills):
-
-**-G**\ *fill*
- In the first case we may specify a *gray* shade (0–255), RGB color
- (*r*/*g*/*b* all in the 0–255 range or in hexadecimal *#rrggbb*),
- HSV color (*hue*-*saturation*-*value* in the 0–360, 0–1, 0–1 range),
- CMYK color (*cyan*/*magenta*/*yellow*/*black*, each ranging from
- 0–100%), or a valid color *name*; in that respect it is similar to
- specifying the pen color settings (see pen color discussion under
- Section `Specifying pen attributes`_).
-
-**-GP**\|\ **p**\ *pattern*\ [**+b**\ *color*][**+f**\ *color*][**+r**\ *dpi*]
- The second form allows us to use a predefined bit-image pattern.
- *pattern* can either be a number in the range 1–90 or the name of a
- 1-, 8-, or 24-bit image raster file. The former will result in one of
- the 90 predefined 64 x 64 bit-patterns provided with GMT and
- reproduced in Chapter :doc:`predefined-patterns`.
- The latter allows the user to create
- customized, repeating images using image raster files.
- The optional **+r**\ *dpi* modifier sets the resolution of this image on the page;
- the area fill is thus made up of a series of these "tiles". The
- default resolution is 1200. By specifying upper case **-GP**
- instead of **-Gp** the image will be bit-reversed, i.e., white and
- black areas will be interchanged (only applies to 1-bit images or
- predefined bit-image patterns). For these patterns and other 1-bit
- images one may specify alternative background and foreground colors
- (by appending **+b**\ *color* and/or **+f**\ *color*) that will replace
- the default white and black pixels, respectively. Excluding *color* from
- a fore- or background specification yields a *transparent* image where
- only the back- *or* foreground pixels will be painted.
-
-Due to PostScript implementation limitations the raster images used
-with **-G** must be less than 146 x 146 pixels in size; for larger
-images see :doc:`/image`. The format of Sun raster files [18]_ is
-outlined in Chapter :doc:`file-formats`. However, if you built GMT
-with GDAL then other image formats can be used as well. Note that under
-PostScript Level 1 the patterns are filled by using the polygon as a
-*clip path*. Complex clip paths may require more memory than the
-PostScript interpreter has been assigned. There is therefore the
-possibility that some PostScript interpreters (especially those
-supplied with older laserwriters) will run out of memory and abort.
-Should that occur we recommend that you use a regular gray-shade fill
-instead of the patterns. Installing more memory in your printer *may or
-may not* solve the problem!
-
-Table :ref:`fillex ` contains a few examples of fill specifications.
-
-.. _tbl-fillex:
-
-+-------------------------------------------------+-----------------------------------------------------+
-+=================================================+=====================================================+
-| **-G**\ 128 | Solid gray |
-+-------------------------------------------------+-----------------------------------------------------+
-| **-G**\ 127/255/0 | Chartreuse, R/G/B-style |
-+-------------------------------------------------+-----------------------------------------------------+
-| **-G**\ #00ff00 | Green, hexadecimal RGB code |
-+-------------------------------------------------+-----------------------------------------------------+
-| **-G**\ 25-0.86-0.82 | Chocolate, h-s-v-style |
-+-------------------------------------------------+-----------------------------------------------------+
-| **-G**\ DarkOliveGreen1 | One of the named colors |
-+-------------------------------------------------+-----------------------------------------------------+
-| **-Gp**\ 7\ **+r**\ 300 | Simple diagonal hachure pattern in b/w at 300 dpi |
-+-------------------------------------------------+-----------------------------------------------------+
-| **-Gp**\ 7\ **+b**\ red\ **+r**\ 300 | Same, but with red lines on white |
-+-------------------------------------------------+-----------------------------------------------------+
-| **-Gp**\ 7\ **+b**\ red\ **+f**\ -\ **+r**\ 300 | Now the gaps between red lines are transparent |
-+-------------------------------------------------+-----------------------------------------------------+
-| **-Gp**\ marble.ras\ **+r**\ 100 | Using user image of marble as the fill at 100 dpi |
-+-------------------------------------------------+-----------------------------------------------------+
-
-Specifying Fonts
-----------------
-
-The fonts used by GMT are typically set indirectly via the
-GMT defaults parameters. However, some programs, like
-:doc:`/text` may wish to have this
-information passed directly. A font is specified by a comma-delimited
-attribute list of *size*, *fonttype* and *fill*, each of which is
-optional. The *size* is the font size (usually in points) but **c**,
-**i** or **p** can be added to indicate a specific unit. The *fonttype*
-is the name (case sensitive!) of the font or its equivalent numerical ID
-(e.g., Helvetica-Bold or 1). The *fill* specifies the gray shade, color or
-pattern of the text (see section `Specifying area fill attributes`_ above).
-Optionally, you may append **=**\ *pen* to the *fill* value in order to draw a text
-outline. If you want to avoid that the outline partially obscures the text,
-append **=~**\ *pen* instead; in that case only half the linewidth is plotted
-on the outside of the font only. If an outline is requested, you may optionally
-skip the text *fill* by setting it to **-**, in which case the full pen width
-is always used. If any of the font attributes is omitted their default or
-previous setting will be retained. See Chapter :doc:`postscript-fonts`
-for a list of all fonts recognized by GMT.
-
-Stroke, Fill and Font Transparency
-----------------------------------
-
-The PostScript language has no built-in mechanism for transparency.
-However, PostScript extensions make it possible to request
-transparency, and tools that can render such extensions will produce
-transparency effects. We specify transparency in percent: 0 is opaque
-[Default] while 100 is fully transparent (i.e., the feature will be invisible). As
-noted in section :ref:`option_-t`, we can control transparency on a
-layer-by-layer basis using the **-t** option. However, we may also set
-transparency as an attribute of stroke or fill (including for fonts)
-settings. Here, transparency is requested by appending @\ *transparency*
-to colors or pattern fills. The transparency *mode* can be changed by
-using the GMT default parameter :term:`PS_TRANSPARENCY`; the default is
-Normal but you can choose among Color, ColorBurn, ColorDodge, Darken,
-Difference, Exclusion, HardLight, Hue, Lighten, Luminosity, Multiply,
-Normal, Overlay, Saturation, SoftLight, and Screen. For more
-information, see for instance (search online for) the Adobe pdfmark
-Reference Manual. Most printers and many PostScript viewers can
-neither print nor show transparency. They will simply ignore your
-attempt to create transparency and will plot any material as opaque.
-Ghostscript and its derivatives such as GMT's
-:doc:`/psconvert` support transparency (if
-compiled with the correct build option). **Note**: If you use **Acrobat
-Distiller** to create a PDF file you must first change some settings to
-make transparency effective: change the parameter /AllowTransparency to
-true in your \*.joboptions file.
-
-Placement of text
------------------
-
-Many text labels placed on maps are part of the standard basemap
-machinery (e.g., annotations, axis labels, plot titles) and GMT
-automatically takes care of where these are placed and how they
-are justified. However, when you wish to add extra text to a plot
-in locations of your choice you will need to understand how we
-reference text to locations on the map. Figure :ref:`Text justification `
-discusses the various ways to do this.
-
-.. _Text_justify:
-
-.. figure:: /_images/GMT_pstext_justify.*
- :width: 400 px
- :align: center
-
- Text strings are placed on maps by associating an *anchor* point on
- the string with a *reference* point on the map. Nine anchor points
- relative to any text string may be specified by combining any of
- three letter codes for horizontal (**L**\ eft, **C**\ enter, **R**\ ight)
- and vertical (**T**\ op, **M**\ iddle, **B**\ ottom) alignments.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_pstext_justify.txt
-
-Notice how the anchor points refers to the text baseline and do not change
-for text whose letters extend below the baseline.
-
-The concept of anchor points extends to entire text paragraphs that you
-may want to typeset with :doc:`/text`.
-
-A related point involves the
-footprint of the text and any background panel on the map. We determine
-the bounding box for any text string, but very often we wish to extend this
-box outwards to allow for some *clearance* between the text and the space
-surrounding it. Programs that allows for such clearance will let you
-specify offsets *dx* and *dy* that is used to enlarge the bounding box,
-as illustrated in Figure :ref:`Text clearance `.
-
-.. _Text_clearance:
-
-.. figure:: /_images/GMT_pstext_clearance.*
- :width: 300 px
- :align: center
-
- The bounding box of any text string can be enlarged by specifying the
- adjustments *dx* and *dy* in the horizontal and vertical dimension. The shape of the
- bounding box can be modified as well, including rounded or convex
- rectangles. Here we have chosen a rounded rectangle, requiring the
- additional specification of a corner radius, *r*.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_pstext_clearance.txt
-
-.. _CPT_section:
-
-Color palette tables
---------------------
-
-Several programs need to relate user data to colors, shades, or even patterns.
-For instance, programs that read 2-D gridded data sets and
-create colored images or shaded reliefs need to be told what colors to
-use and over what *z*-range each color applies. Other programs may need
-to associate a user value with a color to be applied to a symbol, line,
-or polygon. This is the purpose of the color palette table (CPT). For
-most applications, you will simply create a CPT using the tool
-:doc:`/makecpt` which will take an existing *dynamic* master
-color table and stretch it to fit your chosen data range, or use
-:doc:`/grd2cpt` to build a CPT based on
-the data distribution in one or more given grid files. However, in rare
-situations you may need to make a CPT by hand or using text tools
-like **awk** or **perl**. Finally, if you have your own preferred color
-table you can convert it into a dynamic CPT and place it in your GMT
-user directory and it will be found and behave like other GMT master CPTs.
-
-Color palette tables (CPT) comes in two flavors: (1) Those designed to
-work with categorical data (e.g., data where interpolation of values is
-undefined) and (2) those designed for regular, continuously-varying
-data. In both cases the *fill* information follows the format given in
-Section `Specifying area fill attributes`_. The z-values in CPTs can
-be scaled by using the **+u**\|\ **U**\ *unit* mechanism. Append these
-modifiers to your CPT names when used in GMT commands. The **+u**\ *unit*
-modifier will scale z *from unit to* meters, while **+U**\ *unit* does
-the inverse (scale z *from meters to unit*).
-
-**Note**: Users are allowed to name their CPT files anything they want, but
-we recommend the use of the file extension ".cpt". This allows us to prevent
-any confusion when parsing filenames that may have sequences that otherwise
-might look like a file *modifier* (e.g., data.my+u5.cpt). Since valid modifiers
-are *appended* to a file name, finding such an extension simplifies parsing.
-
-Since GMT supports several coordinate systems for color specification,
-many master (or user) CPTs will contain the special comment
-
-| ``# COLOR_MODEL = model``
-
-where *model* specifies how the color-values in the CPT should be interpreted.
-By default we assume colors are given as red/green/blue triplets (each in the
-0-255 range) separated by
-slashes (model = *rgb*), but alternative representations are the HSV system
-of specifying hue-saturation-value triplets (with hue in 0-360 range and
-saturation and value ranging from 0-1) separated by hyphens (model = *hsv*),
-or the CMYK system of specifying cyan/magenta/yellow/black quadruples in percent,
-separated by slashes (model = *cmyk*).
-
-Categorical CPTs
-~~~~~~~~~~~~~~~~
-
-Categorical data are information on which normal numerical operations
-are not defined. As an example, consider various land classifications
-(desert, forest, glacier, etc.) and it is clear that even if we assigned
-a numerical value to these categories (e.g., desert = 1, forest = 2,
-etc) it would be meaningless to compute average values (what would 1.5
-mean?). For such data a special format of the CPTs are provided.
-Here, each category is assigned a unique key, a color or pattern, and an
-optional label (usually the category name) marked by a leading
-semi-colon. Keys (if numerical) must be monotonically increasing but do
-not need to be consecutive. The format is
-
-+-----------------+--------+--------------+
-| key\ :sub:`1` | *Fill* | [;\ *label*] |
-+-----------------+--------+--------------+
-| ... | | |
-+-----------------+--------+--------------+
-| key\ :sub:`n` | *Fill* | [;\ *label*] |
-+-----------------+--------+--------------+
-
-For usage with points, lines, and polygons, the keys may be text (single words),
-and then GMT will use strings to find the corresponding *Fill* value. Strings
-may be supplied as trailing text in data files (for points) or via the **-Z**\ *category*
-option in multiple segment headers (or set via **-a**\ *Z*\ =\ *aspatialname*).
-If any of your keys are called B, F, or N you must escape them with a leading backslash
-to avoid confusion with the flags for background, foreground and NaN colors.
-The *Fill* information follows the format given in Section `Specifying area fill attributes`_.
-For categorical data, background color or foreground color do not apply. The not-a-number (NaN)
-color (for *key*-values not found or blank) is defined in the :doc:`/gmt.conf` file, but it can be
-overridden by the statement
-
-+-----+---------------------+
-| N | Fill\ :sub:`nan` |
-+-----+---------------------+
-
-While you can make such categorical CPTs by hand, both :doc:`/makecpt` and :doc:`/grd2cpt` have options to
-simplify adding string keys and labels from comma-separated arguments.
-
-Regular CPTs
-~~~~~~~~~~~~
-
-Suitable for continuous data types and allowing for color
-interpolations, the format of the regular CPTs is:
-
-+---------------+-------------------+---------------+-------------------+----------+------------------------------+
-| z\ :sub:`0` | Color\ :sub:`min` | z\ :sub:`1` | Color\ :sub:`max` | [**A**] | [;\ *label*] |
-+---------------+-------------------+---------------+-------------------+----------+------------------------------+
-| ... |
-+---------------+-------------------+---------------+-------------------+----------+------------------------------+
-| z\ :sub:`n-2` | Color\ :sub:`min` | z\ :sub:`n-1` | Color\ :sub:`max` | [**A**] | [;\ *labell*\ [;\ *labelu*]] |
-+---------------+-------------------+---------------+-------------------+----------+------------------------------+
-
-
-Thus, for each "*z*-slice", defined as the interval between two
-boundaries (e.g., :math:`z_0` to :math:`z_1`), the color can be
-constant (by letting Color\ :math:`_{max}` = Color\ :math:`_{min}` or -)
-or a continuous, linear function of *z*. If patterns are used then the
-second (max) pattern must be set to -. The optional flag **A** is used
-to indicate annotation of the color scale when plotted using
-:doc:`/colorbar`. The optional flag **A** may
-be **L**, **U**, or **B** to select annotation of the lower, upper, or
-both limits of the particular *z*-slice, respectively. However,
-the standard **-B** option can be used by
-:doc:`/colorbar` to affect annotation and
-ticking of color scales. Just as other GMT programs, the *stride* can
-be omitted to determine the annotation and tick interval automatically
-(e.g., **-Baf**). The optional semicolon followed by a text label will
-make :doc:`/colorbar`, when used with the
-**-L** option, place the supplied label instead of formatted *z*-values.
-**Note**: If the last slice should have both lower and upper
-custom labels then you must supply *two* semicolon-separated labels and set the
-annotation code to **B**.
-
-
-The background color (for *z*-values < :math:`z_0`), foreground color (for *z*-values >
-:math:`z_{n-1}`), and not-a-number (NaN) color (for *z*-values =
-NaN) are all defined in the :doc:`/gmt.conf` file, but can be overridden by the
-statements
-
-+-----+---------------------+
-| B | Fill\ :sub:`back` |
-+-----+---------------------+
-| F | Fill\ :sub:`fore` |
-+-----+---------------------+
-| N | Fill\ :sub:`nan` |
-+-----+---------------------+
-
-which can be inserted into the beginning or end of the CPT. If you
-prefer the HSV system, set the :doc:`/gmt.conf` parameter accordingly and replace red,
-green, blue with hue, saturation, value. Color palette tables that
-contain gray-shades only may replace the *r/g/b* triplets with a single
-gray-shade in the 0–255 range. For CMYK, give *c/m/y/k* values in the
-0–100 range.
-
-A few programs (i.e., those that plot polygons such as
-:doc:`/grdview`, :doc:`/colorbar`,
-:doc:`/plot` and
-:doc:`/plot3d`) can accept pattern fills instead
-of gray-shades. You must specify the pattern as in Section `Specifying area fill attributes`_
-(no leading **-G** of course), and only the first pattern (for low
-*z*) is used (we cannot interpolate between patterns). Finally,
-some programs let you skip features whose *z*-slice in the CPT
-file has gray-shades set to -. As an example, consider
-
-+-----+----------+------+-----------+
-| 30 | p16+r200 | 80 | \- |
-+-----+----------+------+-----------+
-| 80 | \- | 100 | \- |
-+-----+----------+------+-----------+
-| 100 | 200/0/0 | 200 | 255/255/0 |
-+-----+----------+------+-----------+
-| 200 | yellow | 300 | green |
-+-----+----------+------+-----------+
-
-where slice 30 < z < 80 is painted with pattern # 16 at 200 dpi,
-slice 80 < z < 100 is skipped, slice 100 < z < 200 is
-painted in a range of dark red to yellow, whereas the slice
-200 < z < 300 will linearly yield colors from yellow to green,
-depending on the actual value of *z*.
-
-Some programs like :doc:`/grdimage` and
-:doc:`/grdview` apply artificial illumination
-to achieve shaded relief maps. This is typically done by finding the
-directional gradient in the direction of the artificial light source and
-scaling the gradients to have approximately a normal distribution on the
-interval [-1,+1]. These intensities are used to add "white" or "black"
-to the color as defined by the *z*-values and the CPT. An intensity
-of zero leaves the color unchanged. Higher values will brighten the
-color, lower values will darken it, all without changing the original
-hue of the color (see Chapter :doc:`colorspace` for more details). The
-illumination is decoupled from the data grid file in that a separate
-grid file holding intensities in the [-1,+1] range must be provided.
-Such intensity files can be derived from the data grid using
-:doc:`/grdgradient` and modified with
-:doc:`/grdhisteq`, but could equally well be
-a separate data set. E.g., some side-scan sonar systems collect both
-bathymetry and backscatter intensities, and one may want to use the
-latter information to specify the illumination of the colors defined by
-the former. Similarly, one could portray magnetic anomalies superimposed
-on topography by using the former for colors and the latter for shading.
-
-Master (dynamic) CPTs
-~~~~~~~~~~~~~~~~~~~~~
-
-The CPTs distributed with GMT are *dynamic*. This means they have several
-special properties that modify the behavior of programs that use them.
-Dynamic CPTs comes in a few different flavors: Some CPTs were designed
-to behave differently across a *hinge* value (e.g., a CPT designed specifically
-for topographic relief may include a discontinuity in color across the
-coastline at *z = 0*), and when users select these CPTs they will be stretched
-to fit the user's desired data range separately for each side of this *hard* hinge.
-Basically, a *hard* hinge CPT is the juxtaposition of two different CPTs joined
-at the hinge and these sections are stretched independently. Such CPT files
-are identified as such via the special comment
-
-| ``# HARD_HINGE``
-
-and all hard hinges occur at data value *z = 0* (but you can change this value by
-adding **+h**\ *value* to the name of the CPT).
-Other CPTs may instead have a *soft* hinge which indicates a natural hinge or transition
-point in the CPT itself, unrelated to any natural data set *per se*. These CPTs
-are flagged by the special comment
-
-| ``# SOFT_HINGE``
-
-CPTs with soft hinges behave as regular (non-hinge) CPTs *unless* the user activates then by
-appending **+h**\ [*hinge*] to the CPT name. This modifier will convert the soft
-hinge into a hard hinge at the user-specified data value *hinge* [which defaults to 0].
-Note that if your specified data range *excludes* an activated soft or hard hinge then we
-only perform color sampling from the *half* of the CPT that pertains to the data range.
-All dynamic CPTs will need to be stretched to the user's preferred range, and there
-are two modes of such scaling: Some CPTs designed for a specific application
-(again, the topographic relief is a good example) have a *default range*
-specified in the master table via the special comment
-
-
-| ``# RANGE = ``
-
-and when used by applications the CPT may be automatically stretched to reflect
-this natural range. In contrast, dynamic CPTs *without* a natural range are instead
-stretched to fit the range of the data in question (e.g., a grid's range).
-Exceptions to these rules are implemented in the two *CPT-producing* modules
-:doc:`/makecpt` and :doc:`/grd2cpt`, both of which can read dynamic CPTs
-and produce *static* CPTs satisfying a user's specific range needs. These
-tools can also read static CPTs for which a new range must be specified (or computed
-from data), reversing the order of colors, and even isolating a section
-of an incoming CPT. Here, :doc:`/makecpt` can be told the data range or compute
-it from data tables while :doc:`/grd2cpt` can derive the range from one or more grids.
-
-.. figure:: /_images/GMT_hinge.*
- :width: 500 px
- :align: center
-
- The top color bar is a dynamic master CPT (here, globe) with a hard hinge at sea level and
- a natural range from -10,000 to +10,000 meters. However, our data range
- is asymmetrical, going from -8,000 meter depths up to +3,000 meter elevations.
- Because of the hinge, the two sides of the CPT will be stretched separately
- to honor the desired range while utilizing the full color range.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_hinge.txt
-
-All CPT master tables can be found in Chapter :ref:`Of Colors and Color Legends`
-where those with hard or soft hinges are identified by triangles at their hinges.
-
-CPTs from color lists
-~~~~~~~~~~~~~~~~~~~~~
-
-GMT can build color tables "on the fly" from a comma-separated list of colors
-and a range of *z*-values to go with them. As illustrated below, there are
-four different ways to create such CPTs. In this example, we will operate with
-a list of three colors: red,yellow and purple, given to modules with the option **-C**\ red,yellow,purple,
-and utilize a fixed data range of *z = 0-6*.
-Four different CPTs result because we either select a *continuous* or *discrete table*, and because the *z*-intervals are
-either *equidistant* or *arbitrary*. The top continuous color table with equidistant spacing (a) is selected
-with the range **-T**\ 0/6, meaning the colors will continuously change from red (at *z = 0*) via
-yellow (at *z = 3*) to purple (at *z = 6*). Next, a discrete table with the same range (b)
-is obtained with **-T**\ 0/6/2, yielding colors that are either constant red (*z = 0-2*), yellow (*z = 2-4*)
-or purple (*z = 4-6*). The next discrete table (c) illustrates how to specify arbitrary
-node points in the CPT by providing a comma-separated list of values (**-T**\ 0,4,5.5,6). Now, the constant
-color intervals have unequal ranges, illustrated by red (*z = 0-4*), yellow (*z = 4-5.5*) and purple (*z = 5.5-6*). Finally, we
-create a continuous color table (d) with arbitrary nodes by giving **-T**\ 0,2,6 and adding **-Z**;
-the latter option forces a continuous CPT pinned to a given list of node values. Now, the colors
-continuously change from red (at *z = 0*) via yellow (at *z = 2*) to purple (at *z = 6*).
-Modules that obtain the *z*-range indirectly (e.g., :doc:`/grdimage`) may use the exact data range
-to set the quivalent of a **-T**\ *min/max* option. You may append **+i**\ *dz* to the
-color list to have the *min* and *max* values rounded down and up to nearest multiple of *dz*, respectively.
-
-.. figure:: /_images/GMT_colorlist.*
- :width: 500 px
- :align: center
-
- Lists of colors (here red,yellow,purple) can be turned into discrete or continuous CPT tables on the fly.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_colorlist.txt
-
-Cyclic (wrapped) CPTs
-~~~~~~~~~~~~~~~~~~~~~
-
-Any color table you produce can be turned into a cyclic or *wrapped* color table.
-This is performed by adding the **-Ww** option when running :doc:`/makecpt` or
-:doc:`/grd2cpt`. This option simply adds the special comment
-
-| ``# CYCLIC``
-
-to the color table and then GMT knows that when looking up a color from a *z*
-value it will remove an integer multiple of the *z*-range represented by the
-color table so that we are always inside the range of the color table. This
-means that the fore- and back-ground colors can never be activated. Wrapped
-color tables are useful for highlighting small changes.
-
-.. figure:: /_images/GMT_cyclic.*
- :width: 500 px
- :align: center
-
- Cyclic color bars are indicated by a cycle symbol on the left side of the bar.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_cyclic.txt
-
-.. _manipulating_CPTs:
-
-Manipulating CPTs
-~~~~~~~~~~~~~~~~~
-
-There are many ways to turn a master CPT into a custom CPT that works for your
-particular data range. The tools :doc:`/makecpt` and :doc:`/grd2cpt` allow
-several types of transformations to take place:
-
- #. You can reverse the *z*-direction of the CPT using option **-Iz**.
- This is useful when your data use a different convention for
- positive and negative (e.g., perhaps using positive depths instead of
- negative relief).
- #. You can invert the order of the colors in the CPT using option **-Ic**.
- This is different from the previous option in that only the colors
- are rearranged (it is also possible to issue **-Icz** to combine both effects.)
- #. You can select just a subset of a master CPT with **-G**, in effect creating
- a modified master CPT that can be scaled further.
- #. Finally, you can scale and translate the (modified) master CPT range to
- your actual data range or a sub-range thereof.
-
-The order of these transformations is important. For instance, if **-Iz** is given
-then all other *z*-values need to be referred to the new sign convention. For most
-applications only the last transformation is needed.
-
-.. figure:: /_images/GMT_CPTscale.*
- :width: 500 px
- :align: center
-
- Examples of two user CPTs for the range -0.5 to 3 created from the same master. One (left) extracted a
- subset of the master before scaling while the other (right) used the entire range.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_CPTscale.txt
-
-Automatic CPTs
-~~~~~~~~~~~~~~
-
-A few modules (:doc:`/grdimage`, :doc:`/grdview`) that expects a CPT option will
-provide a default CPT if none is provided. By default, the default CPT is the
-"turbo" color table, but this is overridden if the user uses the @eart_relief
-(we select "geo") or @srtm_relief (we select "srtm") data sets. After selection,
-these CPTs are read and scaled to match the range of the grid values. You may append
-**+i**\ *dz* to the CPT to have the exact range rounded to nearest multiple of *dz*.
-This is helpful if you plan to place a colorbar and prefer start and stop *z*-values
-that are multiples of *dz*.
-
-The Drawing of Vectors
-----------------------
-
-GMT supports plotting vectors in various forms. A vector is one of
-many symbols that may be plotted by :doc:`/plot`
-and :doc:`/plot3d`, is the main feature in
-:doc:`/grdvector`, and is indirectly used by
-other programs. All vectors plotted by GMT consist of two separate
-parts: The vector line (controlled by the chosen pen attributes) and the
-optional vector head(s) (controlled by the chosen fill). We distinguish
-between three types of vectors:
-
-#. Cartesian vectors are plotted as straight lines. They can be
- specified by a start point and the direction and length (in map
- units) of the vector, or by its beginning and end point. They may
- also be specified giving the azimuth and length (in km) instead.
-
-#. Circular vectors are (as the name implies) drawn as circular arcs and
- can be used to indicate opening angles. It accepts an origin, a
- radius, and the beginning and end angles.
-
-#. Geo-vectors are drawn using great circle arcs. They are specified by
- a beginning point and the azimuth and length (in km) of the vector,
- or by its beginning and end point.
-
-.. figure:: /_images/GMT_arrows.*
- :width: 500 px
- :align: center
-
- Examples of Cartesian (left), circular (middle), and geo-vectors (right)
- for different attribute specifications. Note that both full and half
- arrow-heads can be specified, as well as no head at all.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_arrows.txt
-
-There are numerous attributes you can modify, including how the vector
-should be justified relative to the given point (beginning, center, or
-end), where heads (if any) should be placed, if the head should just be
-the left or right half, if the vector attributes should shrink for
-vectors whose length are less than a given cutoff length, and the size
-and shape of the head. These attributes are detailed further in the
-relevant manual pages.
-
-.. figure:: /_images/GMT_arrows_types.*
- :width: 500 px
- :align: center
-
- Examples of different vector heads and attributes. The default is the standard
- triangular arrow head, which can be modified by adjusting the apex angle [30] or
- changing its shape via the :term:`MAP_VECTOR_SHAPE` setting.
- Other vector heads are the circle (**c**), the terminal line (**t**), the
- arrow fin (**i**) and the plain head (**A**) and tail (**I**); the last two
- are line-drawings only and cannot be filled.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_arrows_types.txt
-
-.. _Char-esc-seq:
-
-Character escape sequences
---------------------------
-
-For annotation labels or text strings plotted with
-:doc:`/text`, GMT provides several escape
-sequences that allow the user to temporarily switch to the symbol font,
-turn on sub- or superscript, etc., within words. These conditions are
-toggled on/off by the escape sequence @\ **x**, where **x** can be one
-of several types. The escape sequences recognized in GMT are listed in
-Table :ref:`escape `. Only one level of sub- or superscript is supported.
-Note that under Windows the percent symbol indicates a batch variable,
-hence you must use two percent-signs for each one required in the escape
-sequence for font switching. In bash scripts the brackets have special meaning, hence you must add double quotes.
-
-.. _tbl-escape:
-
-+-------------------+----------------------------------------------------------------+
-+===================+================================================================+
-| @~ | Turns symbol font on or off |
-+-------------------+----------------------------------------------------------------+
-| @+ | Turns superscript on or off |
-+-------------------+----------------------------------------------------------------+
-| @- | Turns subscript on or off |
-+-------------------+----------------------------------------------------------------+
-| @# | Turns small caps on or off |
-+-------------------+----------------------------------------------------------------+
-| @\_ | Turns underline on or off |
-+-------------------+----------------------------------------------------------------+
-| @%\ *fontno*\ % | Switches to another font; @%% resets to previous font |
-+-------------------+----------------------------------------------------------------+
-| @:\ *size*: | Switches to another font size; @:: resets to previous size |
-+-------------------+----------------------------------------------------------------+
-| @;\ *color*; | Switches to another font color; @;; resets to previous color |
-+-------------------+----------------------------------------------------------------+
-| @! | Creates one composite character of the next two characters |
-+-------------------+----------------------------------------------------------------+
-| @. | Prints the degree symbol |
-+-------------------+----------------------------------------------------------------+
-| @@ | Prints the @ sign itself |
-+-------------------+----------------------------------------------------------------+
-
-Shorthand notation for a few special European characters has also been added (for others
-you must use the full octal code):
-
-
-.. _tbl-shorthand:
-
-+----------+------------+----------+------------+
-| *Code* | *Effect* | *Code* | *Effect* |
-+==========+============+==========+============+
-| @E | Æ | @e | æ |
-+----------+------------+----------+------------+
-| @O | Ø | @o | ø |
-+----------+------------+----------+------------+
-| @A | Å | @a | å |
-+----------+------------+----------+------------+
-| @C | Ç | @c | ç |
-+----------+------------+----------+------------+
-| @N | Ñ | @n | ñ |
-+----------+------------+----------+------------+
-| @U | Ü | @u | ü |
-+----------+------------+----------+------------+
-| @s | ß | @i | í |
-+----------+------------+----------+------------+
-
-However, if your input text contains UTF-8 code characters (e.g., ü, Î)
-and you select the ISOLatin1+ character encoding then GMT will substitute
-the correct PostScript octal codes for you automatically.
-
-PostScript fonts used in GMT may be re-encoded to include several
-accented characters used in many European languages. To access these,
-you must specify the full octal code \\xxx allowed for
-your choice of character encodings determined by the
-:term:`PS_CHAR_ENCODING` setting described in the
-:doc:`/gmt.conf` man page. Only the special
-characters belonging to a particular encoding will be available. Many
-characters not directly available by using single octal codes may be
-constructed with the composite character mechanism @!.
-
-Some examples of escape sequences and embedded octal codes in
-GMT strings using the Standard+ encoding:
-
-| ``2@~p@~r@+2@+h@-0@- E\363tv\363s`` = 2\ :math:`\pi r^2h_0` Eötvös
-| ``10@+-3 @Angstr@om`` = 10\ :math:`^{-3}` Ångstrøm
-| ``Stresses are @~s@~@+*@+@-xx@- MPa`` = Stresses are :math:`\sigma^{*}_{xx}` MPa
-| ``Se@nor Gar@con`` = Señor Garçon
-| ``M@!\305anoa stra@se`` = Manoa straße
-| ``A@#cceleration@# (ms@+-2@+)`` = ACCELERATION (ms\ :math:`^{-2}`)
-
-The option in :doc:`/text` to draw a
-rectangle surrounding the text will not work for strings with escape
-sequences. A chart of characters and their octal codes is given in
-Chapter :doc:`octal-codes`.
-
-.. _GMT_Embellishments:
-
-Plot embellishments
--------------------
-
-Apart from visualizing your data sets, GMT maps can also be embellished in several ways.
-The 9 embellishments currently available are
-
-* **Map scale** showing the true scale at some location(s) on the map.
-
-* **Directional rose** showing true north and other cardinal directions.
-
-* **Magnetic rose** showing magnetic north and declination deviations.
-
-* **Color bar** relating the colors of your image to the data values.
-
-* **Map legend** showing the meaning of the symbols on your map.
-
-* **Image overlay** of raster images or EPS figures (e.g., institutional logos, photos, etc.).
-
-* **GMT logo** overlay.
-
-* **Map inset** showing perhaps the location of your detailed area in a regional or global context.
-
-* **Vertical scale** showing the vertical scale of anomalies on a map.
-
-Each of these features share a common system for specifying the location on the plot where the
-feature will be placed. They also share a common way for specifying the placement of a rectangular
-panel behind the feature (to provide a uniform background, for instance). Thus, before we discuss
-the different features in more detail we will first review the "reference point/anchor point"
-system used by GMT to specify such locations in relation to the underlying map, and then discuss
-the background panel attribute settings.
-
-.. _Reference_Points:
-
-Reference and anchor point specification
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. figure:: /_images/GMT_anchor.*
- :width: 500 px
- :align: center
-
- The placement of a map feature (here represented by a green rectangle) in relation
- to the underlying map. The nine named *reference* points (blue circles) on the map perimeter (and center)
- can be used to specify a location. Using the same system of nine points on the map feature
- (cyan circles) we select one of these as our *anchor* point (here TL, indicated by the orange square).
- The anchor point can optionally be shifted away from the reference point by an amount *dx/dy* in the direction
- implied by the anchor point (in this case to the top and left), yielding the adjusted
- anchor point (red square).
- The feature is then placed such that its adjusted anchor point matches the reference point.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_anchor.txt
-
-Placing a feature on the map means selecting a *reference* point somewhere on the map, an
-*anchor* point somewhere on the feature, and then positioning the feature so that the two points overlap.
-It may be helpful to consider the analog of a boat dropping an anchor: The boat navigates to the
-reference point and then, depending on where on the boat the anchor is located, moves so that the
-anchor connection point overlies the reference point, then drops the anchor.
-There are four different ways to specify the reference point on a map, allowing for complete freedom
-to select any location inside or outside the map. The reference point syntax is [**g**\|\ **j**\|\ **J**\|\ **n**\|\ **x**]\ *refpoint*;
-the five codes **g**\|\ **j**\|\ **J**\|\ **n**\|\ **x** refer to the five ways:
-
-.. _Reference_Points_g:
-
-#. [**g**] Specify *refpoint* using *data* coordinates, e.g., the longitude and latitude of the reference point.
- This mechanism is useful when you want to tie the location of the feature to an actual point
- best described by data coordinates. An example of such a reference point might
- be **g**\ 135W/20N.
-
-.. _Reference_Points_j:
-
-#. [**j**] Specify *refpoint* using one of the nine *justification codes*, equivalent to the justification
- codes for placing text strings in :doc:`/text`. This mechanism is illustrated in the figure above and
- is the preferred mechanism when you just want to place the feature **inside** the basemap at
- one of the corners or centered at one of the sides (or even smack in the middle). Justification codes
- are a combination of a horizontal (**L**, **C**, **R**) and a vertical (**T**, **M**, **B**) code.
- An example of such a reference point might be **jTL**\ . When used, the anchor point on the map feature
- will default to the same justification, i.e., **TL** in this example.
-
-#. [**J**] This is the same as **j** except it implies that the default anchor point is the mirror opposite of the
- justification code. Thus, when using **JTL**\, the anchor point on the map feature will default to **BR**.
- This is practical for features that are drawn **outside** of the basemap (like color bars often are).
-
-.. _Reference_Points_x:
-
-#. [**x**] Specify *refpoint* using *plot* coordinates, i.e., the distances in inches, centimeters, or
- points from the lower left plot origin. This mechanism is preferred when you wish to lay out
- map features using familiar measurements of distance from origins. An example of such a reference
- point might be **x**\ 2.75i/2c.
-
-.. _Reference_Points_n:
-
-#. [**n**] Specify *refpoint* using *normalized* coordinates, i.e., fractional coordinates between 0
- and 1 in both the *x* and *y* directions. This mechanism avoids units and is useful if you want to always
- place features at locations best referenced as fractions of the plot dimensions.
- An example of such a reference point might be **n**\ 0.2/0.1.
-
-If no code is specified we default to **x**.
-
-.. _Anchor_Point_j:
-
-With the reference point taken care of, it is time to select the anchor point.
-While the reference point selection gives unlimited flexibility to pick
-any point inside or outside the map region, the anchor point selection is limited to the nine justification points
-discussed for the **j** reference point code above. Add **+j**\ *anchor* to indicate which justification
-point of the map feature should be co-registered with the chosen reference point. If an anchor point is not
-specified then it defaults to the justification point set for the reference point (if **j**\ *code* was
-used to set it), or to the mirror opposite of the reference point (if **J**\ *code* was used); with all other
-specifications of the reference point, the anchor point takes on the default value of **MC** (for map rose and
-map scale) or **BL** (all other map features). Adding **+j**\ *anchor* overrules those defaults.
-For instance, **+jTR**\ would select the top right point on the map feature as the anchor.
-
-.. _Anchor_Point_o:
-
-It is likely that you will wish to offset the anchor point away from
-your selection by some arbitrary amount, particularly if the reference point is specified with **j**\|\ **J**\ *code*.
-Do so with **+o**\ *dx*\ [/*dy*], where *dy* equals *dx* if it is not provided.
-These increments are added to the projected plot coordinates of the anchor point, with
-positive values moving the reference point in the same direction as the 2-character code of the anchor point implies.
-Finally, the adjusted anchor point is matched with the reference point.
-
-Take for example an anchor point on the top left of the map feature, either by using a reference point **jTL**\ , or **JBR**\ ,
-or explicitly setting **+j**\ TL.
-Then **+o**\ 2c/1c will move the anchor point 2 cm left and 1 cm above the top left corner of the map feature.
-In other words, the top left corner of the map feature will end up 2 cm to the right and 1 cm below the selected reference point.
-
-Similarly, **+jBR** will align the bottom right corner of the map feature, and **+o**\ 2c/1c will offset it 2 cm to the left
-and 1 cm up. When using middle (**M**) or center (**C**) justifications, to offset works the same way as bottom (**B**) or left (**L**),
-respectively, i.e., moving the map feature up or to the right.
-
-.. _Background-panel:
-
-The background panel
-~~~~~~~~~~~~~~~~~~~~
-
-For most maps you will wish to place a background panel of uniform color behind
-any of the map features you plan to add. Because the panel is linked to the map feature
-you have selected, the parameters such as location and dimensions are handled automatically.
-What remains is to specify the *attributes* of the panel. Typically, panels settings are
-given via a module's **-F** option by appending one or more modifiers. Here is a list of
-the attributes that are under your control:
-
-#. Color or pattern. You specify the fill you want with **+g**\ *fill* [Default is no fill].
- For instance, paint the panel yellow with **+g**\ yellow.
-
-#. Panel frame pen. Turn on the frame outline with **+p**, using the pen defined via
- :term:`MAP_FRAME_PEN`. You may override this choice with **+p**\ *pen*
- [Default is no outline]. A very bold red outline might look like **+p**\ thick,red.
-
-#. Rounded versus straight rectangle. By specifying a corner radius with **+r**\ *radius*
- you can round the corners [Default is no rounding]. Here is a 0.5-cm radius rounding:
- **+r**\ 0.5c.
-
-#. Inner frame. A secondary, inner frame outline may be added as well with the modifier
- **+i**\ [[*gap*/]\ *pen*]. The default pen is given by :term:`MAP_DEFAULT_PEN`,
- with a default *gap* between the outer and inner frames of 2 points. Add arguments to override
- these defaults, such as **+i**\ 0.1c/thin,dashed to get a thin, dashed inner frame offset by
- 0.1 cm from the main (outer) frame.
-
-#. Panel clearance. The panel's dimensions are automatically determined from knowledge of
- its contents. However, it is sometimes required to add some extra clearance around most or
- all sides, and you can do so with **+c**\ [*clearance*], with a 4-point clearance being
- the default. Add one (uniform), two (different horizontal and vertical clearances), or
- four (separate for sides west, east, south, and north) clearances, separated by slashes. For instance, to add
- a 1 cm clearance in x and 5 points in y, use **+c**\ 1c/5p.
-
-#. Drop-down shadow. Append **+s** to simulate a gray shadow cast toward the southeast.
- You may append [*dx*/*dy*/][*shade*] to change the shade color and the offset of the
- shade [Default is 4p/-4p/gray50]. If happy with the placement but desiring a dark blue
- shadow, add **+s**\ darkblue.
-
-.. figure:: /_images/GMT_panel.*
- :width: 400 px
- :align: center
-
- A map panel is a rectangular background placed behind any of the map features. It has
- several attributes that can be changed with panel option modifiers. The light green rounded
- rectangle was specified with **-F+g**\ lightgreen\ **+r**, while the white panel on the
- lower right was set with **-F+p**\ 1p\ **+i+s+g**\ white\ **+c**\ 0.1i (we added a light
- dashed box to indicate the effect of the clearance setting).
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_panel.txt
-
-.. _Placing-map-scales:
-
-Placing map scales
-~~~~~~~~~~~~~~~~~~
-
-Traditionally, a map scale is added to maps for helping the reader understand the particular scale
-used for this map, i.e., it portrays the relationship between actual distances on the Earth
-(in km, miles, meters, etc.) and distances on the map (in cm, inches, points). Depending on
-the map projection the map scale will vary continuously but may be constant along a line of
-latitude (e.g., Mercator projection). Thus, in placing the map scale on the map there are
-two locations involved: (1) The *reference* point where the map scale's *anchor* should be
-pinned, and (2) the *projection* point where the scale is computed and thus where the map
-scale is true. Map scales can be plotted by :doc:`/basemap` or :doc:`/coast`, and in
-addition to the the required *refpoint* and anchor arguments specifying where the scale should be placed there
-are both required and optional modifiers. These are given via these modules' **-L** option.
-Here is a list of the attributes that is under your control:
-
-#. Scale bar length. Required modifier is given with **+w**\ *length*, where
- *unit* is one of the recognized distance units. An example might be **+w**\ 250n for
- a bar representing 250 nautical miles at the map scale origin.
-
-#. Map scale origin. Required modifier given with **+c**\ [*slon*/]\ *slat*, where the longitude
- of the scale origin is optional for projections with constant scale along parallels. For
- a Mercator projection it may look like **+c**\ 30N while an oblique projection may need **+c**\ 100W/23N,
- for instance.
-
-#. Fancy scale bar. By default a plain-looking scale bar is plotted. For a free upgrade to a fancier bar,
- append **+f**. The fancier bar is, well, a bit fancier.
-
-#. Scale label. Turn on scale labels with **+l**. By default, the scale label is initialized to
- equal the distance unit name. Use the **+l**\ *label* argument to supply your own scale label,
- such as **+l**\ "Distances at Equator".
-
-#. Scale label alignment. The default alignment is on top of the bar [**+at**], but you can change
- this by selecting another alignment by appending them to the **+a** modifier, including
- **b**\ ottom, **l**\ eft, or **r**\ ight. Here, **+ab** would align on the bottom of the scale.
-
-#. Append distance unit. For the fancy scale, adding **+u** will append the distance unit specified
- with **+w** to all distance annotations along the bar, while for the plain scale it will replace
- the default scale label with the unit abbreviation.
-
-.. figure:: /_images/GMT_mapscale.*
- :width: 500 px
- :align: center
-
- Example of two map scales for a Mercator projection evaluated at 53 degrees north.
- The left-most scale was placed with **-Lj**\ *ML*\ **+c**\ 53\ **+w**\ 1000k\ **+f+l**\ "Scale at 53\\232N"
- while the scale on the right was placed with **-Lj**\ *BR*\ **+c**\ 53\ **+w**\ 1000k\ **+l+f**.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_mapscale.txt
-
-Note that for the purpose of anchor justification (**+j**) the footprint of the map scale is
-considered the rectangle that contains the scale and all selected labels and annotations, i.e.,
-the map scale's *bounding box*.
-
-.. _Placing-dir-map-roses:
-
-Placing directional map roses
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Map roses showing the cardinal directions of a map help the reader orient themselves, especially
-for oblique projections where north-south is not vertically aligned. However, these roses also
-have ornamental value and can be used on any map projection. As for map scales, a directional
-map rose is added with :doc:`/basemap` or :doc:`/coast` and selected by the **-Td** option.
-This option accepts the *reference* point where the map rose's *anchor* should be
-pinned. In addition to the required *refpoint* and *anchor* arguments (and their standard
-modifiers discussed earlier) there is one required and two optional modifiers. The required
-modifier sets the side:
-
-#. Size of map rose. Use **+w**\ *size* to specify the full width and height of the rose. A 3 cm
- rose would require **+w**\ 3c.
-
-The next two modifiers are optional:
-
-#. Cardinal points. By default only the four cardinal points (W, E, S, N) are included in the rose.
- You can extend that with the **+f**\ *level* modifier, where *level* is 1 [Default], 2, or 3. Selecting
- 2 will include the two intermediate orientations NW-SE and NE-SW, while 3 adds the four additional
- orientations WNW-ESE, NNW-SSE, NNE-SSW, and ENE-WSW.
-
-#. Add labels. Do so with **+l**, which places the current one-letter codes for west, east, south,
- and north at the four cardinal points. These letters depend on the setting of :term:`GMT_LANGUAGE`
- and for the default English we use W, E, S, N, respectively. You can replace these labels with four custom
- labels via **+l**\ *w,e,s,n*, i.e., four comma-separated labels in the specified order. You can exclude any
- of the cardinal points from being labeled by giving no label in the corresponding order. E.g., **+l**",,Down,Up"
- would write Down and Up at the south and north cardinal point, respectively. Note that for the plain
- directional rose only the north annotation will be placed.
-
-.. figure:: /_images/GMT_dir_rose.*
- :width: 500 px
- :align: center
-
- Plain and fancy directional map roses. (left) Bare-bones plain rose showing arrow towards north
- and a cross indicating the cardinal directions, specified by **-Tdg**\ 0/0\ **+w**\ 1i. (middle) Fancy rose
- obtained by adding **+f** and **+l**\ ,,,N to get the north label. (right) Fancy directional rose
- at level 3 with labels by adding **+f**\ 3\ **+l**.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_dir_rose.txt
-
-.. _Placing-mag-map-roses:
-
-Placing magnetic map roses
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Map roses showing the magnetic directions of a map are useful when magnetic data are presented,
-or when declinations are significantly nonzero. However, as for directional roses the magnetic rose
-also has ornamental value. The magnetic rose consists of two concentric angular scales: The first
-(outer) ring shows directional angles while the second (inner) ring is optional and portrays the
-magnetic directions, which differ for nonzero declination. As for style, the two-ring rose looks a
-bit like a standard compass. As for directional roses, a magnetic
-map rose is added with :doc:`/basemap` or :doc:`/coast` and selected by the **-Tm** option.
-As for other features, append the required *reference* point where the magnetic map rose's *anchor*
-should be pinned. There is one required and several optional modifiers. First up is the size:
-
-#. Specify size of map rose. Use **+w**\ *size* to specify the full width of the rose. A 3 cm
- rose would imply **+w**\ 3c.
-
-The remaining modifiers are optional:
-
-#. Specify Declination. To add the inner angular scale, append **d**\ *dec*\ [/\ *dlabel*], where
- *dec* is the declination value in decimal or ddd:mm:ss format, and *dlabel* is an optional string
- that replaces the default label (which is "d = *dec*", with d being a Greek delta and we format
- the specified declination). Append **d**\ *dec*/- to indicate you do not want any declination label.
- As an example, consider **d**\ 11/"Honolulu declination".
-
-#. Draw the secondary (outer) ring outline. Normally it is not drawn, but you can change that by appending
- **+p**\ *pen*. For instance, adding **+p**\ thin will draw the ring with the selected thin pen.
-
-#. Add labels. As for directional roses you do so with **+l**, which places the current one-letter codes for west, east, south,
- and north at the four cardinal points. These letters depend on the setting of :term:`GMT_LANGUAGE`
- and for the default English we use W, E, S, N, respectively. You can replace these labels with four custom
- labels via **+l**\ *w,e,s,n*, i.e., four comma-separated labels in the specified order. You can exclude any
- of the cardinal points from being labeled by giving no label in the corresponding order. E.g., **+l**",,Down,Up"
- would write Down and Up at the south and north cardinal point, respectively.
-
-#. Draw the primary (inner) ring outline. It is also not normally drawn; change that by appending
- **+i**\ *pen*. For instance, adding **+i**\ thin,blue will draw the ring with the selected thin, blue pen.
-
-#. Set annotation, tick and grid intervals. Each ring has a default annotation [30], tick [5], and grid [1]
- interval (although here "grid interval" is just a finer tick interval drawn at half tickmark length).
- Adjust these three intervals with **+t**\ *intervals*. If you selected **+d** then you must supply
- two sets of such intervals (i.e., 6 comma-separated values), where the first (primary) set refers to
- the declination-adjusted ring and the second (secondary) set refers to the directional (outer) ring.
- If only three intervals are given then we assume you want the same intervals for both rings. As an example,
- to annotate every 90 degrees and tick every 15 and 5 degrees, add **+t**\ 90/15/5.
-
-.. figure:: /_images/GMT_mag_rose.*
- :width: 600 px
- :align: center
-
- Magnetic direction map rose. This symbol is quite complicated and has many items whose attributes are
- in part controlled by GMT defaults parameters and in part by the above modifiers. The color-coded legend
- indicates which parameters controls the font, pen, or color of the correspond item of the rose. This rose
- was specified by **-Tmg**\ -2/0.5\ **+w**\ 2.5i\ **+d**\ -14.5\ **+t**\ 45/10/5\ **+i**\ 0.25p,blue\ **+p**\ 0.25p,red\ **+l+j**\ CM.
- See :doc:`/gmt.conf` for more details on the default parameters.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_mag_rose.txt
-
-Placing color scale bars
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Color scale bars are used in conjunction with color-coded surfaces, symbols, lines, or even text, to
-relate the chosen color to a data value or category. For instance, color images of topography
-or other gridded data will need a mechanism for users to decode what the colors represent. Typically, we do this
-by adding a color scale bar on the outside (or inside) of the map boundaries. The module
-:doc:`/colorbar` places the color scale bar, with location and size determined by the **-D** attributes.
-As for other map features we must specify the reference and anchor points and any adjustments to them, then
-supply suitable required and optional modifiers:
-
-#. Give dimensions of color bar. Use **+w**\ *length*/*width* to specify the full width and height of the bar.
- For instance, a 10 cm long bar of height 0.5 cm would imply **+w**\ 10c/0.5c.
-
-#. Set orientation of color bar. By default, we place a vertically aligned bar. Select a horizontal bar by
- adding **+h**.
-
-#. Specify color bar label alignment. By default we place the chosen annotations, scale (i.e., x-axis) label
- and unit (i.e., y-axis) label on the opposite side of the color scale bar anchor point. Change this
- with **+m** and append any combination of **a**, **l**, or **u** to flip the annotations or labels
- to the opposite side. Append **c** to plot vertical labels as column text (this cannot be used with
- **+h**, obviously).
-
-#. Extend the color bar. You can use the **+e** modifier to add sidebar triangles for displaying the
- current back- and foreground colors. Append **b** (background) or **f** (foreground) to get the implied side
- only [Default is both]. Optionally, append triangle height [Default is half the bar *width*].
-
-#. Add missing data key. Append **+n** to draw a rectangle with the current NaN color and label it NaN.
- Optionally, append a replacement *text*. One example might be **+n**\ "No data".
-
-.. figure:: /_images/GMT_colorbar.*
- :width: 500 px
- :align: center
-
- Color bar placed beneath a map (here truncated). We extended the bar to show background and foreground
- colors, and used the frame-annotation machinery to add labels. The bar was placed with
- **-D**\ *JBC*\ **+o**\ 0/0.35i\ **+w**\ 4.5i/0.1i\ **+h**.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_colorbar.txt
-
-Placing map legends
-~~~~~~~~~~~~~~~~~~~
-
-Adding map legends is the standard way to communicate what various symbols placed on your map
-represent. For instance, you may use this mechanism to convey the information that circles are
-earthquake locations, triangles are places where you ate Thai food, and dashed lines indicate
-some sort of gang-land demarkation line that you should not cross without paying the locals due respect.
-Map legends are placed by the module :doc:`/legend`, with location and size determined by the
-various **-D** attributes. We must again specify the reference and anchor points and any adjustments to them
-first, then supply suitable required and optional modifiers:
-
-#. Give legend dimensions. You must specify the required legend width, while legend height is optional
- and if not given is computed based on the contents of the legend. The syntax is therefore
- **+w**\ *width*\ [/*height*] in your desired plot units. Thus, **+w**\ 12c sets the legend width
- as 12 cm but the height will become whatever is needed to contain the information.
-
-#. Set line-spacing. You may optionally specify the line-spacing used for the setting of the legend. The legend will
- typically consist of several lines that may or may not contain text, but the spacing between
- these lines are controlled by the chosen line-spacing factor times the current primary annotation
- font setting, i.e., :term:`FONT_ANNOT_PRIMARY`. The default line spacing factor
- is 1.1; change this with **+l**\ *linefactor*.
-
-.. figure:: /_images/GMT_legend.*
- :width: 500 px
- :align: center
-
- Example of a map legend placed with :doc:`/legend`. Apart from the placement and dimensions discussed
- here, :doc:`/legend` reads macro commands that specifies each item of the legend, including colors,
- widths of columns, the number of columns, and presents a broad selection of items. Here, we
- simply used **-Dx**\ 0/0\ **+w**\ 14c\ **+j**\ *BL*.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_legend.txt
-
-Placing raster and EPS images on maps
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When preparing posters for meetings one will often need to include the organization's logo,
-which may be available to you as an Encapsulated PostScript File (EPS) or as a raster image,
-such as PNG or JPG. At other times, you may wish to place photos or other raster images on
-your map. The module :doc:`/image` can help with this, and like the other map feature
-placements it requires a reference point and its optional adjustments via the **-D** option.
-In addition, we require one (of two) modifiers to determine the image size.
-
-#. Specify image width. This is a required modifier and is set via **+w**\ *width*\ [/*height*].
- If *height* is specified as 0 then we compute the height from *width* and the aspect
- ratio of the image, for instance **+w**\ 4c/0. If *width* is negative the we use its absolute value as width
- but interpolate the image in PostScript to the device resolution.
-
-#. Specify image resolution. For raster images (not EPS) you may instead specify the size of the
- plotted image by specifying its resolution in dots per inch, via **+r**\ *dpi*. The
- actual size of the images is then controlled by its number of pixels times the *dpi*.
-
-#. Enable image replication. For raster images (not EPS) you may optionally append **+n**\ *nx*\ [/*ny*]
- to indicate that you want the source image to be replicated that many times in the two
- directions, resulting in a tiling of the map using the selected image. This may be useful
- in conjunction with an active clip path set by :doc:`/clip`.
-
-.. figure:: /_images/GMT_images.*
- :width: 500 px
- :align: center
-
- Placement of EPS and raster images. (left) The US National Science Foundation (NSF) has
- generously funded the development of GMT and their JPG logo is reproduced here via
- **-Dj**\ *ML*\ **+w**\ 1.5i\ **+o**\ 0.1i. (right)
- The School of Ocean and Earth Science and Technology at the University of Hawaii at Manoa
- hosts the gmt server and its EPS logo is shown via **-Dj**\ *MR*\ **+o**\ 0.1i\ **+w**\ 2i.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_images.txt
-
-Placing a GMT logo on maps
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-It is possible to overlay the GMT logo on maps as well, using the module :doc:`/gmtlogo`.
-Like other features it requires reference and anchor points and their optional adjustments via the **-D** option.
-In addition, we require one modifier to set the logo's size.
-
-#. Specify logo width. This is a required modifier and is set via **+w**\ *width*.
- The height is automatically set (it is half the width). To place a 5 cm wide
- GMT logo, append **+w**\ 5c.
-
-.. figure:: /_images/GMT_coverlogo.*
- :width: 300 px
- :align: center
-
- Placement of the GMT logo. The logo itself only has a size modifier but the :doc:`/gmtlogo`
- module allows additional attributes such as a background map panel.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_coverlogo.txt
-
-Placing map insets
-~~~~~~~~~~~~~~~~~~
-
-Our penultimate map embellishment is the map inset.
-A map inset may appear to be the easiest feature to add since it only consists of an empty map panel.
-What you put in this panel is up to you (and we will show some examples). However, unlike
-the other map features there are two ways to specify the placement of the map inset.
-The first is the standard way of specifying the reference and anchor points and the inset dimensions,
-while the second specifies a *subregion* in the current plot that should be designated the
-map inset area. Depending on the map projection this may or may not be a rectangular area.
-Map insets are produced by the module :doc:`/inset` and located via the **-D** option. Unless you
-use the reference point approach you must first append *xmin*/*xmax*/*ymin*/*ymax*\ [**+r**][**+u**\ *unit*],
-where the optional *unit* modifier **+u** indicates that the four coordinates to follow are projected
-distances (e.g., km, miles). If the unit modifier is missing then we assume the coordinates are
-map coordinates (e.g., geographic *west*, *east*, *south*, and *north*). For oblique
-projections you may wish to specify the domain using the lower-left and upper-right coordinates
-instead (similar to how the **-R** option works), by adding **+r**\ . Some optional modifiers are available:
-
-#. Set inset size. If you specified a reference point then you must also specify the inset dimensions with the
- **+w**\ *width*\ [/*height*], where *height* defaults to *width* if not given.
- Append the unit of the dimensions, which may be distance units such as km, feet, etc., and
- the map projection will be used to determine inset dimensions on the map. For instance,
- **+w**\ 300k/200k is a 300x200 km region (which depends on the projection) while **+w**\ 5c
- is a 5cm square box.
-
-#. Save the location and dimensions. For all but the simplest of map insets you will need to
- know the exact location of the resulting inset and its dimensions. For instance, if you
- specified the inset using the **TR** anchor point and a width and height of 100 km you will need to
- know what this means in terms of positions on the map in plot units. In terms of the modifiers
- this would be **jTR**\ **+w**\ 100k. See the figure caption for an example.
-
-.. figure:: /_images/GMT_inset.*
- :width: 500 px
- :align: center
-
- Demonstration of how a map inset may be used to place a global overview map as an inset in a
- regional map. Main map shows the regional area of Australia. We place an inset in the upper
- right area with **-Dj**\ TR\ **+w**\ 3.8c\ **+o**\ 0.4c/0.25c.
- See Example :ref:`example_44` for more details.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_inset.txt
-
-Placing a vertical scale on maps
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Our final embellishment is reserved for wiggles plotted along track with :doc:`/wiggle` and
-is activated as an option within that module.
-Like other features, it requires reference and anchor points and their optional adjustments via the **-D** option.
-In addition, we offer a few modifier to set the scale bar's remaining attributes:
-
-#. Specify vertical scale bar length. This is a required modifier and is set via **+l**\ *length*.
- The length is given in the data (*z*) units of your plot. To indicate that your vertical scale bar
- should reflect 100 nTesla, append **+l**\ 100. The actual dimension of the scale bar on your map
- depends on the data scale set in :doc:`/wiggle` via **-Z**.
-
-#. Place the label on the left side of the vertical scale bar. This is an optional modifier and is set via **+m**.
- By default, the scale bar has open ``teeth`` pointing right and a label on that side. The **m** moves the
- label to the left and reverses the teeth direction as well.
-
-#. Add a unit to the vertical scale bar label. This is an optional modifier and is set via **+u**\ *unit*.
- To append nT (nTesla) to the label you would specify **+u**\ nT.
-
-.. figure:: /_images/GMT_vertscale.*
- :width: 600 px
- :align: center
-
- Placement of a vertical scale bar. As for other embellishments the :doc:`/wiggle`
- module allows additional attributes such as a background map panel.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_vertscale.txt
-
-.. _grid-file-format:
-
-Grid file format specifications
--------------------------------
-
-GMT has the ability to read and write grids using more than one grid file format
-(see Table :ref:`grdformats ` for supported format and their IDs).
-For reading, GMT will automatically determine the format of grid files, while for
-writing you will normally have to append *=ID* to the filename if you want GMT to
-use a different format than the default. The automatic reading procedure follows an heuristic
-where certain formats are tentatively decoded with GMT internal drivers and if they fail than
-we resort to use the GDAL library to do the readings. This normally works pretty well but in case
-of failure (e.g. a GMT driver failed to read binary file with a separate header that also could
-have been stored in an ASCII file with embed header) the user should explicitly try to force a
-reading via GDAL. That is, to append a *=gd* suffix to file name.
-
-By default, GMT will create new grid files using the **nf** format;
-however, this behavior can be overridden by setting the
-:term:`IO_GRIDFILE_FORMAT` defaults parameter to any of the other
-recognized values (or by appending *=ID*).
-
-GMT can also read netCDF grid files produced by other software
-packages, provided the grid files satisfy the COARDS and Hadley Centre
-conventions for netCDF grids. Thus, products created under those
-conventions (provided the grid is 2-, 3-, 4-, or 5-dimensional) can be
-read directly by GMT and the netCDF grids written by GMT can be read
-by other programs that conform to those conventions. Three such programs are
-`ncview `_, `Panoply
-`_, and `ncBrowse
-`_ ; others can be found on the
-`netCDF website `_.
-Note that although many additional programs can read netCDF files, some are unable
-to read netcdf 4 files (if data compression has been applied).
-
-In addition, users with some C-programming experience may add their own
-read/write functions and link them with the GMT library to extend the
-number of predefined formats. Technical information on this topic can be
-found in the source file ``gmt_customio.c``. Users who are considering this approach
-should contact the GMT team.
-
-.. _tbl-grdformats:
-
-+----------+---------------------------------------------------------------+
-| **ID** | **Explanation** |
-+==========+===============================================================+
-| | *GMT 4 netCDF standard formats* |
-+----------+---------------------------------------------------------------+
-| nb | GMT netCDF format (8-bit integer, COARDS, CF-1.5) |
-+----------+---------------------------------------------------------------+
-| ns | GMT netCDF format (16-bit integer, COARDS, CF-1.5) |
-+----------+---------------------------------------------------------------+
-| ni | GMT netCDF format (32-bit integer, COARDS, CF-1.5) |
-+----------+---------------------------------------------------------------+
-| nf | GMT netCDF format (32-bit float, COARDS, CF-1.5) |
-+----------+---------------------------------------------------------------+
-| nd | GMT netCDF format (64-bit float, COARDS, CF-1.5) |
-+----------+---------------------------------------------------------------+
-| | *GMT 3 netCDF legacy formats* |
-+----------+---------------------------------------------------------------+
-| cb | GMT netCDF format (8-bit integer, depreciated) |
-+----------+---------------------------------------------------------------+
-| cs | GMT netCDF format (16-bit integer, depreciated) |
-+----------+---------------------------------------------------------------+
-| ci | GMT netCDF format (32-bit integer, depreciated) |
-+----------+---------------------------------------------------------------+
-| cf | GMT netCDF format (32-bit float, depreciated) |
-+----------+---------------------------------------------------------------+
-| cd | GMT netCDF format (64-bit float, depreciated) |
-+----------+---------------------------------------------------------------+
-| | *GMT native binary formats* |
-+----------+---------------------------------------------------------------+
-| bm | GMT native, C-binary format (bit-mask) |
-+----------+---------------------------------------------------------------+
-| bb | GMT native, C-binary format (8-bit integer) |
-+----------+---------------------------------------------------------------+
-| bs | GMT native, C-binary format (16-bit integer) |
-+----------+---------------------------------------------------------------+
-| bi | GMT native, C-binary format (32-bit integer) |
-+----------+---------------------------------------------------------------+
-| bf | GMT native, C-binary format (32-bit float) |
-+----------+---------------------------------------------------------------+
-| bd | GMT native, C-binary format (64-bit float) |
-+----------+---------------------------------------------------------------+
-| | *Miscellaneous grid formats* |
-+----------+---------------------------------------------------------------+
-| rb | SUN raster file format (8-bit standard) |
-+----------+---------------------------------------------------------------+
-| rf | GEODAS grid format GRD98 (NCEI) |
-+----------+---------------------------------------------------------------+
-| sf | Golden Software Surfer format 6 (32-bit float) |
-+----------+---------------------------------------------------------------+
-| sd | Golden Software Surfer format 7 (64-bit float) |
-+----------+---------------------------------------------------------------+
-| af | Atlantic Geoscience Center AGC (32-bit float) |
-+----------+---------------------------------------------------------------+
-| ei | ESRI Arc/Info ASCII Grid Interchange format (ASCII integer) |
-+----------+---------------------------------------------------------------+
-| ef | ESRI Arc/Info ASCII Grid Interchange format (ASCII float) |
-+----------+---------------------------------------------------------------+
-| gd | Import/export via GDAL [19]_ |
-+----------+---------------------------------------------------------------+
-
-Because some formats have limitations on the range of values they can
-store it is sometimes necessary to provide more than simply the name of
-the file and its ID on the command line. For instance, a native short
-integer file may use a unique value to signify an empty node or NaN, and
-the data may need translation and scaling prior to use. Therefore, all
-GMT programs that read or write grid files will decode the given
-filename as follows:
-
-name[=\ *ID*][**+s**\ *scale*][**+o**\ *offset*][**+n**\ *invalid*]
-
-where anything in brackets is optional. If you are reading a grid then
-no options are needed: just continue to pass the name of the grid file.
-However, if you write another format you must append the =\ *ID* string,
-where *ID* is the format code listed above. In addition, should you want
-to (1) multiply the data by a scale factor, and (2) add a constant
-offset you must append the **+s**\ *scale* and **+o**\ *offset* modifiers. Finally, if you
-need to indicate that a certain data value should be interpreted as a
-NaN (not-a-number) you must append **+n**\ *invalid* modifier to file name.
-You may the scale as *a* for auto-adjusting the scale and/or offset of
-packed integer grids (=\ *ID*\ **+s**\ *a* is a shorthand for
-=\ *ID*\ **+s**\ *a*\ **+o**\ *a*).
-
-**Note**: Users are allowed to name their grid files anything they want. However,
-if you tend to use what *could* look like modifier-sequences to GMT (e.g., using
-filenames like data.grid+o4) you can prevent any confusion by using either the
-GMT-recommended ".grd" or ".nc" as grid file extensions (e.g., data.my+o4.grd).
-Since valid modifiers are *appended* to a file name, finding such an extension simplifies parsing.
-
-Note that the GMT netCDF and native binary grids store the grid scale and offset
-in the file, hence if you specify these attributes when writing a file then upon reading the grid
-these settings will automatically take effect. You can override them by supplying different scales
-and offsets, of course. For the grid formats that do not store these attributes
-you will need to supply them both when reading and writing.
-
-Some of the grid formats allow writing to standard output and reading
-from standard input which means you can connect GMT programs that
-operate on grid files with pipes, thereby speeding up execution and
-eliminating the need for large, intermediate grid files. You specify
-standard input/output by leaving out the filename entirely. That means
-the "filename" will begin with "=\ *ID*". Note that the netCDF format
-does not allow piping.
-
-Everything looks clearer after a few examples:
-
-* To write a native binary float grid file, specify the name as ``my_file.f4=bf`` .
-
-* To read a native short integer grid file, multiply the data by 10 and
- then add 32000, but first let values that equal 32767 be set to NaN,
- use the filename ``my_file.i2=bs+s10+o32000+n32767``.
-
-* To read a Golden Software "surfer" format 6 grid file, just pass the
- file name, e.g., ``my_surferfile.grd``.
-
-* To read a 8-bit standard Sun raster file (with values in the 0–255
- range) and convert it to a 1 range, give the name as ``rasterfile+s7.84313725e-3+o-1``
- (i.e., 1/127.5).
-
-* To write a native binary short integer grid file to standard output
- after subtracting 32000 and dividing its values by 10, give filename
- as ``=bs+s0.1+o-3200``.
-
-* To write an 8-bit integer netCDF grid file with an auto-adjusted
- offset, give filename as ``=nb+oa``.
-
-* To read a short integer *.bil* grid file stored in binary and and force
- the reading via GDAL, add suffix *=gd* as in ``n45_e008_1arc_v3.bil=gd``
-
-* To write a lossless, deflate compressed, and tiled GeoTIFF grid (or image) use,
- ``output.tif=gd:GTiff+cTILED=YES+cCOMPRESS=DEFLATE+cPREDICTOR=3``
- See also :ref:`Writing grids and images ` as well as available options
- for each output format from the GDAL driver documentation,
- `for example `_
-
-Programs that both read and/or write more than one grid file may specify
-different formats and/or scaling for the files involved. The only
-restriction with the embedded grid specification mechanism is that no
-grid files may actually use the "=" character as part of their name
-(presumably, a small sacrifice).
-
-One can also define special file suffixes to imply a specific file
-format; this approach represents a more intuitive and user-friendly way
-to specify the various file formats. The user may create a file called
-``gmt.io`` in the current directory or home directory, or in the directory
-``~/.gmt`` and define any number of custom formats. The following is an example of
-a ``gmt.io`` file:
-
-+---------------------------------------------------------------------------+
-| # GMT i/o shorthand file |
-| |
-| # It can have any number of comment lines like this one anywhere |
-| # suffix format_id scale offset NaN Comments |
-+-------+-----+-----+---+-------+-------------------------------------------+
-| grd | nf | \- | \-| \- | Default format |
-+-------+-----+-----+---+-------+-------------------------------------------+
-| b | bf | \- | \-| \- | Native binary floats |
-+-------+-----+-----+---+-------+-------------------------------------------+
-| i2 | bs | \- | \-| 32767 | 2-byte integers with NaN value |
-+-------+-----+-----+---+-------+-------------------------------------------+
-| ras | rb | \- | \-| \- | Sun raster files |
-+-------+-----+-----+---+-------+-------------------------------------------+
-| byte | bb | \- | \-| 255 | Native binary 1-byte grids |
-+-------+-----+-----+---+-------+-------------------------------------------+
-| bit | bm | \- | \-| \- | Native binary 0 or 1 grids |
-+-------+-----+-----+---+-------+-------------------------------------------+
-| mask | bm | \- | \-| 0 | Native binary 1 or NaN masks |
-+-------+-----+-----+---+-------+-------------------------------------------+
-| faa | bs | 0.1 | \-| 32767 | Native binary gravity in 0.1 mGal |
-+-------+-----+-----+---+-------+-------------------------------------------+
-| ns | ns | a | a | \- | 16-bit integer netCDF grid with |
-| | | | | | auto-scale and auto-offset |
-+-------+-----+-----+---+-------+-------------------------------------------+
-
-These suffices can be anything that makes sense to the user. To activate
-this mechanism, set parameter :term:`IO_GRIDFILE_SHORTHAND` to TRUE in
-your :doc:`/gmt.conf` file. Then, using the filename ``stuff.i2`` is equivalent to saying ``stuff.i2=bs+n32767``, and the
-filename ``wet.mask`` means wet.mask=bm+n0. For a file intended for masking, i.e.,
-the nodes are either 1 or NaN, the bit or mask format file may be as
-small as 1/32 the size of the corresponding grid float format file.
-
-Modifiers for changing units of grid coordinates
-------------------------------------------------
-
-A few GMT tools require that the two horizontal dimensions be
-specified in meters. One example is
-:doc:`/grdfft` which must compute the 2-D
-Fourier transform of a grid and evaluate wave numbers in the proper units
-(1/meter). There are two situations where the user may need to change
-the coordinates of the grid passed to such programs:
-
-- You have a geographic grid (i.e., in longitude and latitude). Simply
- supply the **-fg** option and your grid coordinates will
- automatically be converted to meters via a "Flat Earth" approximation
- on the currently selected ellipsoid (**Note**: This is only possible in
- those few programs that require this capability. In general, **-fg**
- is used to specify table coordinates).
-
-- You have a Cartesian grid but the units are not meters (e.g., they
- may perhaps be in km or miles). In this case you may append the file
- modifier **+u**\ *unit*, where *unit* is one of non-angular units listed
- in Table :ref:`distunits `. For example, reading in the grid (which has
- distance units of km) and converting distances to meters is done by
- specifying the filename as *filename*\ **+u**\ k. On output, any derived grids will revert
- to their original units *unless* you specify another unit modifier to
- the output grid. This may be used, for instance, to save the original
- grid with distances in meters using some other unit.
-
-For convenience, we also support the inverse translation, i.e.,
-**+U**\ *unit*. This modifier can be used to convert your grid
-coordinates *from* meters *to* the specified unit. Example :ref:`example_28` shows a
-case where this is being used to change an UTM grid in meters to km.
-These modifiers are only allowed when map projections are not selected
-(or are Cartesian).
-
-.. _modifiers-for-CF:
-
-Modifiers for COARDS-compliant netCDF files
--------------------------------------------
-
-When the netCDF grid file contains more than one 2-dimensional variable,
-GMT programs will load the first such variable in the file and ignore
-all others. Alternatively, the user can select the required variable by
-adding the suffix "?\ *varname*" to the grid file name. For example, to
-get information on the variable "slp" in file , use:
-
- ::
-
- gmt grdinfo "file.nc?slp"
-
-Since COARDS-compliant netCDF files are the default, the additional
-suffix "=nf" can be omitted.
-
-If there are no 2-dimensional variables and no specific variable was
-selected, we default to the first higher-dimensional matrix and select
-the first layer.
-
-In case the named grid is 3-dimensional, GMT will load the first
-(bottom) layer. If another layer is required, either add "[*index*]"
-or "(*level*)", where *index* is the index of the third (depth) variable
-(starting at 0 for the first layer) and *level* is the numerical value
-of the third (depth) variable associated with the requested layer. To
-indicate the second layer of the 3-D variable "slp" use as file name: ``file.nc?slp[1]``.
-
-When you supply the numerical value for the third variable using
-"(*level*)", GMT will pick the layer closest to that value. No
-interpolation is performed.
-
-Note that the question mark, brackets and parentheses have special
-meanings on Unix-based platforms. Therefore, you will need to either
-*escape* these characters, by placing a backslash in front of them, or
-place the whole file name plus modifiers between single quotes or double
-quotes.
-
-A similar approach is followed for loading 4-dimensional grids. Consider
-a 4-dimensional grid with the following variables:
-
- ::
-
- lat(lat): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
- lon(lon): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
- depth(depth): 0, 10, 20, 30, 40, 50, 60, 70, 80, 90
- time(time): 0, 12, 24, 36, 48
- pressure(time,depth,lat,lon): (5000 values)
-
-To get information on the 10x10 grid of pressure at
-depth 10 and at time 24, one would use:
-
- ::
-
- gmt grdinfo "file.nc?pressure[2,1]"
-
-or (only in case the coordinates increase linearly):
-
- ::
-
- gmt grdinfo "file.nc?pressure(24,10)"
-
-Programs that generally deal with columns of one-dimensional data, like
-or can use multi-dimensional netCDF files in a very similar way. If a
-variable in a netCDF file is one-dimensional, there is nothing more
-needed than name the variables on the command line. For example:
-
- ::
-
- gmt plot "file.nc?lon/lat" ...
- gmt convert "file.nc?time/lat/lon"
-
-If one or more of the selected variables are two-dimensional, and have
-the same leading dimension as the other selected variables they will be
-plotted in their entirety. For example, if a netCDF files contains 6
-time steps recording temperature at 4 points, and the variable ``temp`` is a 6 by
-4 array, then the command ``gmt convert "file.nc?time/temp"`` can result in:
-
- ::
-
- 2012-06-25T00:00:00 20.1 20.2 20.1 20.3
- 2012-06-25T12:00:00 24.2 23.2 24.5 23.5
- 2012-06-26T00:00:00 16.1 16.2 16.1 16.3
- 2012-06-26T12:00:00 22.1 23.0 23.9 23.5
- 2012-06-27T00:00:00 17.5 16.9 17.2 16.8
- 2012-06-27T12:00:00 27.2 27.2 27.5 27.5
-
-If, for example, only the second temperature column is needed, use
-``gmt convert "file.nc?time/temp[1]"`` (indices start counting at 0).
-
-The COARDS conventions set restrictions on the names that can be used
-for the units of the variables and coordinates. For example, the units
-of longitude and latitude are "degrees_east" and "degrees_north",
-respectively. Here is an example of the header of a COARDS compliant
-netCDF file (to be obtained using **ncdump**):
-
- ::
-
- netcdf M2_fes2004 {
- dimensions:
- lon = 2881 ;
- lat = 1441 ;
- variables:
- float lon(lon) ;
- lon:long_name = "longitude" ;
- lon:units = "degrees_east" ;
- lon:actual_range = 0., 360. ;
- float lat(lat) ;
- lat:long_name = "latitude" ;
- lat:units = "degrees_north" ;
- lat:actual_range = -90., 90. ;
- short amp(lat, lon) ;
- amp:long_name = "amplitude" ;
- amp:unit = "m" ;
- amp:scale_factor = 0.0001 ;
- amp:add_offset = 3. ;
- amp:_FillValue = -32768s ;
- short pha(lat, lon) ;
- pha:long_name = "phase" ;
- pha:unit = "degrees" ;
- pha:scale_factor = 0.01 ;
- pha:_FillValue = -32768s ;
-
-This file contains two grids, which can be plotted separately using the
-names ``M2_fes2004.nc?amp`` and ``M2_fes2004.nc?pha``. The attributes ``long_name`` and ``unit`` for each variable
-are combined in GMT to a single unit string. For example, after
-reading the grid ``y_unit`` equals ``latitude [degrees_north]``. The
-same method can be used in reverse to set the proper variable names and
-units when writing a grid. However, when the coordinates are set
-properly as geographical or time axes, GMT will take care of this. The
-user is, however, still responsible for setting the variable name and
-unit of the z-coordinate. The default is simply "z".
-
-Modifiers to read and write grids and images via GDAL
------------------------------------------------------
-
-If the support has been configured during installation, then GMT can
-read and write a variety of grid and image formats via GDAL. This
-extends the capability of GMT to handle data sets from a variety of
-sources.
-
-Reading multi-band images
-~~~~~~~~~~~~~~~~~~~~~~~~~
-
-:doc:`/grdimage` and :doc:`/image` both lets the user select
-individual bands in a multi-band image file and treats the result as an
-image (that is the values, in the 0–255 range, are treated as colors,
-not data). To select individual bands you use the **+b**\ *band-number*
-mechanism that must be appended to the image filename. Here,
-*band-number* can be the number of one individual band (the counting
-starts at zero), or it could be a comma-separated list of bands. For example
-
- ::
-
- gmt image jpeg_image_with_three_bands.jpg+b0 -jpg gray
-
-will plot only the first band (i.e., the red band) of the jpeg image as
-a gray-scale image, and
-
- ::
-
- gmt image jpeg_image_with_three_bands.jpg+b2,1,0 -jpg bgr
-
-will plot the same image in color but where the RGB band order has been reversed.
-
-Instead of treating them as images, all other GMT programs that
-process grids can read individual bands from an image but will consider
-the values to be regular data. For example, let ``multiband`` be the name of a
-multi-band file with a near infrared component in band 4 and red in band
-3. We will compute the NDVI (Normalized Difference Vegetation Index),
-which is defined as NDVI = (NIR - R) / (NIR + R), as
-
- ::
-
- gmt grdmath multiband=gd+b3 multiband=gd+b2 SUB multiband=gd+b3 \
- multiband=gd+b2 ADD DIV = ndvi.nc
-
-The resulting grid ``ndvi.nc`` can then be plotted as usual.
-
-Reading more complex multi-band IMAGES or GRIDS
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-It is also possible to access to sub-datasets in a multi-band grid. The
-next example shows how we can extract the SST from the MODIS file ``A20030012003365.L3m_YR_NSST_9``
-that is stored in the HDF "format". We need to run the GDAL program
-**gdalinfo** on the file because we first
-must extract the necessary metadata from the file:
-
-.. code-block:: none
-
- gdalinfo A20030012003365.L3m_YR_NSST_9
- Driver: HDF4/Hierarchical Data Format Release 4
- Files: A20030012003365.L3m_YR_NSST_9
- Size is 512, 512
- Coordinate System is `'
- Metadata:
- Product Name=A20030012003365.L3m_YR_NSST_9
- Sensor Name=MODISA
- Sensor=
- Title=MODISA Level-3 Standard Mapped Image
- ...
- Scaling=linear
- Scaling Equation=(Slope*l3m_data) + Intercept = Parameter value
- Slope=0.000717185
- Intercept=-2
- Scaled Data Minimum=-2
- Scaled Data Maximum=45
- Data Minimum=-1.999999
- Data Maximum=34.76
- Subdatasets:
- SUBDATASET_1_NAME=HDF4_SDS:UNKNOWN:"A20030012003365.L3m_YR_NSST_9":0
- SUBDATASET_1_DESC=[2160x4320] l3m_data (16-bit unsigned integer)
- SUBDATASET_2_NAME=HDF4_SDS:UNKNOWN:"A20030012003365.L3m_YR_NSST_9":1
- SUBDATASET_2_DESC=[2160x4320] l3m_qual (8-bit unsigned integer)
-
-Now, to access this file with GMT we need to use the =gd mechanism and
-append the name of the sub-dataset that we want to extract. Here, a
-simple example using :doc:`/grdinfo` would be
-
- ::
-
- gmt grdinfo A20030012003365.L3m_YR_NSST_9=gd?HDF4_SDS:UNKNOWN:"A20030012003365.L3m_YR_NSST_9:0"
-
- HDF4_SDS:UNKNOWN:A20030012003365.L3m_YR_NSST_9:0: Title: Grid imported via GDAL
- HDF4_SDS:UNKNOWN:A20030012003365.L3m_YR_NSST_9:0: Command:
- HDF4_SDS:UNKNOWN:A20030012003365.L3m_YR_NSST_9:0: Remark:
- HDF4_SDS:UNKNOWN:A20030012003365.L3m_YR_NSST_9:0: Gridline node registration used
- HDF4_SDS:UNKNOWN:A20030012003365.L3m_YR_NSST_9:0: Grid file format: gd = Import through GDAL (convert to float)
- HDF4_SDS:UNKNOWN:A20030012003365.L3m_YR_NSST_9:0: x_min: 0.5 x_max: 4319.5 x_inc: 1 name: x nx: 4320
- HDF4_SDS:UNKNOWN:A20030012003365.L3m_YR_NSST_9:0: y_min: 0.5 y_max: 2159.5 y_inc: 1 name: y ny: 2160
- HDF4_SDS:UNKNOWN:A20030012003365.L3m_YR_NSST_9:0: z_min: 0 z_max: 65535 name: z
- HDF4_SDS:UNKNOWN:A20030012003365.L3m_YR_NSST_9:0: scale_factor: 1 add_offset: 0
-
-Be warned, however, that things are not yet completed because while the
-data are scaled according to the equation printed above ("Scaling
-Equation=(Slope\*l3m_data) + Intercept = Parameter value"), this
-scaling is not applied by GDAL on reading so it cannot be done
-automatically by GMT. One solution is to do the reading and scaling
-via :doc:`/grdmath` first, i.e.,
-
- ::
-
- gmt grdmath A20030012003365.L3m_YR_NSST_9=gd?HDF4_SDS:UNKNOWN:"A20030012003365.L3m_YR_NSST_9:0" \
- 0.000717185 MUL -2 ADD = sst.nc
-
-then plot the ``sst.nc`` directly.
-
-.. _Write-grids-images:
-
-Writing grids and images
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-Saving images in the common raster formats is possible but, for the time being, only from :doc:`/grdimage` and even
-that is restricted to raster type information. That is, vector data (for instance, coast lines) or text will not
-be saved. To save an image with :doc:`/grdimage` use the **-A**\ *outimg=driver* mechanism, where *driver*
-is the driver code name used by GDAL (e.g. GTiff).
-
-For all other programs that create grids, it is also possible to save them using GDAL. To do it one need to use
-the =gd appended with the necessary information regarding the driver and the data type to use. Generically,
-=\ **gd**\ [**+s**\ *scale*][**+o**\ *offset*][**+n**\ *nan*][:<*driver*\ >[/\ *dataType*][**+c**\ *options*]]
-where *driver* is the same as explained above and *dataType* is a 2 or 3 chars code from:
-u8\|u16\|i16\|u32\|i32\|float32, and where i\|u denotes signed\|unsigned. If not provided the default type
-is float32. Both driver names and data types are case insensitive. The *options* is a list of one or more concatenated
-number of GDAL *-co* options. For example, to write a lossless JPG2000 grid one would append
-**+c**\ QUALITY=100\ **+c**\ REVERSIBLE=YES\ **+c**\ YCBCR420=NO
-**Note**: You will have to specify a *nan* value for integer data types unless you wish that all NaN data values
-should be replaced by zero.
-
-The NaN data value
-------------------
-
-For a variety of data processing and plotting tasks there is a need to
-acknowledge that a data point is missing or unassigned. In the "old
-days", such information was passed by letting a value like -9999.99 take
-on the special meaning of "this is not really a value, it is missing".
-The problem with this scheme is that -9999.99 (or any other floating
-point value) may be a perfectly reasonable data value and in such a
-scenario would be skipped. The solution adopted in GMT is to use the
-IEEE concept Not-a-Number (NaN) for this purpose. Mathematically, a NaN
-is what you get if you do an undefined mathematical operation like
-0/0; in ASCII data files they appear as the textstring NaN. This
-value is internally stored with a particular bit pattern defined by IEEE
-so that special action can be taken when it is encountered by programs.
-In particular, a standard library function called ``isnan`` is used to
-test if a floating point is a NaN. GMT uses these tests extensively to
-determine if a value is suitable for plotting or processing (if a NaN is
-used in a calculation the result would become NaN as well). Data points
-whose values equal NaN are not normally plotted (or plotted with the
-special NaN color given in :doc:`/gmt.conf`). Several tools such as
-:doc:`/xyz2grd`, :doc:`/gmtmath`, and
-:doc:`/grdmath` can convert user data to NaN
-and vice versa, thus facilitating arbitrary masking and clipping of data
-sets. Note that a few computers do not have native IEEE hardware
-support. At this point, this applies to some of the older Cray
-super-computers. Users on such machines may have to adopt the old
-'-9999.99' scheme to achieve the desired results.
-
-Data records that contain NaN values for the *x* or *y* columns (or the
-*z* column for cases when 3-D Cartesian data are expected) are usually
-skipped during reading. However, the presence of these bad records can
-be interpreted in two different ways, and this behavior is controlled by
-the :term:`IO_NAN_RECORDS` defaults parameter. The default setting (*gap*)
-considers such records to indicate a gap in an otherwise continuous
-series of points (e.g., a line), and programs can act upon this
-information, e.g., not to draw a line across the gap or to break the
-line into separate segments. The alternative setting (*bad*) makes no
-such interpretation and simply reports back how many bad records were
-skipped during reading; see Section :ref:`option_-g` for details.
-
-.. _Directory parameters:
-
-Directory parameters
---------------------
-
-GMT versions prior to GMT 5 relied solely on several environment variables
-(**$GMT_SHAREDIR**, **$GMT_DATADIR**, **$GMT_USERDIR**, and **$GMT_TMPDIR**), pointing
-to folders with data files and program settings. Beginning with version
-5, some of these locations are now (also or exclusively) configurable
-with the :doc:`/gmtset` utility.
-When an environment variable has an equivalent parameter in the :doc:`/gmt.conf` file,
-then the parameter setting will take precedence over the environment variable.
-
-Variable **$GMT_SHAREDIR**
- was sometimes required in previous GMT versions to locate the GMT
- share directory where all run-time support files such as coastlines,
- custom symbols, PostScript macros, color tables, and much more reside.
- If this parameter is not set (default), GMT will make a reasonable
- guess of the location of its share folder. Setting this variable is
- usually not required and recommended only under special circumstances.
-
-Variable **$GMT_DATADIR** and parameter :term:`DIR_DATA`
- may point to one or more directories where large and/or widely used
- data files can be placed. All GMT programs look in these directories
- when a file is specified on the command line and it is not present in
- the current directory. This allows maintainers to consolidate large
- data files and to simplify scripting that use these files since the
- absolute path need not be specified. Separate multiple directories
- with commas. Any directory
- name that ends in a trailing slash (/) will be searched recursively
- (not under Windows).
-
-Variable **$GMT_USERDIR**
- may point to a directory where the user places custom configuration
- files (e.g., an alternate ``coastline.conf`` file, preferred default
- settings in ``gmt.conf``, custom symbols and color palettes, math
- macros for :doc:`/gmtmath` and :doc:`/grdmath`, and shorthands for
- gridfile extensions via ``gmt.io``). When **$GMT_USERDIR** is not defined,
- then the default value **$HOME**/.gmt will be assumed. Users may also place their own
- data files in this directory as GMT programs will search for files
- given on the command line in both :term:`DIR_DATA` and **$GMT_USERDIR**.
-
-Variable **$GMT_CACHEDIR**
- may point to a directory where the user places cached data files
- downloaded from the GMT data server. When **$GMT_CACHEDIR** is not defined,
- then the default value **$HOME**/.gmt/cache will be assumed. The cache
- directory can be emptied by running gmt **gmt clear cache**.
-
-Variable **$GMT_TMPDIR**
- may indicate the location, where GMT will write its state parameters
- via the two files ``gmt.history`` and ``gmt.conf``. If **$GMT_TMPDIR** is not
- set, these files are written to GMT session directory [for modern mode] or
- the current directory [for classic mode].
-
-Parameter :term:`DIR_DCW`
- specifies where to look for the optional Digital Charts of the World
- database (for country coloring or selections).
-
-Parameter :term:`DIR_GSHHG`
- specifies where to look for the required
- Global Self-consistent Hierarchical High-resolution Geography database.
-
-
-Note that files whose full path is given will never be searched for in
-any of these directories.
-
-Footnotes
----------
-
-.. [7]
- Vicenty, T. (1975), Direct and inverse solutions of geodesics on the
- ellipsoid with application of nested equations, *Surv. Rev.,
- XXII(176)*, 88–93.
-
-.. [8]
- PostScript definition. In the typesetting industry a slightly
- different definition of point (1/72.27 inch) is used, presumably to
- cause needless trouble.
-
-.. [9]
- Choose between SI and US default units by modifying in the
- GMT share directory.
-
-.. [10]
- To remain backwards compatible with GMT 4 we will also look for
- but only if cannot be found.
-
-.. [16]
- To keep PostScript files small, such comments are by default turned
- off; see :term:`PS_COMMENTS` to enable them.
-
-.. [17]
- For an overview of color systems such as HSV, see Chapter :doc:`colorspace`.
-
-.. [18]
- Convert other graphics formats to Sun ras format using GraphicsMagick's or ImageMagick's **convert** program.
-
-.. [19]
- Requires building GMT with GDAL.
diff --git a/6.2.0rc1/_sources/cookbook/file-formats.rst.txt b/6.2.0rc1/_sources/cookbook/file-formats.rst.txt
deleted file mode 100644
index abb370f942a..00000000000
--- a/6.2.0rc1/_sources/cookbook/file-formats.rst.txt
+++ /dev/null
@@ -1,443 +0,0 @@
-.. _GMT File Formats:
-
-GMT File Formats
-================
-
-Table data
-----------
-
-These files have *N* records which have *M* fields each. All programs
-that handle tables can read multicolumn files. GMT can read both
-ASCII, native binary, netCDF table data, and ESRI shapefiles (which
-we convert to GMT/OGR format via GDAL's ogr2ogr tool under the hood).
-
-ASCII tables
-~~~~~~~~~~~~
-
-Optional file header records
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-The first data record may be preceded by one or more header records. Any
-records that has '#' as the *first* character is considered a header or comment line and
-are always processed correctly. If your data file has leading header
-records that do *not* start with '#' then you must make sure to use the
-**-h** option and set the parameter :term:`IO_N_HEADER_RECS` in the :doc:`/gmt.conf` file
-(GMT default is one header record if **-h** is given; you may also use
-**-h**\ *nrecs* directly). Alternatively, you can override the header record marker '#'
-by modifying the :term:`IO_HEADER_MARKER` default setting.
-Fields within a record must be separated by
-spaces, tabs, commas, or semi-colons. Each field can be an integer or floating-point
-number or a geographic coordinate string using the
-[±]\ *dd*\ [:*mm*\ [:*ss*\ [.\ *xx...*]]][**W**\|\ **E**\|\ **S**\|\ **N**\|\ **w**\|\ **e**\|\ **s**\|\ **n**]
-format. Thus, 12:30:44.5W, 17.5S, 1:00:05, and 200:45E are all valid
-input strings. GMT is expected to handle most CVS (Comma-Separated Values)
-files, including numbers given in double quotes. On output, fields will be separated by the character
-given by the parameter :term:`IO_COL_SEPARATOR`, which by default is a TAB.
-
-Optional segment header records
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-When dealing with time- or (*x,y*)-series it is usually convenient to
-have each profile in separate files. However, this may sometimes prove
-impractical due to large numbers of profiles. An example is files of
-digitized lineations where the number of individual features may range
-into the thousands. One file per feature would in this case be
-unreasonable and furthermore clog up the directory. GMT provides a
-mechanism for keeping more than one profile in a file. Such files are
-called *multiple segment files* and are identical to the ones just
-outlined except that they have segment headers interspersed with data
-records that signal the start of a new segment. The segment headers may
-be of any format, but all must have the same character in the first
-column. The unique character is by default '\ >\ ', but you can
-override that by modifying the :term:`IO_SEGMENT_MARKER` default setting.
-Programs can examine the segment headers to see if they contain **-D**
-for a distance value, **-W** and **-G** options for specifying pen and
-fill attributes for individual segments, **-Z** to change color via a
-CPT, **-L** for label specifications, or **-T** for general-purpose
-text descriptions. These settings (and occasionally others) will
-override the corresponding command line options. GMT also provides for
-two special values for :term:`IO_SEGMENT_MARKER` that can make
-interoperability with other software packages easier. Choose the marker
-**B** to have blank lines recognized as segment breaks, or use **N** to
-have data records whose fields equal NaN mean segment breaks (e.g., as
-used by Matlab or Octave). When these markers are used then no other
-segment header will be considered. Note that :term:`IO_SEGMENT_MARKER` can
-be set differently for input and output. Finally, if a segment represents
-a closed polygon that is a hole inside another polygon you indicate this
-by including **-Ph** in the segment header. This setting will be read
-and processed if converting a file to the OGR format.
-
-Binary tables
-~~~~~~~~~~~~~
-
-GMT programs also support native binary tables to speed up
-input-output for i/o-intensive tasks like gridding and preprocessing.
-This is discussed in more detail in section :ref:`option_-b`.
-
-NetCDF tables
-~~~~~~~~~~~~~
-
-More and more programs are now producing binary data in the netCDF
-format, and so GMT programs started to support tabular netCDF data
-(files containing one or more 1-dimensional arrays) starting with
-GMT version 4.3.0. Because of the meta data contained in those files,
-reading them is much less complex than reading native binary tables, and
-even than ASCII tables. GMT programs will read as many 1-dimensional
-columns as are needed by the program, starting with the first
-1-dimensional it can find in the file. To specifically specify which
-variables are to be read, append the suffix
-**?**\ *var1*\ **/**\ *var2*\ **/**\ *...* to the netCDF file name or
-add the option **-bic**\ *var1*\ **/**\ *var2*\ **/**\ *...*, where
-*var1*, *var2*, etc. are the names of the variables to be processed. The
-latter option is particularly practical when more than one file is read:
-the **-bic** option will apply to all files. Currently, GMT only
-reads, but does not write, netCDF tabular data.
-
-Shapefiles
-~~~~~~~~~~
-
-GMT programs that read tables also support ESRI shapefiles, provided GMT was compiled
-with GDAL support. By default, only the geographic coordinates are read. To select
-some or all aspatial fields, see the :ref:`-a option <-aspatial_full>`.
-
-Grid files
-----------
-
-GMT allows numerous grid formats to be read. In addition to the default
-netCDF format it can use binary floating points, short integers, bytes, and
-bits, as well as 8-bit Sun raster files (colormap ignored). Additional
-formats may be used by supplying read/write functions and linking these with
-the GMT libraries. The source file ``gmt_customio.c`` has the information
-that programmers will need to augment GMT to read custom grid files. See
-Section :ref:`grid-file-format` for more information.
-
-NetCDF files
-~~~~~~~~~~~~
-
-By default, GMT stores 2-D grids as COARDS-compliant netCDF files.
-COARDS (which stands for Cooperative Ocean/Atmosphere Research Data
-Service) is a convention used by many agencies distributing gridded data
-for ocean and atmosphere research. Sticking to this convention allows
-GMT to read gridded data provided by other institutes and other
-programs. Conversely, other general domain programs will be able to read
-grids created by GMT. COARDS is a subset of a more extensive
-convention for netCDF data called CF-1.5 (Climate and Forecast, version
-1.5). Hence, GMT grids are also automatically CF-1.5-compliant.
-However, since CF-1.5 has more general application than COARDS, not all
-CF-1.5 compliant netCDF files can be read by GMT.
-
-The netCDF grid file in GMT has several attributes (See Table
-:ref:`netcdf-format `) to describe the content. The routine
-that deals with netCDF grid files is sufficiently flexible so that grid files
-slightly deviating from the standards used by GMT can also be read.
-
-.. _tbl-netcdf-format:
-
-+----------------------+--------------------------------------------------------------------+
-| **Attribute** | **Description** |
-+======================+====================================================================+
-| | *Global attributes* |
-+----------------------+--------------------------------------------------------------------+
-| Conventions | COARDS, CF-1.5 (optional) |
-+----------------------+--------------------------------------------------------------------+
-| title | Title (optional) |
-+----------------------+--------------------------------------------------------------------+
-| source | How file was created (optional) |
-+----------------------+--------------------------------------------------------------------+
-| node_offset | 0 for gridline node registration (default), |
-| | 1 for pixel registration |
-+----------------------+--------------------------------------------------------------------+
-| | *x- and y-variable attributes* |
-+----------------------+--------------------------------------------------------------------+
-| long_name | Coordinate name (e.g., "Longitude" and "Latitude") |
-+----------------------+--------------------------------------------------------------------+
-| units | Unit of the coordinate (e.g., "degrees_east" and "degrees_north") |
-+----------------------+--------------------------------------------------------------------+
-| actual range | Minimum and maximum *x* and *y* of region; if absent the |
-| (or valid range) | first and last *x*- and *y*-values are queried |
-+----------------------+--------------------------------------------------------------------+
-| | *z-variable attributes* |
-+----------------------+--------------------------------------------------------------------+
-| long_name | Name of the variable (default: "z") |
-+----------------------+--------------------------------------------------------------------+
-| units | Unit of the variable |
-+----------------------+--------------------------------------------------------------------+
-| scale_factor | Factor to multiply *z* with (default: 1) |
-+----------------------+--------------------------------------------------------------------+
-| add_offset | Offset to add to scaled *z* (default: 0) |
-+----------------------+--------------------------------------------------------------------+
-| actual_range | Minimum and maximum *z* (in unpacked units, optional) and *z* |
-+----------------------+--------------------------------------------------------------------+
-| \_FillValue | Value associated with missing or invalid data points; if absent an |
-| (or missing_value) | appropriate default value is assumed, depending on data type. |
-+----------------------+--------------------------------------------------------------------+
-
-By default, the first 2-dimensional variable in a netCDF file will be read as
-the *z* variable and the coordinate axes *x* and *y* will be determined from
-the dimensions of the *z* variable. GMT will recognize whether the *y*
-(latitude) variable increases or decreases. Both forms of data storage are
-handled appropriately.
-
-For more information on the use of COARDS-compliant netCDF files, and on how
-to load multi-dimensional grids, read Section :ref:`modifiers-for-CF`.
-
-Chunking and compression with netCDF
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-GMT supports reading and writing of netCDF-4 files since release 5.0. For
-performance reasons with ever-increasing grid sizes, the default output format
-of GMT is netCDF-4 with chunking enabled for grids with more than 16384 cells.
-Chunking means that the data are not stored sequentially in rows along latitude
-but rather split up into tiles. Figure :ref:`netcdf_chunking` illustrates
-the layout in a chunked netCDF file. To access a subset of the data (e.g.,
-the four blue tiles in the lower left), netCDF only reads those tiles
-("chunks") instead of extracting data from long rows.
-
-.. _netcdf_chunking:
-
-.. figure:: /_images/GMT_chunking.*
- :align: center
-
- Grid split into 3 by 3 chunks
-
-Gridded datasets in the earth sciences usually exhibit a strong spatial
-dependence (e.g. topography, potential fields, illustrated by blue and white
-cells in Figure :ref:`netcdf_chunking`) and deflation can greatly reduce the
-file size and hence the file access time (deflating/inflating is faster than
-hard disk I/O). It is therefore convenient to deflate grids with spatial
-dependence (levels 1–3 give the best speed/size-tradeoff).
-
-You may control the size of the chunks of data and compression with the
-configuration parameters :term:`IO_NC4_CHUNK_SIZE`
-and :term:`IO_NC4_DEFLATION_LEVEL` as specified in
-:doc:`/gmt.conf` and you can check the netCDF format with :doc:`/grdinfo`.
-
-Classic netCDF files were the *de facto* standard until netCDF 4.0 was released
-in 2008. Most programs supporting netCDF by now are using the netCDF-4
-library and are thus capable of reading netCDF files generated with GMT 5,
-this includes official GMT releases since revision 4.5.8. In rare occasions,
-when you have to load netCDF files with old software, you may be forced to
-export your grids in the old classic format. This can be achieved by setting
-:term:`IO_NC4_CHUNK_SIZE` to **c**\ lassic.
-
-Further reading:
-
-- `Unidata NetCDF Workshop: NetCDF Formats and Performance `_
-- `Unidata NetCDF Workshop: What is Chunking? `_
-- `HDF NetCDF-4 Performance Report `_
-
-Gridline and Pixel node registration
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Scanline format means that the data are stored in rows (*y* = constant)
-going from the "top" (:math:`y = y_{max}` (north)) to the "bottom"
-(:math:`y = y_{min}` (south)). Data within each row are ordered from
-"left" (:math:`x = x_{min}` (west)) to "right" (:math:`x = x_{max}`
-(east)). The *registration* signals how the nodes are laid out. The grid
-is always defined as the intersections of all
-*x* ( :math:`x = x_{min}, x_{min} + x_{inc}, x_{min} + 2 \cdot x_{inc}, \ldots, x_{max}` )
-and *y* ( :math:`y = y_{min}, y_{min} + y_{inc}, y_{min} + 2 \cdot y_{inc}, \ldots, y_{max}` )
-lines. The two scenarios differ as to which area each data point
-represents. The default node registration in GMT is gridline node
-registration. Most programs can handle both types, and for some programs
-like :doc:`/grdimage` a pixel registered file
-makes more sense. Utility programs like
-:doc:`/grdsample` and
-:doc:`/grdproject` will allow you to
-convert from one format to the other;
-:doc:`/grdedit` can make changes to the grid
-header and convert a pixel- to a gridline-registered grid, or *vice
-versa*. The grid registration is determined by the common GMT **-r**
-option (see Section :ref:`option_nodereg`).
-
-Boundary Conditions for operations on grids
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-GMT has the option to specify boundary conditions in some programs
-that operate on grids (e.g.,
-:doc:`/grdsample`, :doc:`/grdgradient`,
-:doc:`/grdtrack`, :doc:`/nearneighbor`, and
-:doc:`/grdview`, to name a few. The desired
-condition can be set with the common GMT option **-n**; see Section
-:ref:`option_-n`. The boundary conditions come into play when
-interpolating or computing derivatives near the limits of the region
-covered by the grid. The *default* boundary conditions used are those
-which are "natural" for the boundary of a minimum curvature
-interpolating surface. If the user knows that the data are periodic in
-*x* (and/or *y*), or that the data cover a sphere with *x*,\ *y*
-representing *longitude*,\ *latitude*, then there are better choices for
-the boundary conditions. Periodic conditions on *x* (and/or *y*) are
-chosen by specifying *x* (and/or *y*) as the boundary condition flags;
-global spherical cases are specified using the *g* (geographical) flag.
-Behavior of these conditions is as follows:
-
-Periodic
- conditions on *x* indicate that the data are periodic in the
- distance (:math:`x_{max} - x_{min}`) and thus repeat values after
- every :math:`N = (x_{max} - x_{min})/x_{inc}`. Note that this
- implies that in a grid-registered file the values in the first and
- last columns are equal, since these are located at
- :math:`x = x_{min}` and :math:`x = x_{max}`, and there are
- *N + 1* columns in the file. This is not the case in a
- pixel-registered file, where there are only *N* and the first
- and last columns are located at :math:`x_{min} + x_{inc}/2` and
- :math:`x_{max} - x_{inc}/2`. If *y* is periodic all the same
- holds for *y*.
-
-Geographical
- conditions indicate the following:
-
- #. If :math:`(x_{max} - x_{min}) \geq 360` and also 180 modulo
- :math:`x_{inc} = 0` then a periodic condition is used on
- *x* with a period of 360; else a default condition is used
- on the *x* boundaries.
-
- #. If condition 1 is true and also :math:`y_{max} = 90` then a
- "north pole condition" is used at :math:`y_{max}`, else a default
- condition is used there.
-
- #. If condition 1 is true and also :math:`y_{min} = -90` then a
- "south pole condition" is used at :math:`y_{min}`, else a default
- condition is used there.
-
- "Pole conditions" use a 180° phase-shift of the data, requiring 180
- modulo :math:`x_{inc} = 0`.
-
-Default
- boundary conditions are
-
- .. math:: \nabla^2 f = \frac{\partial}{\partial n} \nabla^2 f = 0
-
- on the boundary, where :math:`f(x, y)` is represented by the values
- in the grid file, and :math:`\partial/\partial n` is the derivative
- in the direction normal to a boundary, and
-
- .. math:: \nabla^2 = \left(\frac{\partial^2}{\partial x^2} + \frac{\partial^2}{\partial y^2}\right)
-
- is the two-dimensional Laplacian operator.
-
-Native binary grid files
-~~~~~~~~~~~~~~~~~~~~~~~~
-
-The old-style native grid file format that was common in earlier version
-of GMT is still supported, although the use of netCDF files is
-strongly recommended. The file starts with a header of 892 bytes
-containing a number of attributes defining the content. The
-:doc:`/grdedit` utility program will allow you
-to edit parts of the header of an existing grid file. The attributes
-listed in Table :ref:`grdheader ` are contained within the header record
-in the order given (except the *z*-array which is not part of the
-header structure, but makes up the rest of the file). As this header was
-designed long before 64-bit architectures became available, the jump
-from the first three integers to the subsequent doubles in the structure
-does not occur on a 16-byte alignment. While GMT handles the reading
-of these structures correctly, enterprising programmers must take care
-to read this header correctly (see our code for details).
-
-.. _tbl-grdheader:
-
-+-----------------------------------+--------------------------------------------------------+
-| **Parameter** | **Description** |
-+===================================+========================================================+
-| **int** *n_columns* | Number of nodes in the *x*-dimension |
-+-----------------------------------+--------------------------------------------------------+
-| **int** *n_rows* | Number of nodes in the *y*-dimension |
-+-----------------------------------+--------------------------------------------------------+
-| **int** *registration* | 0 for grid line registration, 1 for pixel registration |
-+-----------------------------------+--------------------------------------------------------+
-| **double** *x_min* | Minimum *x*-value of region |
-+-----------------------------------+--------------------------------------------------------+
-| **double** *x_max* | Maximum *x*-value of region |
-+-----------------------------------+--------------------------------------------------------+
-| **double** *y_min* | Minimum *y*-value of region |
-+-----------------------------------+--------------------------------------------------------+
-| **double** *y_max* | Maximum *y*-value of region |
-+-----------------------------------+--------------------------------------------------------+
-| **double** *z_min* | Minimum *z*-value in data set |
-+-----------------------------------+--------------------------------------------------------+
-| **double** *z_max* | Maximum *z*-value in data set |
-+-----------------------------------+--------------------------------------------------------+
-| **double** *x_inc* | Node spacing in *x*-dimension |
-+-----------------------------------+--------------------------------------------------------+
-| **double** *y_inc* | Node spacing in *y*-dimension |
-+-----------------------------------+--------------------------------------------------------+
-| **double** *z_scale_factor* | Factor to multiply *z*-values after read |
-+-----------------------------------+--------------------------------------------------------+
-| **double** *z_add_offset* | Offset to add to scaled *z*-values |
-+-----------------------------------+--------------------------------------------------------+
-| **char** *x_units*\ [80] | Units of the *x*-dimension |
-+-----------------------------------+--------------------------------------------------------+
-| **char** *y_units*\ [80] | Units of the *y*-dimension |
-+-----------------------------------+--------------------------------------------------------+
-| **char** *z_units*\ [80] | Units of the *z*-dimension |
-+-----------------------------------+--------------------------------------------------------+
-| **char** *title*\ [80] | Descriptive title of the data set |
-+-----------------------------------+--------------------------------------------------------+
-| **char** *command*\ [320] | Command line that produced the grid file |
-+-----------------------------------+--------------------------------------------------------+
-| **char** *remark*\ [160] | Any additional comments |
-+-----------------------------------+--------------------------------------------------------+
-| **TYPE** *z*\ [n_columns\*n_rows] | 1-D array with *z*-values in scanline format |
-+-----------------------------------+--------------------------------------------------------+
-
-Sun raster files
-----------------
-
-The Sun raster file format consists of a header followed by a series of
-unsigned 1-byte integers that represents the bit-pattern. Bits are
-scanline oriented, and each row must contain an even number of bytes.
-The predefined 1-bit patterns in GMT have dimensions of 64 by 64, but
-other sizes will be accepted when using the **-Gp|P** option. The Sun
-header structure is outline in Table :ref:`sunheader `.
-
-.. _tbl-sunheader:
-
-+---------------------------+-------------------------------------+
-| **Parameter** | **Description** |
-+===========================+=====================================+
-| **int** *ras_magic* | Magic number |
-+---------------------------+-------------------------------------+
-| **int** *ras_width* | Width (pixels) of image |
-+---------------------------+-------------------------------------+
-| **int** *ras_height* | Height (pixels) of image |
-+---------------------------+-------------------------------------+
-| **int** *ras_depth* | Depth (1, 8, 24, 32 bits) of pixel |
-+---------------------------+-------------------------------------+
-| **int** *ras_length* | Length (bytes) of image |
-+---------------------------+-------------------------------------+
-| **int** *ras_type* | Type of file; see RT\_ below |
-+---------------------------+-------------------------------------+
-| **int** *ras_maptype* | Type of colormap; see RMT\_ below |
-+---------------------------+-------------------------------------+
-| **int** *ras_maplength* | Length (bytes) of following map |
-+---------------------------+-------------------------------------+
-
-After the header, the color map (if *ras_maptype* is not RMT_NONE)
-follows for *ras_maplength* bytes, followed by an image of
-*ras_length* bytes. Some related definitions are given in
-Table :ref:`sundef `.
-
-.. _tbl-sundef:
-
-+---------------------+-------------------------------------------+
-| **Macro name** | **Description** |
-+=====================+===========================================+
-| RAS_MAGIC | 0x59a66a95 |
-+---------------------+-------------------------------------------+
-| RT_STANDARD | 1 (Raw pixrect image in 68000 byte order) |
-+---------------------+-------------------------------------------+
-| RT_BYTE_ENCODED | 2 (Run-length compression of bytes) |
-+---------------------+-------------------------------------------+
-| RT_FORMAT_RGB | 3 ([X]RGB instead of [X]BGR) |
-+---------------------+-------------------------------------------+
-| RMT_NONE | 0 (ras_maplength is expected to be 0) |
-+---------------------+-------------------------------------------+
-| RMT_EQUAL_RGB | 1 (red[ras_maplength/3],green[],blue[]) |
-+---------------------+-------------------------------------------+
-
-Numerous public-domain programs exist, such as **xv** and
-**convert** (in the GraphicsMagick or ImageMagick package), that will translate between
-various raster file formats such as tiff, gif, jpeg, and Sun raster.
-Raster patterns may be created with GMT plotting tools by generating
-PostScript plots that can be rasterized by ghostscript and
-translated into the right raster format.
diff --git a/6.2.0rc1/_sources/cookbook/gmt-latex.rst.txt b/6.2.0rc1/_sources/cookbook/gmt-latex.rst.txt
deleted file mode 100644
index 926461c49ac..00000000000
--- a/6.2.0rc1/_sources/cookbook/gmt-latex.rst.txt
+++ /dev/null
@@ -1,80 +0,0 @@
-Using LaTeX Expressions in GMT
-==============================
-
-GMT supports the use of LaTeX equations embedded in text strings that are used
-with **-B** in titles, subtitles and axis labels, as well as for single lines
-of text placed via :doc:`/text`. These expressions must be enclosed by the
-marker @[ (e.g., "Plotting @[\\Delta \\sigma_{xx}^2@["), or alternatively enclose
-the expressions with (e.g., "Plotting ").
-If these markers are found, the entire line will be converted to an
-Encapsulated PostScript file (EPS) via system commands to latex and dvips,
-which must be available on your system. The EPS file is then placed in the
-location instead of the regular text.
-
-
-.. figure:: /_images/GMT_latex.*
- :width: 500 px
- :align: center
-
- Example of using a LaTeX equation in the x-axis label via -Bxaf+l"@[\\nabla^4 \\psi - \\Delta \\sigma_{xx}^2@[ (MPa)".
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_latex.txt
-
-.. _gmt-latex-fonts:
-
-GMT fonts and LaTeX
--------------------
-
-LaTeX is a large and complicated type-setting system with many optional packages, and we simply
-must assume that your LaTeX installation has all the needed features; see our
-`wiki `_ for typical installs
-via package managers. Your installation must have support for the packages *fontenc*
-and *inputenc*, as well as the required fonts *helvet, mathptmx, courier, symbol,
-avantgar, bookman, newcent, mathpazo, zapfchan* and *zapfding*. If the conversion
-from LaTeX to EPS fails, please follow instructions to run the conversion script
-manually in the terminal so you may determine what packages or fonts you may be
-missing. The list of fonts above were selected to match the standard fonts used
-by GMT. Hence, if you change the default font for a title (i.e., :term:`FONT_TITLE`),
-then we also set that font as the default font in the LaTeX script we generate under
-the hood. This is done so the regular text in a title will follow the current GMT
-default settings.
-
-Technical Details
------------------
-
-To help anyone debug their LaTeX installation, consider the case where you make a basemap
-that contains the title request -B+t"Use @[\\Delta g = 2\\pi\\rho Gh@[". This request ends
-up creating a temporary directory containing a small LaTeX file called *gmt_eq.tex*::
-
- \documentclass{article}
- \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc}
- \usepackage{helvet}
- \begin{document}
- \thispagestyle{empty}
- \fontfamily{phv}\selectfont
- Use $\Delta g = 2\pi\rho Gh$
- \end{document}
-
-Because :term:`FONT_TITLE` was set to Helvetica, the LaTeX file changes the default
-font to Helvetica as well (package *helvet*, code *phv*). This file is then converted to
-a DVI file by the command::
-
- latex -interaction=nonstopmode gmt_eq.tex > /dev/null
-
-followed by the conversion to EPS via::
-
- dvips -q -E gmt_eq.dvi -o equation.eps
-
-These two commands are executed via the script *gmt_eq.sh* (or *gmt_eq.bat* under Windows).
-If the system command returns a successful status then we read the EPS file *equation.eps*
-into memory and place it instead of the title. However, should the script fail, for
-whatever reason, we print an error message and direct you to do forensic work in the
-temporary directory. You should run the ``latex`` command (but remove the redirection
-to > /dev/null) so you can see the error messages. Usually, the messages will indicate what
-the problem is, say, which font is missing, or similar. If you cannot solve the riddle
-then please open an issue on `GitHub `_
-and share the LaTeX script and the error messages.
diff --git a/6.2.0rc1/_sources/cookbook/include-figures.rst.txt b/6.2.0rc1/_sources/cookbook/include-figures.rst.txt
deleted file mode 100644
index 0c1256a7d7c..00000000000
--- a/6.2.0rc1/_sources/cookbook/include-figures.rst.txt
+++ /dev/null
@@ -1,363 +0,0 @@
-.. _include-gmt-graphics:
-
-Including GMT Graphics into your Documents
-==========================================
-
-
-Now that you made some nice graphics with GMT, it is time to add them
-to a document, an article, a report, your dissertation, a poster, a web
-page, or a presentation. Of course, you could try the old-fashioned
-scissors and glue stick. More likely, you want to incorporate your
-graphics electronically into the document. Depending on the application,
-it is best to set your GMT script to produce the most suitable format,
-such as Encapsulated PostScript (EPS), Portable Document Format (PDF), or some raster
-format (e.g., JPEG, PNG, or TIFF) in order to incorporate them into the
-document.
-
-- When creating a document intended for printing (article,
- dissertation, or poster) it is best to preserve the scalable vector
- characteristics of the default PDF file. Modern
- programs will often allow the inclusion of PDF files. That way, the
- sharpness of lines and fonts will be preserved and can be scaled up
- or down as required.
-
-- When the aim is to display the graphics on a computer screen or
- present it using a projector, it is wise to select
- a raster format. Although applications like
- PowerPoint can convert PDF to a ratser for you, you can best take the
- conversion into your own hands for the best results.
-
-Using GMT modern mode you simply select the format most suitable for your
-purpuse when running :doc:`/begin` or :doc:`/figure`.
-
-The remainder of this Chapter will show how to include GMT classicly produced
-PostScript graphics into documents and how to achieve the best quality results.
-
-Making GMT Encapsulated PostScript Files
-------------------------------------------
-
-GMT classic mode produces freeform PostScript files. Note that a freeform
-PostScript file may contain special operators (such as
-``Setpagedevice``) that is specific to printers (e.g., selection of
-paper tray). Some previewers may not
-understand these valid instructions and may fail to image the file.
-Also, embedding freeform PostScript with such instructions in it into
-a larger document can cause printing to fail. While you could choose
-another viewer (we recommend **ghostview**) to view single plots
-prepared by GMT, it is generally wiser to convert PostScript to EPS
-output when you are creating a plot intended for inclusion into a larger
-document. Some programs (and some publishers as well) do not allow the
-use of instructions like ``Setpagedevice`` as part of embedded graphics.
-
-An EPS file that is to be placed into another document needs to have
-correct bounding box parameters. These are found in the
-PostScript Document Comment %%BoundingBox. Applications that generate
-EPS files should set these parameters correctly. Because GMT\ makes
-the PostScript files on the fly, often with several overlays, it is
-not possible to do so accurately. Therefore, if you need and EPS version
-with a "tight" BoundingBox you need to post-process your
-PostScript file. There are several ways in which this can be
-accomplished.
-
-- Programs such as Adobe Illustrator, Aldus Freehand, and
- Corel Draw will allow you to edit the BoundingBox graphically.
-
-- A command-line alternative is to use freely-available program
- **epstool** from the makers of Aladdin ghostscript. Running
-
- ::
-
- epstool -c -b myplot.ps
-
- should give a tight BoundingBox; **epstool** assumes the plot is
- page size and not a huge poster.
-
-- Another option is to use **ps2epsi** which also comes with the
- ghostscript package. Running
-
- ::
-
- ps2epsi myplot.ps myplot.eps
-
- should also do the trick. The downside is that this program adds an
- "image" of the plot in the preamble of the EPS file, thus increasing
- the file size significantly. This image is a rough rendering of your
- PostScript graphics that some programs will show on screen while
- you are editing your document. This image is basically a placeholder
- for the PostScript graphics that will actually be printed.
-
-- However, the preferred option is to use the GMT utility
- :doc:`/psconvert`. Its **-A** option will
- figure out the tightest BoundingBox, again using ghostscript in
- the background. For example, running
-
- ::
-
- gmt psconvert -A -Te myplot.ps
-
- will convert the PostScript file ``myplot.ps`` into an encapsulated
- PostScript file ``myplot.eps`` which is exactly cropped to the tightest possible
- BoundingBox.
-
-If you do not want to modify your illustration but just include it in a
-text document: many word processors (such as Microsoft Word or Apple Pages) will let you include a
-PostScript file that you may place but not edit. Newer versions of
-those programs also allow you to include PDF versions of your graphics.
-Except for Pages, you will not be able to view the EPS figure
-on-screen, but it will print correctly.
-
-Converting GMT PostScript to PDF or raster images
----------------------------------------------------
-
-Since Adobe's PDF (Portable Document Format) seems to have become the
-*de facto* standard for vector graphics, you are often well off
-converting GMT produced PostScript files to PDF. Being both vector
-formats (i.e., they basically describe all objects, text and graphics as
-lines and curves), such conversion sounds awfully straightforward and
-not worth a full section in this document. But experience has shown
-differently, since most converters cut corners by using the same tool
-(Aladdin's ghostscript) with basic default options that are not
-devised to produce the best quality PDF files.
-
-For some applications it is practical or even essential that you convert
-your PostScript file into a raster format, such as GIF (Graphics
-Interchange Format), TIFF (Tagged Image File Format), PNG (Portable
-Network Graphics), or JPEG (Joint Photographic Experts Group). A web
-page is better served with a raster image that will immediately show on
-a web browser, than with a PostScript file that needs to be downloaded
-to view, despite the better printing quality of the PostScript image.
-A less obvious reason to convert your image to a raster format is to
-by-pass PowerPoint's rendering engine in case you want to embed
-the image into a presentation.
-
-The are a number of programs that will convert PostScript files to PDF
-or raster formats, like Aladdin's **pstopdf**, pbmplus' **pstoimg**,
-or GraphicsMagick's and ImageMagick's **convert**, most of which run ghostscript
-behind the scenes. The same is true for viewers like **ghostview** and
-Apple's **Preview**. So a lot of the times when people report that
-their PostScript plot does not look right but prints fine, it is the
-way ghostscript is used with its most basic settings that is to blame.
-
-When converting or viewing PostScript goes awry
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Here are some notorious pitfalls with ghostscript (and other
-rendering programs for that matter).
-
-Rendering.
- When you are converting to a raster format, make sure you use a high
- enough resolution so that the pixels do not show when it is enlarged
- onto a screen or using a projector. The right choice of resolution
- depends on the application, but do not feel limited to the default
- 72 dpi (dots-per-inch) that is offered by most converters.
-
-Image compression.
- There are *lossy* and *non-lossy* compressions. A compression
- algorithm is called "lossy" when information is lost in the
- conversion: there is no way back to get the full original. The
- effect can be seen when there are sharp color transitions in your
- image: the edges will get blurry in order to allow a more efficient
- compression. JPEG uses a lossy compression, PNG is non-lossy, and
- TIFF generally does not use compression at all. We therefore
- recommend you convert to PNG if you need to rasterize your plot, and
- leave JPEG to photographs.
-
-Embedded image compression.
- When your GMT plot includes objects produced by
- :doc:`/grdimage`, :doc:`/image` or
- :doc:`/legend`, they are seen as
- "images". The default options of ghostscript will use a
- *lossy* compression (similar to JPEG) on those images when
- converting them to PDF objects. This can be avoided, however, by
- inhibiting the compression altogether, or using the non-lossy
- *flate* compression, similar to the one used in the old
- **compress** program. This compression is fully reversible, so
- that your image does not suffer any loss.
-
-Auto-rotation.
- The ghostscript engine has the annoying habit to automatically
- rotate an image produced with portrait orientation (using the **-P**
- option) so that the height is always larger than the width. So if
- you have an image that was printed in portrait mode but happens to
- have a width larger than height (for example a global map), it would
- suddenly get rotated. Again, this function needs to be switched off.
- Apple's Preview uses the ghostscript engine and suffers
- from the same annoying habit. Oddly enough, ghostscript does
- not force landscape plots to be "horizontal".
-
-Anti-aliasing.
- This is not something to worry about when converting to PDF, but
- certainly when producing raster images (discussed below).
- *Anti-aliasing* in this context means that the rendering tries to
- avoid *aliasing*, for example, sampling only the blacks in a
- black-and-white hachure. It does so by first oversampling the image
- and then using "gray-shades" when a target pixel is only partially
- white or black.
-
- Clearly, this can lead to some unwanted results. First, all edges
- and lines get blurry and second, the assumption of a white
- background causes the gray shades to stand out when transferring the
- image to background with a different color (like the popular
- sleep-inducing blue in PowerPoint presentations). A more
- surprising effect of anti-aliasing is that the seams between tiles
- that make up the land mask when using
- :doc:`/coast` will become visible. The
- anti-aliasing somehow decides to blur the edges of all polygons,
- even when they are seamlessly connected to other polygons.
-
- It is therefore wise to overrule the default anti-aliasing option
- and over-sample the image yourself by choosing a higher resolution.
-
-Including fonts.
- When you are producing print-ready copy to publishers, they will
- often (and justifiably) ask that you include all fonts in your PDF
- document. Again, ghostscript (and all converters relying on
- that engine) will not do so by default.
-
-Using :doc:`/psconvert`
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The remedy to all the problems mentioned in the previous section is
-readily available to you in the form of the GMT utility
-:doc:`/psconvert`. It is designed to provide
-the best quality PDF and raster files using ghostscript as a
-rendering engine. The program :doc:`/psconvert` avoids anti-aliasing and
-lossy compression techniques that are default to ghostscript and
-includes the fonts into the resulting PDF file to ensure portability. By
-default the fonts are rendered at 720 dots-per-inch in a PDF file and
-images are sampled to 300 dpi, but that can be changed with the **-E**
-option. Simply run
-
- ::
-
- gmt psconvert -A -P -Tf *.ps
-
-to convert all PostScript files to PDF while cropping it to the
-smallest possible BoundingBox. Or use the **-Tg** option to convert your
-files to PNG.
-
-The **-P** option of :doc:`/psconvert` may
-also come in handy. When you have *not* supplied the **-P** option in
-your first GMT plot command, your plot will be in Landscape mode. That
-means that the plot will be rotated 90° (anti-clockwise) to fit
-on a Portrait mode page when coming out of the printer. The **-P**
-option of :doc:`/psconvert` will undo that
-rotation, so that you do not have to do so within your document. This
-will only affect Landscape plots; Portrait plots will not be rotated.
-We should note that the **-A** option in :doc:`/psconvert` has many modifiers
-that can be used to control background color, framing, padding, and overall
-scaling of the result.
-
-Examples
---------
-
-GMT graphics in LaTeX
-~~~~~~~~~~~~~~~~~~~~~
-
-To add the graphics into a LaTeX document we use the
-``\includegraphics`` command supplied by the package. In the preamble of
-your LaTeX document you will need to include the line
-
- ::
-
- \usepackage{graphicx}
-
-The inclusion of the graphics will probably be inside a floating figure
-environment; something like this
-
- ::
-
- \begin{figure}
- \includegraphics{myplot}
- \caption{This is my first plot in \LaTeX.}
- \label{fig:myplot}
- \end{figure}
-
-Note that the ``\includegraphics`` command does not require you to add
-the suffix ``.pdf`` to the file name. If you run **pdflatex**, it will
-look automatically for ``myplot.pdf``. If you run **latex**, it will use ``myplot.eps`` instead.
-
-You can scale your plot using the options ``width=``, ``height=``, or
-``scale=``. In addition, if your original graphics was produced in
-Landscape mode (i.e., you did *not* use GMT's **-P** option: not
-while plotting, nor in :doc:`/psconvert`),
-you will need to rotate the plot as well. For example,
-
- ::
-
- \includegraphics[angle=-90,width=0.8\textwidth]{myplot}
-
-will rotate the image 90° clockwise and scale it such that its width
-(after rotation) will be 80% of the width of the text column.
-
-GMT graphics in **PowerPoint**
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-.. _Rendering:
-
-.. figure:: /_images/rendering.png
- :height: 540 px
- :width: 720 px
- :align: center
- :scale: 50 %
-
- Examples of rendered images in a PowerPoint presentation
-
-
-.. _PowerPoint_dialogue:
-
-.. figure:: /_images/formatpicture.png
- :height: 516 px
- :width: 545 px
- :align: center
- :scale: 50 %
-
- PowerPoint's Format Picture dialogue to set scale and rotation.
-
-In Figure :ref:`Rendered images ` we have attempted to include
-Example :ref:`example_20` into a PowerPoint presentation.
-First the PostScript file was converted to PDF (using
-:doc:`/psconvert`), then loaded into
-PowerPoint and the white background color was made transparent
-using the formatting toolbar (shown on the left side of
-Figure :ref:`Rendered images `). Clearly, when we let PowerPoint
-do the rendering, we do not get the best result:
-
-* The anti-aliasing causes the tiles that make up the land to stand
- out. This is because the anti-aliasing algorithm blurs all edges,
- even when the tiles join seamlessly.
-
-* The background color was assumed to be white, hence the text is
- "smoothed" using gray shades. Instead, shades of blue which would be
- appropriate for the background we are using.
-
-On the central column of Figure :ref:`Rendered images ` we have
-included PNG
-versions of a portion of the same example. This shows the workings of
-anti-aliasing and different resolutions. All samples were obtained with
-**convert**. The one on the top uses all default settings, resulting
-in an anti-aliased image at 72 dpi resolution (very much like the PDF
-included directly into PowerPoint).
-
-Just switching anti-aliasing off (middle) is clearly not an option
-either. It is true that we got rid of the gray blurring and the seams
-between the tiles, but without anti-aliasing the image becomes very
-blocky. The solution is to render the image at a higher resolution
-(e.g., 300 dpi) without anti-aliasing and then shrink the image to the
-appropriate size (bottom of the central column in
-Figure :ref:`Rendered images `). The scaling, rotation as well as
-the selection
-of the transparent color can be accomplished through the "Formatting"
-tool bar and the "Format Picture" dialogue box of PowerPoint
-(Figure :ref:`PowerPoint dialogue box `), which can be
-found by double clicking the
-included image (or selecting and right-clicking or control-clicking on a
-one-button mouse).
-
-Concluding remarks
-------------------
-
-These examples do not constitute endorsements of the products mentioned
-above; they only represent our limited experience with adding
-PostScript to various types of documents. For other solutions and
-further help, please post messages to the GMT user forum.
diff --git a/6.2.0rc1/_sources/cookbook/introduction.rst.txt b/6.2.0rc1/_sources/cookbook/introduction.rst.txt
deleted file mode 100644
index afe8e5896c4..00000000000
--- a/6.2.0rc1/_sources/cookbook/introduction.rst.txt
+++ /dev/null
@@ -1,261 +0,0 @@
-Introduction
-============
-
-Historical overview
--------------------
-
-Most scientists are familiar with the sequence: *raw data* →
-*processing* → *final illustration*.
-In order to finalize papers for submission to scientific journals,
-prepare proposals, and create illustrations for various
-presentations, many scientists spend large amounts of time and money to
-create high-quality figures. This process can be tedious and is often
-done manually, since available commercial or in-house software usually
-can do only part of the job. To expedite this process we introduce the
-Generic Mapping Tools (GMT for short), which is a free [2]_ software
-package that can be used to manipulate columns of tabular data,
-time-series, and gridded data sets, and display these data in a variety
-of forms ranging from simple *x*–*y* plots to maps and color-coded,
-perspective, and shaded-relief illustrations. GMT uses the
-PostScript page description language [*Adobe Systems Inc.*, 1990].
-With PostScript, multiple plot files can easily be superimposed to
-create arbitrarily complex images in gray tones or full color.
-Line drawings, bitmapped images, and text can be easily combined in one
-illustration. PostScript plot files are device-independent: The same
-file can be printed at 300 dots per inch (dpi) on a cheap
-printer or converted to a high-resolution PNG image for online usage.
-GMT software is written as a set of command-line tools [3]_ and is
-totally self-contained and fully documented. The system is offered free
-of charge and is distributed over the Internet
-[*Wessel and Smith, 1991; 1995; 1998*; *Wessel et al., 2013*; *Wessel et al., 2019*].
-The PostScript plots are easily converted to other formats, such as PDF
-or any raster image [4]_.
-
-The original version 1.0 of GMT was released in the summer of 1988
-when the authors were graduate students at Lamont-Doherty Earth
-Observatory of Columbia University. During our tenure as graduate
-students, LDEO changed its computing environment to a distributed
-network of UNIX workstations, and we wrote GMT to run in this
-environment. It became a success at LDEO, and soon spread to numerous
-other institutions in the US, Canada, Europe, and Japan. The current
-version benefits from the many suggestions contributed by users of the
-earlier versions, and now includes more than 100 tools, more than 30
-projections, and many other new, more flexible features. GMT provides
-scientists with a variety of tools for data manipulation and display,
-including routines to sample, filter, compute spectral estimates, and
-determine trends in time series, grid or triangulate arbitrarily spaced
-data, perform mathematical operations (including filtering) on 2-D data
-sets both in the space and frequency domain, sample surfaces along
-arbitrary tracks or onto a new grid, calculate volumes, and find trend
-surfaces. The plotting programs will let the user make linear,
-log\ :math:`_{10}`, and :math:`x^a - y^b` diagrams, polar
-and rectangular histograms, maps with filled continents and coastlines
-choosing from many common map projections, contour plots, mesh plots,
-monochrome or color images, and artificially illuminated shaded-relief
-and 3-D perspective illustrations.
-
-GMT is written in the highly portable ANSI C programming language
-[*Kernighan and Ritchie*, 1988], is fully POSIX compliant [*Lewine*,
-1991], and may be used with any hardware
-running some flavor of UNIX. In
-writing GMT, we have followed the modular design philosophy of UNIX:
-The *raw data* → *processing* → *final illustration* flow is broken
-down to a series of elementary steps; each
-step is accomplished by a separate GMT or UNIX tool. This modular
-approach brings several benefits: (1) only a few programs are needed,
-(2) each program is small and easy to update and maintain, (3) each step
-is independent of the previous step and the data type and can therefore
-be used in a variety of applications, and (4) the programs can be
-chained together in shell scripts or with pipes, thereby creating a
-process tailored to do a user-specific task. The decoupling of the data
-retrieval step from the subsequent massage and plotting is particularly
-important, since each institution will typically have its own data base
-formats. To use GMT with custom data bases, one has only to write a
-data extraction tool which will put out data in a form readable by
-GMT (discussed below). After writing the extractor, all other
-GMT modules will work as they are.
-
-GMT is thoroughly documented and comes with a technical reference and
-cookbook which explains the purpose of the package and its many
-features, and provides numerous examples to help new users quickly
-become familiar with the operation and philosophy of the system. The
-cookbook contains the shell scripts that were used for each example. The online
-GMT Documentation is also home to the extensive technical reference for all programs.
-The programs also have individual manual pages which can be installed as part of the
-on-line documentation under the UNIX **man** utility.
-In addition, the programs offer friendly help messages which make
-them essentially self-teaching – if a user enters invalid or ambiguous
-command arguments, the program will print a warning to the screen with a
-synopsis of the valid arguments. All the documentation is available for
-web browsing and may be installed at the user's site.
-
-The processing and display routines within GMT are completely general
-and will handle any (*x,y*) or (*x,y,z*) data as input. For many
-purposes the (*x,y*) coordinates will be (longitude, latitude) but in
-most cases they could equally well be any other variables (e.g.,
-wavelength, power spectral density). Since the GMT plot tools will
-map these (*x,y*) coordinates to positions on a plot or map using a
-variety of transformations (linear, log-log, and several map
-projections), they can be used with any data that are given by two or
-three coordinates. In order to simplify and standardize input and
-output, by default GMT uses two file formats only. Arbitrary sequences of (*x,y*)
-or (*x,y,z*) data are read from multi-column ASCII tables, i.e., each
-file consists of several records, in which each coordinate is confined
-to a separate column [5]_. This format is straightforward and allows the
-user to perform almost any simple (or complicated) reformatting or
-processing task using GMT processing tools (and in a pinch standard UNIX utilities such as **cut**,
-**paste**, **grep**, **sed** and **awk**). Two-dimensional data
-that have been sampled on an equidistant grid are read and written by
-GMT in a binary grid file using the functions provided with the netCDF
-library (a free, public-domain software library available separately
-from UCAR, the University Corporation of Atmospheric Research [*Treinish
-and Gough*, 1987]). This XDR (External Data Representation) based format
-is architecture independent, which allows the user to transfer the
-binary data files from one computer system to another [6]_.
-GMT contains programs that will read ASCII (*x,y,z*) files and produce
-grid files. One such program, :doc:`/surface`,
-includes new modifications to the gridding algorithm developed by *Smith
-and Wessel* [1990] using continuous splines in tension. Optionally, GMT
-can also read various binary and netCDF tables, as well as a variety of
-grid formats, especially if built with GDAL support.
-
-Most of the programs will produce some form of output, which falls into
-four categories. Several of the programs may produce more than one of
-these types of output:
-
-* 1-D ASCII Tables — For example, a (*x,y*) series may be
- filtered and the filtered values output. ASCII output is written to
- the standard output stream.
-
-* 2-D binary (netCDF or user-defined) grid files – Programs that grid
- ASCII (*x,y,z*) data or operate on existing grid files produce
- this type of output.
-
-* PostScript – The plotting programs all use the PostScript page
- description language to define plots. These commands are stored as
- ASCII text and can be edited should you want to customize the plot
- beyond the options available in the programs themselves.
-
-* Reports – Several GMT programs read input files and report
- statistics and other information. Nearly all programs have an
- optional "verbose" operation, which reports on the progress of
- computation. All programs feature usage messages, which prompt the
- user if incorrect commands have been given. Such text is written to
- the standard error stream and can therefore be separated from ASCII
- table output.
-
-GMT is available over the Internet at no charge. To obtain a copy,
-go to the `GMT home page `_ and follow instructions.
-We also maintain user forums and a bug and feature tracking system on
-the same page.
-
-GMT has served a multitude of scientists very well, and their
-responses have prompted us to develop these programs even further. It is
-our hope that the new version will satisfy these users and attract new
-users as well. We present this system to the community in order to
-promote sharing of research software among investigators in the US and abroad.
-
-References
-----------
-
-* Adobe Systems Inc., *PostScript Language Reference Manual*, 2nd
- edition, 764, Addison-Wesley, Reading, Massachusetts, 1990.
-
-* Kernighan, B. W., and D. M. Ritchie, *The C programming language*,
- 2nd edition, 272, Prentice-Hall, Englewood Cliffs, New Jersey, 1988.
-
-* Lewine, D., POSIX programmer's guide, 1st edition, 607, O'Reilly &
- Associates, Sebastopol, California, 1991.
-
-* Treinish, L. A., and M. L. Gough, A software package for the
- data-independent management of multidimensional data, *EOS Trans.
- AGU*, 68(28), 633–635, 1987. `doi:10.1029/EO068i028p00633 `_.
-
-
-Modern and Classic Mode
------------------------
-
-For almost three decades, GMT scripts have looked remarkably similar. The options flags
-and the general workflow of adding overlays to existing PostScript files have
-remained unchanged, and thousands of GMT scripts written in c-shell, bash shell, DOS batch,
-and other environments exist and their maintainers expect them to run in the future.
-This requirement of backwards compatibility has to some extent stifled our drive to
-make GMT easier and safer to use. Having run dozens of classes introducing GMT to students
-and staff, and helped hundreds of practitioners via email or forums over the years, we
-have a pretty clear idea of what is difficult.
-
-Given its almost limitless capabilities, GMT has always had a fairly steep learning curve.
-The hardest aspects that have percolated to the top of the "rookie error" list include
-
-#. The GMT "cake-baking": Handling the use of **-O**, **-K**, and **-P** to manage PostScript overlays.
-#. The PostScript redirection: Creating a new file versus appending to an existing file.
-#. Reusing the current region (**-R**) and projection (**-J**) in multi-step scripts by repeating **-R -J** everywhere.
-#. Converting the PostScript plot to more desirable graphic formats, such as PDF.
-
-While pondering these facts, we have also started to gain experience with the MATLAB and Octave
-toolboxes and the preliminary design of the Python package. We were noticing that
-the resulting scripts looked too much like the GMT shell command-line versions, setting
-users up for a continuation of the same rookie errors.
-The solution to this conundrum was to introduce different *run* modes:
-Starting with GMT 6 we introduce a new operating *mode* for GMT named *modern*. In contrast
-to the *classic* (and only) mode available in earlier versions 1-5, the *modern* mode
-was designed to eliminate some of the hardest aspects of learning and using GMT.
-Depending on how GMT is started it will either be running in *classic* or *modern* mode.
-Classic mode is the GMT scripting in use for decades and it will remain the default mode for
-command-line work. The *modern* mode invokes simpler rules that eliminate the possibility
-of the listed rookie errors and simplifies scripting considerably across all interfaces.
-It also imposes a structure and hence not every single classic script can be represented in
-modern mode. Consequently, modern mode is less flexible but much easier to use, and we expect
-it will serve the needs of almost all GMT users. We strongly encourage new users to use the
-modern mode.
-
-To defeat the rookie errors listed above, here are the features of *modern* mode:
-
-#. The **-O**, **-K**, and **P** options have been removed.
-#. Modules no longer write PostScript to standard output that the users must manage.
- Instead, they write to hidden temporary files. Checking the status of these files
- is what allows GMT to know if PostScript should be appended or if we are starting
- a new plot.
-#. The *modern* mode runs the entire workflow in a unique temporary directory, hence
- numerous scripts can execute simultaneously without interfering, and we can use
- the gmt.history information to automatically supply missing regions (**-R**) and
- projection (**-J**) arguments.
-#. When the workflow ends, the hidden PostScript files are automatically completed
- and converted to the chosen graphics format [Default is PDF for command-line work].
-#. Page size is now automatically set regardless of size and properly cropped.
-
-Not only does the new rules remove the greatest obstacles to GMT learning, it greatly
-simplifies scripting by eliminating needless repetition of options and output filenames. The
-modern mode is activated and deactivated by the new commands **gmt begin** and **gmt end**,
-respectively. Since these are not part of the classic repertoire one cannot
-accidentally execute a classic mode script in modern mode (or vice versa).
-We will discuss these two commands later. Finally, there are some new features in GMT that
-are only accessible under modern mode, such as subplots, new ways to specify the map domain,
-map insets, perform automatic legend creation and placement, create simpler animations, and to
-get multiple output formats from the same plot.
-
-The modern mode relies on know what session is being run. If your script is explicitly or
-inadvertently creating sub-shells under UNIX then the script could fail. If this is the
-case then you will need to add
-export GMT_SESSION_NAME=
-before gmt begin starts the script. This is most easily done by using the **gmt --new-script**
-option to print a shell template to the standard output.
-
-Footnotes
----------
-
-.. [2]
- See GNU Lesser General Public License (``_)
- for terms on redistribution and modifications.
-
-.. [3]
- The tools can be installed on a variety of platforms - UNIX and non-UNIX alike (see Chapter :doc:`non-unix-platforms`).
-
-.. [4]
- One public-domain RIP is ghostscript, available from ``_.
-
-.. [5]
- Programs now also allow for fast, binary multicolumn file i/o.
-
-.. [6]
- While the netCDF format is the default, many other formats are also possible.
diff --git a/6.2.0rc1/_sources/cookbook/map-projections.rst.txt b/6.2.0rc1/_sources/cookbook/map-projections.rst.txt
deleted file mode 100644
index 5dd2a8fdfa9..00000000000
--- a/6.2.0rc1/_sources/cookbook/map-projections.rst.txt
+++ /dev/null
@@ -1,1406 +0,0 @@
-GMT Map Projections
-===================
-
-GMT implements more than 30 different projections. They all project the input coordinates longitude and latitude to
-positions on a map. In general, :math:`x' = f(x,y,z)` and :math:`y' = g(x,y,z)`, where :math:`z` is implicitly given as
-the radial vector length to the :math:`(x,y)` point on the chosen ellipsoid. The functions :math:`f` and :math:`g` can be
-quite nasty and we will refrain from presenting details in this document. The interested reader is referred to *Snyder*
-[1987]\ [20]_. We will mostly be using the :doc:`/coast` command to demonstrate each of the projections. GMT map
-projections are grouped into four categories depending on the nature of the projection. The groups are
-
-#. :ref:`cookbook/map-projections:Conic projections`
-
-#. :ref:`cookbook/map-projections:Azimuthal projections`
-
-#. :ref:`cookbook/map-projections:Cylindrical projections`
-
-#. :ref:`cookbook/map-projections:Miscellaneous projections`
-
-Because :math:`x` and :math:`y` are coupled we can only specify one plot-dimensional scale, typically a map *scale*
-(for lower-case map projection code) or a map *width* (for upper-case map projection code). The *measurement unit*
-is cm, inch, or point, depending on the :term:`PROJ_LENGTH_UNIT` setting in **gmt.conf**, but this can be overridden on
-the command line by appending **c**, **i**, or **p** to the *scale* or *width* values. In some cases it would be more
-practical to specify map *height* instead of *width*, while in other situations it would be nice to set either the
-*shortest* or *longest* map dimension. Users may select these alternatives by appending a character code to their map
-dimension [detault is **+dw**]:
-
- - Append **+dh** to the given :ref:`dimension ` to specify map *height*.
- - Append **+du** to the given :ref:`dimension ` to select the minimum map
- dimension.
- - Append **+dl** to the given :ref:`dimension ` to select the maximum map
- dimension.
-
-The ellipsoid used in map projections is user-definable. 73 commonly used ellipsoids and spheroids are currently
-supported, and users may also specify their own custom ellipsoid parameters [default is WGS-84]. Several GMT parameters
-can affect the projection: :term:`PROJ_ELLIPSOID`, :term:`GMT_INTERPOLANT`, :term:`PROJ_SCALE_FACTOR`, and
-:term:`PROJ_LENGTH_UNIT`; see the :doc:`../gmt.conf` man page for details.
-
-In GMT version 4.3.0 we noticed we ran out of the alphabet for 1-letter (and sometimes 2-letter) projection codes. To
-allow more flexibility, and to make it easier to remember the codes, we implemented the option to use the abbreviations
-used by the `PROJ `_ mapping package. Since some of the GMT projections are not in **PROJ**, we
-invented some of our own as well. For a full list of both the old 1- and 2-letter codes, as well as the
-**PROJ**-equivalents see the quick reference table below. For example, **-JM**\ 15c and **-JMerc**\ /15c have the same
-meaning.
-
-.. include:: ../proj-codes.rst_
-
-Conic projections
------------------
-
-.. _-Jb:
-
-Albers conic equal-area projection (**-Jb** **-JB**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jb**\|\ **B**\ *lon0/lat0/lat1/lat2/*\ *scale*\|\ *width*
-
-**Parameters**
-
-- The longitude (*lon0*) and latitude (*lat0*) of the projection center.
-- The two standard parallels (*lat1* and *lat2*).
-- The *scale* in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jb**) or map *width* in
- :ref:`plot-units ` (with **-JB**).
-
-Note that you must include the "1:" if you choose to specify the *scale* that way. For example, you can say 0.5c which
-means 0.5 cm/degree or 1:200000 which means 1 unit on the map equals 200,000 units along the standard parallels. The
-projection center defines the origin of the rectangular map coordinates.
-
-**Description**
-
-This projection, developed by Heinrich C. Albers in 1805, is predominantly used to map regions of large east-west
-extent, in particular the United States. It is a conic, equal-area projection, in which parallels are unequally
-spaced arcs of concentric circles, more closely spaced at the north and south edges of the map. Meridians, on the other
-hand, are equally spaced radii about a common center, and cut the parallels at right angles. Distortion in scale and
-shape vanishes along the two standard parallels. Between them, the scale along parallels is too small; beyond them it is
-too large. The opposite is true for the scale along meridians.
-
-**Example**
-
-As an example we will make a map of the region near Taiwan. We choose the center of the projection to be at 125°E/20°N
-and 25°N and 45°N as our two standard parallels. We desire a map that is 12 cm wide. The complete command needed to
-generate the map below is therefore given by:
-
-.. literalinclude:: /_verbatim/GMT_albers.txt
-
-.. figure:: /_images/GMT_albers.*
- :width: 500 px
- :align: center
-
- Albers equal-area conic map projection.
-
-.. _-Jd:
-
-Equidistant conic projection (**-Jd** **-JD**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jd**\|\ **D**\ *lon0/lat0/lat1/lat2/*\ *scale*\|\ *width*
-
-**Parameters**
-
-- The longitude (*lon0*) and latitude (*lat0*) of the projection center.
-- The two standard parallels (*lat1* and *lat2*).
-- The *scale* in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jd**) or map *width* in
- :ref:`plot-units ` (with **-JD**).
-
-**Description**
-
-The equidistant conic projection was described by the Greek philosopher Claudius Ptolemy about A.D. 150. It is neither
-conformal or equal-area, but serves as a compromise between them. The scale is true along all meridians and the standard
-parallels.
-
-**Example**
-
-The equidistant conic projection is often used for atlases with maps of small countries. As an example, we generate a
-map of Cuba:
-
-.. literalinclude:: /_verbatim/GMT_equidistant_conic.txt
-
-.. figure:: /_images/GMT_equidistant_conic.*
- :width: 500 px
- :align: center
-
- Equidistant conic map projection.
-
-.. _-Jl:
-
-Lambert conic conformal projection (**-Jl** **-JL**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jl**\|\ **L**\ *lon0/lat0/lat1/lat2/*\ *scale*\|\ *width*
-
-**Parameters**
-
-- The longitude (*lon0*) and latitude (*lat0*) of the projection center.
-- The two standard parallels (*lat1* and *lat2*).
-- The *scale* in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jl**) or map *width* in
- :ref:`plot-units ` (with **-JL**).
-
-**Description**
-
-This conic projection was designed by the Alsatian mathematician Johann Heinrich Lambert (1772) and has been used
-extensively for mapping of regions with predominantly east-west orientation, just like the Albers projection. Unlike the
-Albers projection, Lambert's conformal projection is not equal-area. The parallels are arcs of circles with a common
-origin, and meridians are the equally spaced radii of these circles. As with Albers projection, it is only the two
-standard parallels that are distortion-free.
-
-**Example**
-
-The Lambert conformal projection has been used for basemaps for all the 48 contiguous States with the two fixed standard
-parallels 33°N and 45°N. We will generate a map of the continental USA using these parameters. Note that with all the
-projections you have the option of selecting a rectangular border rather than one defined by meridians and parallels.
-Here, we choose the regular WESN region, a "fancy" basemap frame, and use degrees west for longitudes. The generating
-commands used were:
-
-.. literalinclude:: /_verbatim/GMT_lambert_conic.txt
-
-.. figure:: /_images/GMT_lambert_conic.*
- :width: 500 px
- :align: center
-
- Lambert conformal conic map projection.
-
-
-The choice for projection center does not affect the projection but it indicates which meridian (here 100°W) will be
-vertical on the map. The standard parallels were originally selected by Adams to provide a maximum scale error between
-latitudes 30.5°N and 47.5°N of 0.5–1%. Some areas, like Florida, experience scale errors of up to 2.5%.
-
-.. _-Jpoly:
-
-(American) polyconic projection (**-Jpoly** **-JPoly**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jpoly**\|\ **Poly**\ /[*lon0/*\ [*lat0/*]]\ *scale*\|\ *width*
-
-**Parameters**
-
-- The longitude (*lon0*) and latitude (*lat0*) of the projection center.
-- The two standard parallels (*lat1* and *lat2*).
-- The *scale* in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jl**) or map *width* in
- :ref:`plot-units ` (with **-JL**).
-
-**Description**
-
-The polyconic projection, in Europe usually referred to as the American polyconic projection, was introduced shortly
-before 1820 by the Swiss-American cartographer Ferdinand Rodulph Hassler (1770–1843). As head of the Survey of the
-Coast, he was looking for a projection that would give the least distortion for mapping the coast of the United
-States. The projection acquired its name from the construction of each parallel, which is achieved by projecting the
-parallel onto the cone while it is rolled around the globe, along the central meridian, tangent to that parallel. As a
-consequence, the projection involves many cones rather than a single one used in regular conic projections.
-
-The polyconic projection is neither equal-area, nor conformal. It is true to scale without distortion along the central
-meridian. Each parallel is true to scale as well, but the meridians are not as they get further away from the central
-meridian. As a consequence, no parallel is standard because conformity is lost with the lengthening of the meridians.
-
-**Example**
-
-Below we reproduce the illustration by *Snyder* [1987], with a gridline every 10 and annotations only every 30° in
-longitude:
-
-.. literalinclude:: /_verbatim/GMT_polyconic.txt
-
-.. figure:: /_images/GMT_polyconic.*
- :width: 500 px
- :align: center
-
- (American) polyconic projection.
-
-
-Azimuthal projections
----------------------
-
-.. _-Ja:
-
-Lambert Azimuthal Equal-Area (**-Ja** **-JA**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Ja**\|\ **A**\ *lon0/lat0*\ [*/horizon*]\ *scale*\|\ *width*
-
-**Parameters**
-
-- The longitude (*lon0*) and latitude (*lat0*) of the projection center.
-- Optionally, the *horizon*, i.e., the number of degrees from the center to the edge (<=180) [default is 90].
-- The *scale* as 1:xxxxx or as radius/latitude where radius is the projected distance on the map from projection center
- to an oblique latitude where 0 would be the oblique Equator (with **-Ja**) or map *width*
- :ref:`plot-units ` (with **-JA**).
-
-**Description**
-
-This projection was developed by Johann Heinrich Lambert in 1772 and is typically used for mapping large regions like
-continents and hemispheres. It is an azimuthal, equal-area projection, but is not perspective. Distortion is zero at the
-center of the projection, and increases radially away from this point.
-
-**Examples**
-
-Two different types of maps can be made with this projection depending on how the region is specified. We will give
-examples of both types in the next two subsections.
-
-Rectangular map
-^^^^^^^^^^^^^^^
-
-In this mode we define our region by specifying the longitude/latitude
-of the lower left and upper right corners instead of the usual *west,
-east, south, north* boundaries. The reason for specifying our area this
-way is that for this and many other projections, lines of equal
-longitude and latitude are not straight lines and are thus poor choices
-for map boundaries. Instead we require that the map boundaries be
-rectangular by defining the corners of a rectangular map boundary. Using
-0°E/40°S (lower left) and 60°E/10°S (upper right) as our corners we try
-
-.. literalinclude:: /_verbatim/GMT_lambert_az_rect.txt
-
-.. figure:: /_images/GMT_lambert_az_rect.*
- :width: 500 px
- :align: center
-
- Rectangular map using the Lambert azimuthal equal-area projection.
-
-
-Note that an **+r** is appended to the **-R** option to inform GMT that
-the region has been selected using the rectangle technique, otherwise it
-would try to decode the values as *west, east, south, north* and report
-an error since *'east'* < *'west'*.
-
-Hemisphere map
-^^^^^^^^^^^^^^
-
-Here, you must specify the world as your region (**-Rg** or **-Rd**). E.g., to obtain a hemisphere view that shows the
-Americas, try
-
-.. literalinclude:: /_verbatim/GMT_lambert_az_hemi.txt
-
-.. figure:: /_images/GMT_lambert_az_hemi.*
- :width: 400 px
- :align: center
-
- Hemisphere map using the Lambert azimuthal equal-area projection.
-
-
-To geologists, the Lambert azimuthal equal-area projection (with origin
-at 0/0) is known as the *equal-area* (Schmidt) stereonet and used for
-plotting fold axes, fault planes, and the like. An *equal-angle* (Wulff)
-stereonet can be obtained by using the stereographic projection
-(discussed later). The stereonets produced by these two projections appear below.
-
-.. _GMT_stereonets:
-
-.. figure:: /_images/GMT_stereonets.*
- :width: 500 px
- :align: center
-
- Equal-Area (Schmidt) and Equal-Angle (Wulff) stereo nets.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_stereonets.txt
-
-
-.. _-Js:
-
-Stereographic Equal-Angle (**-Js** **-JS**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Js**\|\ **S**\ *lon0/lat0*\ [*/horizon*]\ */*\ *scale*\|\ *width*
-
-**Parameters**
-
-- The longitude (*lon0*) and latitude (*lat0*) of the projection center.
-- Optionally, the *horizon*, i.e., the number of degrees from the center to the edge (< 180) [default is 90].
-- Scale as 1:xxxxx (true scale at pole), slat/1:xxxxx (true scale at standard parallel slat), or radius/latitude where
- radius is distance on map in :ref:`plot-units ` from projection center to a particular oblique latitude
- (with **-Js**) or simply map *width* in :ref:`plot-units ` (with **-JS**).
-
-**Description**
-
-
-This is a conformal, azimuthal projection that dates back to the Greeks. Its main use is for mapping the polar regions.
-In the polar aspect all meridians are straight lines and parallels are arcs of circles. While this is the most common
-use it is possible to select any point as the center of projection. The requirements are
-
-A map scale factor of 0.9996 will be applied by default (although you may change this with :term:`PROJ_SCALE_FACTOR`).
-However, the setting is ignored when a standard parallel has been specified since the scale is then implicitly given.
-We will look at two different types of maps.
-
-**Examples**
-
-Multiple types of maps can be made with this projection depending on how the region is specified. We will give
-examples in the next three subsections.
-
-Polar Stereographic Map
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-In our first example we will let the projection center be at the north
-pole. This means we have a polar stereographic projection and the map
-boundaries will coincide with lines of constant longitude and latitude.
-An example is given by:
-
-.. literalinclude:: /_verbatim/GMT_stereographic_polar.txt
-
-.. figure:: /_images/GMT_stereographic_polar.*
- :width: 500 px
- :align: center
-
- Polar stereographic conformal projection.
-
-
-Rectangular stereographic map
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-As with Lambert's azimuthal equal-area projection we have the option to
-use rectangular boundaries rather than the wedge-shape typically
-associated with polar projections. This choice is defined by selecting
-two points as corners in the rectangle and appending **+r** to the
-**-R** option. This command produces a map as presented in
-Figure :ref:`Polar stereographic `:
-
-.. literalinclude:: /_verbatim/GMT_stereographic_rect.txt
-
-.. _GMT_stereographic_rect:
-
-.. figure:: /_images/GMT_stereographic_rect.*
- :width: 500 px
- :align: center
-
- Polar stereographic conformal projection with rectangular borders.
-
-
-General stereographic map
-^^^^^^^^^^^^^^^^^^^^^^^^^
-
-In terms of usage this projection is identical to the Lambert azimuthal
-equal-area projection. Thus, one can make both rectangular and
-hemispheric maps. Our example shows Australia using a projection pole at
-130°E/30°S. The command used was
-
-.. literalinclude:: /_verbatim/GMT_stereographic_general.txt
-
-.. figure:: /_images/GMT_stereographic_general.*
- :width: 500 px
- :align: center
-
- General stereographic conformal projection with rectangular borders.
-
-
-By choosing 0/0 as the pole, we obtain the conformal stereonet presented
-next to its equal-area cousin in the Section `Lambert Azimuthal Equal-Area (-Ja -JA)`_ on the Lambert azimuthal equal-area projection (Figure :ref:`Stereonets `).
-
-.. _-Jg_pers:
-
-Perspective projection (**-Jg** **-JG**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jg**\|\ **G**\ *lon0/lat0/altitude/azimuth/tilt/twist/Width/Height/*\ *scale*\|\ *width*
-
-**Parameters**
-
-- The longitude (*lon0*) and latitude (*lat0*) of the projection center.
-- The *altitude* of the viewer above sea level in kilometers. If this value is less than 10, it is assumed to instead be
- the distance of the viewer from the center of the earth in earth radii. If **r** is appended, it is assumed to instead
- be the distance from the center of the earth in kilometers.
-- The *azimuth* in degrees. This is the direction in which you are looking, measured clockwise from north.
-- The *tilt* in degrees. This is the viewing angle relative to zenith. For example, a tilt of 0° is looking straight
- down, and 60° is looking from 30° above the horizon.
-- The *twist* in degrees. This is the boresight rotation (clockwise) of the image.
-- The *Width* and *Height* of the viewpoint in degrees. This number depends on whether you are looking with the naked
- eye (in which case the view is about 60° wide), or with binoculars, for example.
-- The *scale* as 1:xxxxx or as radius/latitude where radius is distance on map in :ref:`plot-units ` from
- projection center to a particular oblique latitude (with **-Jg**), or map width in :ref:`plot-units `
- (with **-JG**).
-
-**Description**
-
-The perspective projection imitates in 2 dimensions the 3-dimensional view of the earth from space. The implementation
-in GMT is very flexible, and thus requires many input variables.
-
-**Example**
-
-The imagined view of northwest Europe from a Space Shuttle at 230 km looking due east is thus accomplished by the
-following :doc:`/coast` command (*lon0*\ =4; *lat0*\ =52; *altitude*\ =230 km; *azimuth*\ = 90°; *tilt*\ = 60°;
-*twist*\ = 180°; *Width*\ = 60°; *Height*\ = 60°; and *width* = 12 cm):
-
-.. literalinclude:: /_verbatim/GMT_perspective.txt
-
-.. _GMT_perspective:
-
-.. figure:: /_images/GMT_perspective.*
- :width: 500 px
- :align: center
-
- View from the Space Shuttle in Perspective projection.
-
-.. _-Jg:
-
-Orthographic projection (**-Jg** **-JG**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jg**\|\ **G**\ *lon0/lat0*\ [*/horizon*]\ */*\ *scale*\|\ *width*
-
-**Parameters**
-
-- The longitude (*lon0*) and latitude (*lat0*) of the projection center.
-- Optionally, the *horizon*, i.e., the number of degrees from the center to the edge (<=90) [default is 90].
-- The *scale* as 1:xxxxx or as radius/latitude where radius is distance on map in :ref:`plot-units ` from
- projection center to a particular oblique latitude (with **-Jg**), or map width in :ref:`plot-units `
- (with **-JG**).
-
-**Description**
-
-The orthographic azimuthal projection is a perspective projection from infinite distance. It is therefore often used to
-give the appearance of a globe viewed from outer space. As with Lambert's equal-area and the stereographic projection,
-only one hemisphere can be viewed at any time. The projection is neither equal-area nor conformal, and much distortion
-is introduced near the edge of the hemisphere. The directions from the center of projection are true. The projection was
-known to the Egyptians and Greeks more than 2,000 years ago. Because it is mainly used for pictorial views at a small
-scale, only the spherical form is necessary.
-
-**Example**
-
-Our example of a perspective view centered on 75°W/40°N can therefore be generated by the following :doc:`/coast`
-command:
-
-.. literalinclude:: /_verbatim/GMT_orthographic.txt
-
-.. figure:: /_images/GMT_orthographic.*
- :width: 400 px
- :align: center
-
- Hemisphere map using the Orthographic projection.
-
-.. _-Je:
-
-Azimuthal Equidistant projection (**-Je** **-JE**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Je**\|\ **E**\ *lon0/lat0*\ [*/horizon*]\ *scale*\|\ *width*
-
-**Parameters**
-
-- The longitude (*lon0*) and latitude (*lat0*) of the projection center.
-- Optionally, the *horizon*, i.e., the number of degrees from the center to the edge (<=180) [default is 180].
-- The *scale* as 1:xxxxx or as radius/latitude where radius is distance on map in :ref:`plot-units ` from
- projection center to a particular oblique latitude (with **-Je**), or map width in :ref:`plot-units `
- (with **-JE**).
-
-**Description**
-
-The most noticeable feature of this azimuthal projection is the fact that distances measured from the center are true.
-Therefore, a circle about the projection center defines the locus of points that are equally far away from the plot
-origin. Furthermore, directions from the center are also true. The projection, in the polar aspect, is at least several
-centuries old. It is a useful projection for a global view of locations at various or identical distance from a given
-point (the map center).
-
-**Example**
-
-Our example of a global view centered on 100°W/40°N can therefore be generated by the following :doc:`/coast` command.
-Note that the antipodal point is 180° away from the center, but in this projection this point plots as the entire map
-perimeter:
-
-.. literalinclude:: /_verbatim/GMT_az_equidistant.txt
-
-.. figure:: /_images/GMT_az_equidistant.*
- :width: 400 px
- :align: center
-
- World map using the equidistant azimuthal projection.
-
-.. _-Jf:
-
-Gnomonic projection (**-Jf** **-JF**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jf**\|\ **F**\ *lon0/lat0*\ [*/horizon*]\ *scale*\|\ *width*
-
-**Parameters**
-
-- The longitude (*lon0*) and latitude (*lat0*) of the projection center.
-- Optionally, the *horizon*, i.e., the number of degrees from the center to the edge (<90) [default is 60].
-- The *scale* as 1:xxxxx or as radius/latitude where radius is distance on map in :ref:`plot-units ` from
- projection center to a particular oblique latitude (with **-Jf**), or map width in :ref:`plot-units `
- (with **-JF**).
-
-**Description**
-
-The Gnomonic azimuthal projection is a perspective projection from the center onto a plane tangent to the surface. Its
-origin goes back to the old Greeks who used it for star maps almost 2500 years ago. The projection is neither equal-area
-nor conformal, and much distortion is introduced near the edge of the hemisphere; in fact, less than a hemisphere may be
-shown around a given center. The directions from the center of projection are true. Great circles project onto straight
-lines. Because it is mainly used for pictorial views at a small scale, only the spherical form is necessary.
-
-**Example**
-
-Using a *horizon* of 60, our example of this projection centered on 120°W/35°N can therefore be generated by the
-following :doc:`/coast` command:
-
-.. literalinclude:: /_verbatim/GMT_gnomonic.txt
-
-.. figure:: /_images/GMT_gnomonic.*
- :width: 500 px
- :align: center
-
- Gnomonic azimuthal projection.
-
-
-Cylindrical projections
------------------------
-
-Cylindrical projections are easily recognized for their shape: maps are rectangular and meridians and parallels are
-straight lines crossing at right angles. But that is where similarities between the cylindrical projections supported
-by GMT (:ref:`Mercator <-Jm>`, :ref:`transverse Mercator <-Jt>`, :ref:`universal transverse Mercator <-Ju>`,
-:ref:`oblique Mercator <-Jo>`, :ref:`Cassini <-Jc>`, :ref:`cylindrical equidistant <-Jq>`,
-:ref:`cylindrical equal-area <-Jy>`, :ref:`Miller <-Jj>`, and :ref:`cylindrical stereographic <-Jcyl_stere>`) stops.
-Each have a different way of spacing the meridians and parallels to obtain certain desirable cartographic properties.
-
-.. _-Jm:
-
-Mercator projection (**-Jm** **-JM**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jm**\|\ **M**\ [*lon0/*\ [*lat0/*]]\ *scale*\|\ *width*
-
-**Parameters**
-
-- Optionally, the central meridian (*lon0*) [default is the middle of the map].
-- Optionally, the standard parallel for true scale (*lat0*) [default is the equator]. When supplied, the central
- meridian (*lon0*) must be supplied as well.
-- The *scale* along the equator in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jm**) or map *width* in
- :ref:`plot-units ` (with **-JM**).
-
-**Description**
-
-Probably the most famous of the various map projections, the Mercator projection takes its name from the Flemish
-cartographer Gheert Cremer, better known as Gerardus Mercator, who presented it in 1569. The projection is a cylindrical
-and conformal, with no distortion along the equator. A major navigational feature of the projection is that a line of
-constant azimuth is straight. Such a line is called a rhumb line or *loxodrome*. Thus, to sail from one point to another
-one only had to connect the points with a straight line, determine the azimuth of the line, and keep this constant
-course for the entire voyage\ [21]_. The Mercator projection has been used extensively for world maps in which the
-distortion towards the polar regions grows rather large, thus incorrectly giving the impression that, for example,
-Greenland is larger than South America. In reality, the latter is about eight times the size of Greenland. Also, the
-Former Soviet Union looks much bigger than Africa or South America. One may wonder whether this illusion has had any
-influence on U.S. foreign policy.
-
-In the regular Mercator projection, the cylinder touches the globe along the equator. Other orientations like vertical
-and oblique give rise to the :ref:`transverse Mercator <-Jt>` and :ref:`oblique Mercator <-Jo>` projections,
-respectively. We will discuss these generalizations following the regular Mercator projection.
-
-**Example**
-
-A world map at a scale of 0.03 cm per degree, which will give a map 10.8-cm wide, can be obtained as follows:
-
-.. literalinclude:: /_verbatim/GMT_mercator.txt
-
-.. figure:: /_images/GMT_mercator.*
- :width: 500 px
- :align: center
-
- Simple Mercator map.
-
-
-While this example is centered on the Dateline, one can easily choose another configuration with the **-R** option. For
-example, specify the region with **-R**-180/180/-70/70 to obtain a map centered on Greenwich.
-
-.. _-Jt:
-
-Transverse Mercator projection (**-Jt** **-JT**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jt**\|\ **T**\ *lon0/*\ [*lat0/*]\ *scale*\|\ *width*
-
-**Parameters**
-
-- The central meridian (*lon0*).
-- Optionally, the latitude of origin (*lat0*) [default is the equator].
-- The *scale* along the equator in :ref:`plot-units `/degree or 1:xxxxx (with **-Jt**) or map
- *width* in :ref:`plot-units ` (with **-JT**).
-
-You can change the map scale factor via the :term:`PROJ_SCALE_FACTOR` parameter [default is **1**].
-
-**Description**
-
-The transverse Mercator was invented by Johann Heinrich Lambert in 1772. In this projection the cylinder touches a
-meridian along which there is no distortion. The distortion increases away from the central meridian and goes to
-infinity at 90° from center. The central meridian, each meridian 90° away from the center, and equator are straight
-lines; other parallels and meridians are complex curves.
-
-**Example**
-
-A transverse Mercator map of south-east Europe and the Middle East with 35°E as the central meridian can be obtained as
-follows:
-
-.. literalinclude:: /_verbatim/GMT_transverse_merc.txt
-
-.. figure:: /_images/GMT_transverse_merc.*
- :width: 500 px
- :align: center
-
- Rectangular Transverse Mercator map.
-
-
-A global transverse Mercator map - the equivalent of the 360° Mercator map - can also be obtained as follows:
-
-.. literalinclude:: /_verbatim/GMT_TM.txt
-
-.. _GMT_TM:
-
-.. figure:: /_images/GMT_TM.*
- :width: 450 px
- :align: center
-
- A global transverse Mercator map.
-
-Note that when a world map is given (indicated by **-R**\ *0/360/s/n*), the arguments are interpreted to mean oblique
-degrees, i.e., the 360° range is understood to mean the extent of the plot along the central meridian, while the "south"
-and "north" values represent how far from the central longitude we want the plot to extend. These values correspond to
-latitudes in the regular Mercator projection and must therefore be less than 90.
-
-
-
-.. _-Ju:
-
-Universal Transverse Mercator (UTM) projection (**-Ju** **-JU**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Ju**\|\ **U**\ *zone/*\ *scale*\|\ *width*
-
-**Parameters**
-
-- UTM *zone* (A, B, 1–60, Y, Z). Use negative values for numerical zones in the southern hemisphere or append the
- latitude modifiers (C–H, J–N, P–X) to specify an exact UTM grid zone.
-- The *scale* along the equator in :ref:`plot-units `/degree or as 1:xxxxx (with **-Ju**) or map *width* in
- :ref:`plot-units ` (with **-JU**).
-
-**Description**
-
-A particular subset of the :ref:`transverse Mercator <-Jt>` is the Universal Transverse Mercator (UTM) which was adopted
-by the US Army for large-scale military maps. Here, the globe is divided into 60 zones between 84°S and 84°N, most of
-which are 6° wide. Each of these UTM zones have a unique central meridian. Furthermore, each zone is divided into
-latitude bands but these are not needed to specify the projection for most cases. See Figure
-:ref:`Universal Transverse Mercator ` for all zone designations.
-
-.. _GMT_utm_zones:
-
-.. figure:: /_images/GMT_utm_zones.*
- :width: 700 px
- :align: center
-
- Universal Transverse Mercator zone layout.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_utm_zones.txt
-
-In order to minimize the distortion in any given zone, a scale factor of 0.9996 has been factored into the formulae
-(although a standard, you can change this with :term:`PROJ_SCALE_FACTOR`). This makes the UTM projection a *secant*
-projection and not a *tangent* projection like the :ref:`transverse Mercator <-Jt>` above. The scale only varies by 1
-part in 1,000 from true scale at equator. The ellipsoidal projection expressions are accurate for map areas that extend
-less than 10 away from the central meridian. For larger regions we use the conformal latitude in the general spherical
-formulae instead.
-
-.. _-Jo:
-
-Oblique Mercator projection (**-Jo** **-JO**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Option 1 Syntax**
-
- **-Jo**\|\ **O**\ [**a**\|\ **A**]\ *lon0/lat0/azimuth/*\ *scale*\|\ *width*\ [**+v**]
-
-**Option 1 Parameters**
-
- - The longitude (*lon0*) and latitude (*lat0*) of projection center.
- - The azimuth (*azimuth*) of the oblique equator.
- - The *scale* in :ref:`plot-units `/degree or 1:xxxxx along oblique equator (with **-Jo**),
- or map *width* in :ref:`plot-units ` (with **-JO**).
- - Optionally, append **+v** to let the oblique Equator align with the *y*-axis [default is to align with the
- *x*-axis].
-
-**Option 2 Syntax**
-
- **-Jo**\|\ **O**\ [**b**\|\ **B**]\ *lon0/lat0/lon1/lat1/*\ *scale*\|\ *width*\ [**+v**]
-
-**Option 2 Parameters**
-
- - The longitude (*lon0*) and latitude (*lat0*) of projection center.
- - The longitude (*lon1*) and latitude (*lat1*) of a second point on oblique equator.
- - The *scale* in :ref:`plot-units `/degree or 1:xxxxx along oblique equator (with **-Jo**),
- or map *width* in :ref:`plot-units ` (with **-JO**).
- - Optionally, append **+v** to let the oblique Equator align with the *y*-axis [default is to align with the
- *x*-axis].
-
-**Option 3 Syntax**
-
- **-Jo**\|\ **O**\ [**c**\|\ **C**]\ *lon0/lat0/lonp/latp/*\ *scale*\|\ *width*\ [**+v**]
-
-**Option 3 Parameters**
-
- - The longitude (*lon0*) and latitude (*lat0*) of projection center.
- - The longitude (*lonp*) and latitude (*latp*) of the projection pole.
- - The *scale* in :ref:`plot-units `/degree or 1:xxxxx along oblique equator (with **-Jo**),
- or map *width* in :ref:`plot-units ` (with **-JO**).
- - Optionally, append **+v** to let the oblique Equator align with the *y*-axis [default is to align with the
- *x*-axis].
-
-For all three definitions, the upper case **A**\|\ **B**\|\ **C** means we will allow projection poles in the southern
-hemisphere [default is to map any such poles to their antipodes in the northern hemisphere].
-
-**Description**
-
-Oblique configurations of the cylinder give rise to the oblique Mercator projection. It is particularly useful when
-mapping regions of large lateral extent in an oblique direction. Both parallels and meridians are complex curves. The
-projection was developed in the early 1900s by several workers.
-
-**Example**
-
-An oblique view of some Caribbean islands using Option 3 can be obtained as follows:
-
-.. literalinclude:: /_verbatim/GMT_obl_merc.txt
-
-.. figure:: /_images/GMT_obl_merc.*
- :width: 500 px
- :align: center
-
- Oblique Mercator map using **-JOc**. We make it clear which direction is North by adding a star rose with the **-Td**
- option.
-
-
-Note that we define our region using the rectangular system described earlier. If we do not append **+r** to the **-R**
-string then the information provided with the **-R** option is assumed to be oblique degrees about the projection center
-rather than the usual geographic coordinates. This interpretation is chosen since in general the parallels and meridians
-are not very suitable as map boundaries.
-
-When working with oblique projections such as here, it is often much more convenient to specify the map domain in the
-projected coordinates relative to the map center. The figure below shows two views of New Zealand using the oblique
-Mercator projection that in both cases specifies the region using **-R**\ -1000/1000/-500/500\ **+uk**. The unit **k**
-means the following bounds are in projected km and we let GMT determine the geographic coordinates of the two diagonal
-corners internally.
-
-.. figure:: /_images/GMT_obl_nz.*
- :width: 600 px
- :align: center
-
- (left) Oblique view of New Zealand centered on its geographical center (Nelson) indicated by the white circle for an
- oblique Equator with azimuth 35. This resulted in the argument **-JOa**\ 173:17:02E/41:16:15S/35/3i. The map is
- 2000 km by 1000 km and the Cartesian coordinate system in the projected units are indicated by the bold axes. The
- blue circle is the point (40S,180E) and it has projected coordinates (*x* = 426.2, *y* = -399.7).
- (right) Same dimensions but now specifying an azimuth of 215, yielding a projection pole in the southern hemisphere
- (hence we used **-JOA** to override the restriction, i.e., **-JOA**\ 173:17:02E/41:16:15S/215/3i.)
- The projected coordinate system is still aligned as before but the Earth has been rotated 180 degrees. The blue
- point now has projected coordinates (*x* = -426.2, *y* = 399.7).
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_obl_nz.txt
-
-The oblique Mercator projection will by default arrange the output so that the oblique Equator becomes the new
-horizontal, positive *x*-axis. For features with an orientation more north-south than east-west, it may be preferable
-to align the oblique Equator with the vertical, positive *y*-axis instead. This configuration is selected by appending
-**+v** to the **-J** projection option. The example below shows this behaviour.
-
-.. figure:: /_images/GMT_obl_baja.*
- :width: 300 px
- :align: center
-
- Oblique view of Baja California using the vertical oblique Equator modifier. This plot
- resulted from the argument **-JOa**\ 120W/25N/-30/6c\ **+v**\ .
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_obl_baja.txt
-
-.. _-Jc:
-
-Cassini cylindrical projection (**-Jc** **-JC**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jc**\|\ **C**\ *lon0/lat0/scale*\|\ *width*
-
-**Parameters**
-
- - The longitude (*lon0*) and latitude (*lat0*) of the central point.
- - The *scale* in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jc**) or map *width* in
- :ref:`plot-units ` (with **-JC**).
-
-**Description**
-
-This cylindrical projection was developed in 1745 by César-François Cassini de Thury for the survey of France. It is
-occasionally called Cassini-Soldner since the latter provided the more accurate mathematical analysis that led to the
-development of the ellipsoidal formulae. The projection is neither conformal nor equal-area, and behaves as a compromise
-between the two end-members. The distortion is zero along the central meridian. It is best suited for mapping regions of
-north-south extent. The central meridian, each meridian 90° away, and equator are straight lines; all other meridians
-and parallels are complex curves.
-
-**Example**
-
-A detailed map of the island of Sardinia centered on the 8°45'E meridian using the Cassini projection can be obtained by
-as follows:
-
-.. literalinclude:: /_verbatim/GMT_cassini.txt
-
-.. figure:: /_images/GMT_cassini.*
- :width: 400 px
- :align: center
-
- Cassini map over Sardinia.
-
-
-As with the previous projections, the user can choose between a rectangular boundary (used here) or a geographical
-(WESN) boundary.
-
-.. _-Jq:
-
-Cylindrical equidistant projection (**-Jq** **-JQ**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jq**\|\ **Q**\ [*lon0/*\ [*lat0/*]]\ *scale*\|\ *width*
-
-**Parameters**
-
-- Optionally, the central meridian (*lon0*) [default is the middle of the map map].
-- Optionally, the standard parallel (*lat0*) [default is the equator]. When supplied, the central meridian (*lon0*)
- must be supplied as well.
-- The *scale* in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jq**) or map *width* in
- :ref:`plot-units ` (with **-JQ**).
-
-**Description**
-
-This simple cylindrical projection is really a linear scaling of longitudes and latitudes. The most common form is the
-Plate Carrée projection, where the scaling of longitudes and latitudes is the same. All meridians and parallels are
-straight lines.
-
-Different relative scalings of longitudes and latitudes can be obtained by selecting a standard parallel different from
-the equator. Some selections for standard parallels have practical properties as shown in Table :ref:`JQ `.
-
-.. _tbl-JQ:
-
-+-----------------------------------------------------+--------+
-+=====================================================+========+
-| Grafarend and Niermann, minimum linear distortion | 61.7° |
-+-----------------------------------------------------+--------+
-| Ronald Miller Equirectangular | 50.5° |
-+-----------------------------------------------------+--------+
-| Ronald Miller, minimum continental distortion | 43.5° |
-+-----------------------------------------------------+--------+
-| Grafarend and Niermann | 42° |
-+-----------------------------------------------------+--------+
-| Ronald Miller, minimum overall distortion | 37.5° |
-+-----------------------------------------------------+--------+
-| Plate Carrée, Simple Cylindrical, Plain/Plane | 0° |
-+-----------------------------------------------------+--------+
-
-**Example**
-
-A world map centered on the dateline using this projection can be obtained as follows:
-
-.. literalinclude:: /_verbatim/GMT_equi_cyl.txt
-
-.. figure:: /_images/GMT_equi_cyl.*
- :width: 500 px
- :align: center
-
- World map using the Plate Carrée projection.
-
-.. _-Jy:
-
-Cylindrical equal-area projections (**-Jy** **-JY**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jy**\|\ **Y**\ [*lon0/*\ [*lat0/*]]\ *scale*\|\ *width*
-
-**Parameters**
-
-- Optionally, the central meridian (*lon0*) [default is the middle of the map].
-- Optionally, the standard parallel (*lat0*) [default is the equator]. When supplied, the central meridian (*lon0*)
- must be supplied as well.
-- The *scale* in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jy**) or map *width* in
- :ref:`plot-units ` (with **-JY**)
-
-**Description**
-
-This cylindrical projection is actually several projections, depending on what latitude is selected as the standard
-parallel. However, they are all equal area and hence non-conformal. All meridians and parallels are straight lines.
-
-While you may choose any value for the standard parallel and obtain your own personal projection, there are seven
-choices of standard parallels that result in known (or named) projections. These are listed in Table :ref:`JY `.
-
-.. _tbl-JY:
-
-+-------------------+---------------------+
-+===================+=====================+
-| Balthasart | 50° |
-+-------------------+---------------------+
-| Gall | 45° |
-+-------------------+---------------------+
-| Hobo-Dyer | 37°30' (= 37.5°) |
-+-------------------+---------------------+
-| Trystan Edwards | 37°24' (= 37.4°) |
-+-------------------+---------------------+
-| Caster | 37°04' (= 37.0666°) |
-+-------------------+---------------------+
-| Behrman | 30° |
-+-------------------+---------------------+
-| Lambert | 0° |
-+-------------------+---------------------+
-
-**Example**
-
-A world map centered on the 35°E meridian using the Behrman projection (Figure
-:ref:`Behrman cylindrical projection `) can be obtained as follows:
-
-.. literalinclude:: /_verbatim/GMT_general_cyl.txt
-
-.. _GMT_general_cyl:
-
-.. figure:: /_images/GMT_general_cyl.*
- :width: 600 px
- :align: center
-
- World map using the Behrman cylindrical equal-area projection.
-
-
-As one can see there is considerable distortion at high latitudes since the poles map into lines.
-
-.. _-Jj:
-
-Miller Cylindrical projection (**-Jj** **-JJ**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jj**\|\ **J**\ [*lon0/*]\ *scale*\|\ *width*
-
-**Parameters**
-
-- Optionally, the central meridian (*lon0*) [default is the middle of the map].
-
-- The *scale* in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jj**) or map *width* in
- :ref:`plot-units ` (with **-JJ**).
-
-**Description**
-
-This cylindrical projection, presented by Osborn Maitland Miller of the American Geographic Society in 1942, is neither
-equal nor conformal. All meridians and parallels are straight lines. The projection was designed to be a compromise
-between Mercator and other cylindrical projections. Specifically, Miller spaced the parallels by using Mercator's
-formula with 0.8 times the actual latitude, thus avoiding the singular poles; the result was then divided by 0.8. There
-is only a spherical form for this projection.
-
-**Example**
-
-A world map centered on the 90°E meridian at a map scale of 1:400,000,000 (Figure :ref:`Miller projection `)
-can be obtained as follows:
-
-.. literalinclude:: /_verbatim/GMT_miller.txt
-
-.. _GMT_miller:
-
-.. figure:: /_images/GMT_miller.*
- :width: 500 px
- :align: center
-
- World map using the Miller cylindrical projection.
-
-.. _-Jcyl_stere:
-
-Cylindrical stereographic projections (**-Jcyl_stere** **-JCyl_stere**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jcyl_stere**\|\ **Cyl_stere**\ /[*lon0/*\ [*lat0/*]]\ *scale*\|\ *width*
-
-**Parameters**
-
-- Optionally, the central meridian (*lon0*) [default is the middle of the map].
-- Optionally, the standard parallel (*lat0*) [default is the Equator]. When used, central meridian (*lon0*) needs to be
- given as well.
-- The *scale* in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jcyl_stere**) or map *width* in
- :ref:`plot-units ` (with **-JCyl_stere**).
-
-**Description**
-
-The cylindrical stereographic projections are certainly not as notable as other cylindrical projections, but are still
-used because of their relative simplicity and their ability to overcome some of the downsides of other cylindrical
-projections, like extreme distortions of the higher latitudes. The stereographic projections are perspective
-projections, projecting the sphere onto a cylinder in the direction of the antipodal point on the equator. The cylinder
-crosses the sphere at two standard parallels, equidistant from the equator.
-
-Some of the selections of the standard parallel are named for the cartographer or publication that popularized the
-projection (Table :ref:`JCylstere `).
-
-.. _tbl-JCylstere:
-
-+---------------------------------------------------------+-------------+
-+=========================================================+=============+
-| Miller's modified Gall | 66.159467° |
-+---------------------------------------------------------+-------------+
-| Kamenetskiy's First | 55° |
-+---------------------------------------------------------+-------------+
-| Gall's stereographic | 45° |
-+---------------------------------------------------------+-------------+
-| Bolshoi Sovietskii Atlas Mira or Kamenetskiy's Second | 30° |
-+---------------------------------------------------------+-------------+
-| Braun's cylindrical | 0° |
-+---------------------------------------------------------+-------------+
-
-**Example**
-
-A map of the world, centered on the Greenwich meridian, using the Gall's stereographic projection (standard parallel is
-45°, Figure :ref:`Gall's stereographic projection `), can be obtained as follows:
-
-.. literalinclude:: /_verbatim/GMT_gall_stereo.txt
-
-.. _GMT_gall_stereo:
-
-.. figure:: /_images/GMT_gall_stereo.*
- :width: 500 px
- :align: center
-
- World map using Gall's stereographic projection.
-
-
-Miscellaneous projections
--------------------------
-
-GMT supports eight common projections for global presentation of data or models. These are the :ref:`Hammer <-Jh>`,
-:ref:`Mollweide <-Jw>`, :ref:`Winkel Tripel <-Jr>`, :ref:`Robinson <-Jn>`, :ref:`Eckert IV and VI <-Jk>`,
-:ref:`Sinusoidal <-Ji>`, and :ref:`Van der Grinten <-Jv>` projections. Due to the small scale used for global maps these
-projections all use the spherical approximation rather than more elaborate elliptical formulae.
-
-In all cases, the specification of the central meridian can be skipped. The default is the middle of the longitude
-range of the plot, specified by the (**-R**) option.
-
-.. _-Jh:
-
-Hammer projection (**-Jh** **-JH**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jh**\|\ **H**\ [*lon0/*]\ *scale*\|\ *width*
-
-**Parameters**
-
-- The central meridian (*lon0*) [default is the middle of the map].
-- The *scale* along equator in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jh**) or map *width* in
- :ref:`plot-units ` (with **-JH**).
-
-**Description**
-
-The equal-area Hammer projection, first presented by the German mathematician Ernst von Hammer in 1892, is also known as
-Hammer-Aitoff (the Aitoff projection looks similar, but is not equal-area). The border is an ellipse, equator and
-central meridian are straight lines, while other parallels and meridians are complex curves.
-
-**Example**
-
-A view of the Pacific ocean using the Dateline as central meridian can be generated thus:
-
-.. literalinclude:: /_verbatim/GMT_hammer.txt
-
-.. figure:: /_images/GMT_hammer.*
- :width: 500 px
- :align: center
-
- World map using the Hammer projection.
-
-.. _-Jw:
-
-Mollweide projection (**-Jw** **-JW**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jw**\|\ **W**\ [*lon0/*]\ *scale*\|\ *width*
-
-**Parameters**
-
-- The central meridian (*lon0*) [default is the middle of the map].
-- The *scale* along equator in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jw**) or map *width* in
- :ref:`plot-units ` (with **-JW**).
-
-**Description**
-
-This pseudo-cylindrical, equal-area projection was developed by the German mathematician and astronomer Karl Brandan
-Mollweide in 1805. Parallels are unequally spaced straight lines with the meridians being equally spaced elliptical
-arcs. The scale is only true along latitudes 40°44' north and south. The projection is used mainly for global maps
-showing data distributions. It is occasionally referenced under the name *homalographic* projection.
-
-**Example**
-
-An example centered on Greenwich can be generated thus:
-
-.. literalinclude:: /_verbatim/GMT_mollweide.txt
-
-.. figure:: /_images/GMT_mollweide.*
- :width: 500 px
- :align: center
-
- World map using the Mollweide projection.
-
-.. _-Jr:
-
-Winkel Tripel projection (**-Jr** **-JR**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jr**\|\ **R**\ [*lon0/*]\ *scale*\|\ *width*
-
-**Parameters**
-
-- The central meridian (*lon0*) [default is the middle of the map].
-- The *scale* along equator in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jr**) or map *width* in
- :ref:`plot-units ` (with **-JR**).
-
-**Description**
-
-In 1921, the German mathematician Oswald Winkel created a projection that was to strike a compromise between the
-properties of three elements (area, angle and distance). The German word "tripel" refers to this junction of where each
-of these elements are least distorted when plotting global maps. The projection was popularized when Bartholomew and Son
-started to use it in its world-renowned "The Times Atlas of the World" in the mid-20th century. In 1998, the National
-Geographic Society made the Winkel Tripel as its map projection of choice for global maps.
-
-Naturally, this projection is neither conformal, nor equal-area. Central meridian and equator are straight lines; other
-parallels and meridians are curved. The projection is obtained by averaging the coordinates of the Equidistant
-Cylindrical and Aitoff (not Hammer-Aitoff) projections. The poles map into straight lines 0.4 times the length of
-equator.
-
-**Example**
-
-Centered on Greenwich, the example in Figure :ref:`Winkel Tripel projection ` was created by this command:
-
-.. literalinclude:: /_verbatim/GMT_winkel.txt
-
-.. _GMT_winkel:
-
-.. figure:: /_images/GMT_winkel.*
- :width: 500 px
- :align: center
-
- World map using the Winkel Tripel projection.
-
-.. _-Jn:
-
-Robinson projection (**-Jn** **-JN**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jn**\|\ **N**\ [*lon0/*]\ *scale*\|\ *width*
-
-**Parameters**
-
-- The central meridian (*lon0*) [default is the middle of the map].
-- The *scale* along equator in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jn**) or map *width* in
- :ref:`plot-units ` (with **-JN**).
-
-**Description**
-
-The Robinson projection, presented by the American geographer and cartographer Arthur H. Robinson in 1963, is a modified
-cylindrical projection that is neither conformal nor equal-area. Central meridian and all parallels are straight lines;
-other meridians are curved. It uses lookup tables rather than analytic expressions to make the world map "look"
-right\ [22]_. The scale is true along latitudes 38. The projection was originally developed for use by Rand McNally and
-is currently used by the National Geographic Society.
-
-**Example**
-
-Again centered on Greenwich, the example below was created by this command:
-
-.. literalinclude:: /_verbatim/GMT_robinson.txt
-
-.. figure:: /_images/GMT_robinson.*
- :width: 500 px
- :align: center
-
- World map using the Robinson projection.
-
-.. _-Jk:
-
-Eckert IV and VI projection (**-Jk** **-JK**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jk**\|\ **K**\ **f**\ [*lon0/*]\ *scale*\|\ *width* (Eckert IV)
- **-Jk**\|\ **K**\ [**s**][*lon0/*]\ *scale*\|\ *width* (Eckert VI)
-
-**Parameters**
-
-- The central meridian (*lon0*) [default is the middle of the map].
-- The *scale* along equator in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jk**) or map *width* in
- :ref:`plot-units ` (with **-JK**).
-
-**Description**
-
-The Eckert IV and VI projections, presented by the German cartographer Max Eckert-Greiffendorff in 1906, are
-pseudo-cylindrical equal-area projections. Central meridian and all parallels are straight lines; other meridians are
-equally spaced elliptical arcs (IV) or sinusoids (VI). The scale is true along latitudes 40°30' (IV) and 49°16' (VI).
-Their main use is in thematic world maps. To select Eckert IV you must use **-JKf** (**f** for "four") while Eckert VI
-is selected with **-JKs** (**s** for "six"). If no modifier is given it defaults to Eckert VI.
-
-**Examples**
-
-Centered on the Dateline, the Eckert IV example below was created by this command:
-
-.. literalinclude:: /_verbatim/GMT_eckert4.txt
-
-.. figure:: /_images/GMT_eckert4.*
- :width: 500 px
- :align: center
-
- World map using the Eckert IV projection.
-
-
-The same script, with **s** instead of **f**, yields the Eckert VI map:
-
-.. figure:: /_images/GMT_eckert6.*
- :width: 500 px
- :align: center
-
- World map using the Eckert VI projection.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_eckert6.txt
-
-.. _-Ji:
-
-Sinusoidal projection (**-Ji** **-JI**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Ji**\|\ **I**\ [*lon0/*]\ *scale*\|\ *width*
-
-**Parameters**
-
-- The central meridian (*lon0*) [default is the middle of the map].
-- The *scale* along equator in :ref:`plot-units `/degree or as 1:xxxxx (with **-Ji**) or map *width* in
- :ref:`plot-units ` (with **-JI**).
-
-**Description**
-
-The sinusoidal projection is one of the oldest known projections, is equal-area, and has been used since the mid-16th
-century. It has also been called the "Equal-area Mercator" projection. The central meridian is a straight line; all
-other meridians are sinusoidal curves. Parallels are all equally spaced straight lines, with scale being true along all
-parallels (and central meridian).
-
-**Examples**
-
-A simple world map using the sinusoidal projection is therefore obtained by
-
-.. literalinclude:: /_verbatim/GMT_sinusoidal.txt
-
-.. figure:: /_images/GMT_sinusoidal.*
- :width: 500 px
- :align: center
-
- World map using the Sinusoidal projection.
-
-
-To reduce distortion of shape the interrupted sinusoidal projection was introduced in 1927. Here, three symmetrical
-segments are used to cover the entire world. Traditionally, the interruptions are at 160°W, 20°W, and 60°E. To make the
-interrupted map we must call :doc:`/coast` for each segment and superpose the results. To produce an interrupted world
-map (with the traditional boundaries just mentioned) that is 14.4 cm wide we use the scale 14.4/360 = 0.04 and offset
-the subsequent plots horizontally by their widths (140\ :math:`\cdot`\ 0.04 and 80\ :math:`\cdot`\ 0.04):
-
-.. literalinclude:: /_verbatim/GMT_sinus_int.txt
-
-.. figure:: /_images/GMT_sinus_int.*
- :width: 500 px
- :align: center
-
- World map using the Interrupted Sinusoidal projection.
-
-
-The usefulness of the interrupted sinusoidal projection is basically limited to display of global, discontinuous data
-distributions like hydrocarbon and mineral resources, etc.
-
-.. _-Jv:
-
-Van der Grinten projection (**-Jv** **-JV**)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-**Syntax**
-
- **-Jv**\|\ **V**\ [*lon0/*]\ *scale*\|\ *width*
-
-**Parameters**
-
-- The central meridian (*lon0*) [default is the middle of the map].
-- The *scale* along equator in :ref:`plot-units `/degree or as 1:xxxxx (with **-Jv**) or map *width* in
- :ref:`plot-units ` (with **-JV**).
-
-**Description**
-
-The Van der Grinten projection, presented by Alphons J. van der Grinten in 1904, is neither equal-area nor conformal.
-Central meridian and Equator are straight lines; other meridians are arcs of circles. The scale is true along the
-Equator only. Its main use is to show the entire world enclosed in a circle.
-
-**Example**
-
-Centered on the Dateline, the example below was created by this command:
-
-.. literalinclude:: /_verbatim/GMT_grinten.txt
-
-.. figure:: /_images/GMT_grinten.*
- :width: 400 px
- :align: center
-
- World map using the Van der Grinten projection.
-
-Footnotes
----------
-
-.. [20]
- Snyder, J. P., 1987, Map Projections A Working Manual, U.S.
- Geological Survey Prof. Paper 1395.
-
-.. [21]
- This is, however, not the shortest distance. It is given by the great
- circle connecting the two points.
-
-.. [22]
- Robinson provided a table of *y*-coordinates for latitudes
- every 5. To project values for intermediate latitudes one must
- interpolate the table. Different interpolants may result in slightly
- different maps. GMT uses the
- interpolant selected by the parameter :term:`GMT_INTERPOLANT` in the
- file.
diff --git a/6.2.0rc1/_sources/cookbook/non-unix-platforms.rst.txt b/6.2.0rc1/_sources/cookbook/non-unix-platforms.rst.txt
deleted file mode 100644
index 2fc8c88ecd0..00000000000
--- a/6.2.0rc1/_sources/cookbook/non-unix-platforms.rst.txt
+++ /dev/null
@@ -1,77 +0,0 @@
-GMT on non-\ UNIX Platforms
-===========================
-
-Introduction
-------------
-
-While GMT was ported to non-\ UNIX systems such as Windows, it is
-also true that one of the strengths of GMT lies its symbiotic
-relationship with UNIX. We therefore recommend that GMT be installed
-in a POSIX-compliant UNIX environment such as traditional
-UNIX-systems, Linux, or Mac OS X. If abandoning your
-non-\ UNIX operating system is not an option, consider one of these
-solutions:
-
-WINDOWS:
- Choose among these three possibilities:
-
- #. Install GMT under MinGW/MSYS2 (A collection of GNU utilities).
-
- #. Install GMT under Cygwin (A GNU port to Windows).
-
- #. Install GMT in Windows using Microsoft C/C++ or other
- compilers. Unlike the first two, this option will not provide you
- with any UNIX tools so you will be limited to what you can do
- with DOS batch files.
-
-
-MINGW|MSYS2 and GMT
--------------------
-
-Though one can install GMT natively using CMake, the simplest way of installing
-under MINGW|MSYS2 is to just install the Windows binaries and use them from
-the msys2 bash shell. As simple as that. Furthermore, GMT programs launch
-faster here than on Cygwin so this is the recommended way of running
-GMT on Windows. As one option, `Git for Windows `_
-can be easily installed and includes a bash emulator with MINGW|MSYS2.
-
-Cygwin and GMT
---------------
-
-Because GMT works best in conjugation with UNIX tools we suggest you
-install GMT using the Cygwin product from Cygnus (now assimilated by
-Redhat, Inc.). This free version works on any Windows version and it
-comes with both the Bourne Again shell **bash** and the **tcsh**.
-You also have access to most standard GNU development tools such as
-compilers and text processing tools (**awk**, **grep**, **sed**,
-etc.). Note that executables prepared for Windows will also run under Cygwin.
-
-Follow the instructions on the Cygwin page on how to install the
-package; note you must explicitly add all the development tool packages
-(e.g., **gcc** etc) as the basic installation does not include them by
-default. Once you are up and running under Cygwin, you may install
-GMT the same way you do under any other UNIX platform; our wiki
-has instructions for packages you need to install first.
-
-Finally, from Cygwin's User Guide: By default, no Cygwin program can
-allocate more than 384 MB of memory (program and data). You should not
-need to change this default in most circumstances. However, if you need
-to use more real or virtual memory in your machine you may add an entry
-in either the **HKEY_LOCAL_MACHINE** (to change the limit for all
-users) or **HKEY_CURRENT_USER** (for just the current user) section of
-the registry. Add the DWORD value **heap_chunk_in_mb** and set it to
-the desired memory limit in decimal Mb. It is preferred to do this in
-Cygwin using the **regtool** program included in the Cygwin package.
-(For more information about **regtool** or the other Cygwin utilities,
-see the Section called Cygwin Utilities in Chapter 3 of the Cygwin's
-User Guide or use the help option of each utility.) You should always be
-careful when using **regtool** since damaging your system registry can
-result in an unusable system. This example sets the local machine memory
-limit to 1024 Mb:
-
- ::
-
- regtool -i set /HKLM/Software/Cygnus\ Solutions/Cygwin/heap_chunk_in_mb 1024
- regtool -v list /HKLM/Software/Cygnus\ Solutions/Cygwin
-
-For more installation details see the general README file.
diff --git a/6.2.0rc1/_sources/cookbook/octal-codes.rst.txt b/6.2.0rc1/_sources/cookbook/octal-codes.rst.txt
deleted file mode 100644
index f733ca56f83..00000000000
--- a/6.2.0rc1/_sources/cookbook/octal-codes.rst.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-.. _Chart-Octal-Codes-for-Chars:
-
-Chart of Octal Codes for Characters
-===================================
-
-The characters and their octal codes in the Standard and ISOLatin1
-encoded fonts are shown in
-Figure :ref:`Octal codes for Standard and ISO `. Light red areas signify
-codes reserved for control characters. In order to use all the extended
-characters (shown in the light green boxes) you need to set
-:term:`PS_CHAR_ENCODING` to Standard+ or ISOLatin1+ in your :doc:`/gmt.conf` file [29]_.
-
-**Download PDF version:** :download:`GMT Standard+ and ISOLation+ octal codes `
-
-.. _Octal_codes_stand_iso:
-
-.. figure:: /_images/GMT_App_F_stand+_iso+.*
- :width: 500 px
- :align: center
-
- Octal codes and corresponding symbols for StandardEncoding (left) and ISOLatin1Encoding (right) fonts.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_App_F_stand+_iso+.txt
-
-The chart for the Symbol character set (GMT font number 12) and Pifont
-ZapfDingbats character set (font number 34) are presented in
-Figure :ref:`Octal codes for Symbol and ZapfDingbats ` below. The octal code
-is obtained by appending the column value to the \\??
-value, e.g., :math:`\partial` is \\266 in the Symbol
-font. The euro currency symbol is \\240 in the Symbol
-font and will print if your printer supports it (older printer's
-firmware will not know about the euro).
-
-**Download PDF version:** :download:`GMT Symbol and ZapfDingbats octal codes `
-
-.. _Octal_codes_symbol_zap:
-
-.. figure:: /_images/GMT_App_F_symbol_dingbats.*
- :width: 500 px
- :align: center
-
- Octal codes and corresponding symbols for Symbol (left) and ZapfDingbats (right) fonts.
-
-.. toggle::
-
- Here is the source script for the figure above:
-
- .. literalinclude:: /_verbatim/GMT_App_F_symbol_dingbats.txt
-
-Footnote
---------
-
-.. [29]
- If you chose SI units during the installation then the default
- encoding is ISOLatin1+, otherwise it is Standard+.
diff --git a/6.2.0rc1/_sources/cookbook/ogrgmt-format.rst.txt b/6.2.0rc1/_sources/cookbook/ogrgmt-format.rst.txt
deleted file mode 100644
index f8b61fb8199..00000000000
--- a/6.2.0rc1/_sources/cookbook/ogrgmt-format.rst.txt
+++ /dev/null
@@ -1,394 +0,0 @@
-.. _OGR_compat:
-
-The GMT Vector Data Format for OGR Compatibility
-================================================
-
-Background
-----------
-
-The National Institute for Water and Atmospheric Research (NIWA) in New
-Zealand has funded the implementation of a GMT driver (read and write)
-for the OGR package. OGR is an Open Source toolkit for accessing or
-reformatting vector (spatial) data stored in a variety of formats and is
-part of the. The intention was to enable the easy rendering (using
-GMT) of spatial data held in non-\ GMT formats, and the export of
-vector data (e.g., contours) created by GMT for use with other GIS and
-mapping packages. While **ogr2ogr** has had the capability to write
-this new format since 2009, GMT 4 did not have the capability to use
-the extra information.
-
-GMT now allows for more advanced vector data, including donut
-polygons (polygons with holes) and aspatial attribute data. At the same
-time, the spatial data implementation will not disrupt older GMT 4
-programs since all the new information are written via comments.
-
-The identification of spatial feature types in GMT files generally
-follows the technical description, (which is largely consistent with the
-OGC SFS specification). This specification provides for non-topological
-point, line and polygon (area) features, as well as multipoint,
-multiline and multipolygon features, and was written by
-`Brent Wood `_
-based on input from Paul Wessel and others on the GMT team.
-
-The OGR/GMT format
-------------------
-
-Several key properties of the OGR/GMT format is summarized below:
-
-- All new data fields are stored as comment lines, i.e., in lines
- starting with a "#". OGR/GMT files are therefore compatible with
- GMT 4 binaries, which will simply ignore this new information.
-
-- To be consistent with current practice in GMT, data fields are
- represented as whitespace-separated strings within the comments, each
- identified by the "@" character as a prefix, followed by a single
- character identifying the content of the field. To avoid confusion
- between words and strings, the word (field) separator within strings
- will be the "\|" (pipe or vertical bar) character.
-
-- Standard UNIX "\\" escaping is used, such as \\n for newline in a string.
-
-- All new data are stored before the spatial data (coordinates) in the
- file, so when any GMT program is processing the coordinate data
- for a feature, it will already have parsed any non-spatial
- information for each feature, which may impact on how the spatial
- data is treated (e.g., utilizing the aspatial attribute data for a
- feature to control symbology).
-
-- The first comment line must specify the version of the OGR/GMT data
- format, to allow for future changes or enhancements to be supported
- by future GMT programs. This document describes v1.0.
-
-- For consistency with other GIS formats (such as shapefiles) the
- OGR/GMT format explicitly contains a field specifying whether the
- features are points, linestrings or polygons, or the "multi" versions
- of these. (Other shapefile feature types will not be supported at
- this stage). At present, GMT programs are informed of this via
- command line parameters. This will now be explicit in the data file,
- but does not preclude command line switches setting symbologies for
- plotting polygons as lines (perimeters) or with fills, as is
- currently the practice.
-
-- Note that what is currently called a "multiline" (multi-segment) file
- in GMT parlance is generally a set of "lines" in shapefile/OGR
- usage. A multiline in this context is a single feature comprising
- multiple lines. For example, all the transects from a particular
- survey may be stored as lines, each with it's own attribute set, such
- as transect number, date/time, etc. They may also be stored as a
- single multiline feature with one attribute set, such as trip ID.
- This difference is explicitly stored in the data in OGR/shapefiles,
- but currently specified only on the command line in GMT. This
- applies also to points and polygons. The GMT equivalent to
- {multipoint, multiline, multipolygon} datatypes is multiple
- GMT files, each comprising a single {multipoint, multiline,
- multipolygon} feature.
-
-- The new GMT vector data files includes a header comment specifying
- the type of spatial features it contains, as well as the description
- of the aspatial attribute data to be associated with each feature.
- Unlike the shapefile format, which stores the spatial and aspatial
- attribute data in separate files, the GMT format will store all
- data in a single file.
-
-- All the features in a GMT file must be of the same type.
-
-OGR/GMT Metadata
-----------------
-
-Several pieces of metadata information must be present in the header of
-the OGR/GMT file, followed by both spatial and aspatial data. In this
-section we look at the metadata.
-
-Format version
-~~~~~~~~~~~~~~
-
-The comment header line will include a version identifier providing for
-possible different versions in future. It is indicated by the **@V**
-sequence.
-
-+-----------+---------------+--------------------------------------------------------------------+
-| **Code** | **Argument** | **Description** |
-+===========+===============+====================================================================+
-| V | GMT1.0 | Data in this file is stored using v1.0 of the OGR/GMT data format |
-+-----------+---------------+--------------------------------------------------------------------+
-
-An OGR/GMT file must therefore begin with the line
-
- ::
-
- # @VGMT1.0
-
-Parsing of the OGR/GMT format is only activated if the version
-code-sequence has been found.
-
-Geometry types
-~~~~~~~~~~~~~~
-
-The words and characters used to specify the geometry type (preceded by
-the **@G** code sequence on the header comment line), are listed in
-Table :ref:`geometries `.
-
-.. _tbl-geometries:
-
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| **Code** | **Geometry** | **Description** |
-+==========+=================+=======================================================================================+
-| G | POINT | File with point features |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| | | (Each point will have it's own attribute/header line preceding the point coordinates) |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| G | MULTIPOINT | File with a single multipoint feature |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| | | (All the point features are a single multipoint, with the same attribute/header |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| | | information) |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| G | LINESTRING | File with features comprising multiple single lines |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| | | (Effectively the current GMT multiline file, each line feature will have it's own |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| | | attribute and header data) |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| G | MULTILINESTRING | File with features comprising a multiline |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| | | (All the line features in the file are a single multiline feature, only one attribute |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| | | and header which applies to all the lines) |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| G | POLYGON | File with one or more polygons |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| | | (Similar to a line file, except the features are closed polygons) |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| G | MULTIPOLYGON | File with a single multipolygon |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-| | | (Similar to a GMT multiline file, except the feature is a closed multipolygon) |
-+----------+-----------------+---------------------------------------------------------------------------------------+
-
-An example GMT polygon file header using this specification (in format 1.0) is
-
- ::
-
- # @VGMT1.0 @GPOLYGON
-
-Domain and map projections
-~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The new format will also support region and projection information. The
-region will be stored in GMT **-R** format (i.e., **-R**\ *W/E/S/N*,
-where the *W/E/S/N* values represent the extent of features); the **@R**
-code sequence marks the domain information. A sample region header is:
-
- ::
-
- # @R150/190/-45/-54
-
-Projection information will be represented as four optional strings,
-prefixed by **@J** (J being the GMT character for projection
-information. The **@J** code will be followed by a character identifying
-the format, as shown in Table :ref:`projectspec `.
-
-.. _tbl-projectspec:
-
-+------------+-------------------------------------------------------------------------------------------------+
-| **Code** | **Projection Specification** |
-+============+=================================================================================================+
-| @Je | EPSG code for the projection |
-+------------+-------------------------------------------------------------------------------------------------+
-| @Jg | A string representing the projection parameters as used by GMT |
-+------------+-------------------------------------------------------------------------------------------------+
-| @Jp | A string comprising the PROJ parameters representing the projection parameters |
-+------------+-------------------------------------------------------------------------------------------------+
-| @Jw | A string comprising the OGR WKT (well known text) representation of the projection parameters |
-+------------+-------------------------------------------------------------------------------------------------+
-
-Sample projection strings are:
-
- ::
-
- # @Je4326 @JgX @Jp"+proj=longlat +ellps=WGS84+datum=WGS84 +no_defs"
- # @Jw"GEOGCS[\"WGS84\",DATUM[\"WGS_1984\",SPHEROID\"WGS84\",6378137,\
- 298.257223563,AUTHORITY[\"EPSG\",\"7030\"]],TOWGS84[0,0,0,0,0,0,0],
- AUTHORITY[\"EPSG\",\"6326\"]],PRIMEM[\"Greenwich\",0,\
- AUTHORITY[\"EPSG\",\"8901\"]],UNIT[\"degree\",0.01745329251994328,\
- AUTHORITY[\"EPSG\",\"9122\"]],AUTHORITY[\"EPSG\",\"4326\"]]"
-
-Note that an OGR-generated file will not have a **@Jg** string, as OGR
-does not have any knowledge of the GMT projection specification
-format. GMT supports at least one of the other formats to provide
-interoperability with other Open Source related GIS software packages.
-One relatively simple approach, (with some limitations), would be a
-lookup table matching EPSG codes to GMT strings.
-
-Declaration of aspatial fields
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-The string describing the aspatial field names associated with the
-features is flagged by the **@N** prefix.
-
-+------------+-----------------------------+-----------------------------------------------------------------+
-| **Code** | **Argument** | **Description** |
-+============+=============================+=================================================================+
-| N | word\|\ word\|\ word | A "\|" -separated string of names of the attribute field names |
-+------------+-----------------------------+-----------------------------------------------------------------+
-
-Any name containing a space must be quoted. The **@N** selection must be
-combined with a matching string specifying the data type for each of the
-named fields, using the **@T** prefix.
-
-+------------+-----------------------------+-------------------------------------------------------------+
-| **Code** | **Argument** | **Description** |
-+============+=============================+=============================================================+
-| T | word\|\ word\|\ word | A "\|" -separated string of the attribute field data types |
-+------------+-----------------------------+-------------------------------------------------------------+
-
-Available datatypes should largely follow the shapefile (DB3)
-specification, including **string**, **integer**, **double**,
-**datetime**, and **logical** (boolean). In OGR/GMT vector files, they
-will be stored as appropriately formatted text strings.
-
-An example header record containing all these is
-
- ::
-
- # @VGMT1.0 @GPOLYGON @Nname|depth|id @Tstring|double|integer
-
-OGR/GMT Data
-------------
-
-All generic fields must be at the start of the file before any
-feature-specific content (feature attribute data follow the metadata, as
-do the feature coordinates, separated by a comment line comprising "#
-FEATURE_DATA". Provided each string is formatted as specified, and
-occurs on a line prefixed with "#" (i.e., is a comment), the format is
-free form, in that as many comment lines as desired may be used, with
-one or more parameter strings in any order in any line. E.g., one
-parameter per line, or all parameters on one line.
-
-Embedding aspatial data
-~~~~~~~~~~~~~~~~~~~~~~~
-
-Following this header line is the data itself, both aspatial and
-spatial. For line and polygon (including multiline and multipolygon)
-data, features are separated using a predefined character, by default
-">". For point (and multipoint) data, no such separator is required. The
-comment line containing the aspatial data for each feature will
-immediately precede the coordinate line(s). Thus in the case of lines
-and polygons, it will immediately follow the ">" line. The data line
-will be a comment flag ("#") followed by **@D**, followed by a string of
-"\|"-separated words comprising the data fields defined in the
-header record.
-
-To allow for names and values containing spaces, such string items among
-the **@N** or **@D** specifiers must be enclosed in double quotes.
-(Where double quotes or pipe characters are included in the string, they
-must be escaped using "\\"). Where any data values are
-null, they will be represented as no characters between the field
-separator, (e.g., #@D\|\|\|). A Sample header
-and corresponding data line for points are
-
- ::
-
- # @VGMT1.0 @GPOINT @Nname|depth|id @Tstring|double|integer
- # @D"Point 1"|-34.5|1
-
-while for a polygon it may look like
-
- ::
-
- # @VGMT1.0 @GPOLYGON @Nname|depth|id @Tstring|double|integer
- >
- # @D"Area 1"|-34.5|1
-
-Polygon topologies
-~~~~~~~~~~~~~~~~~~
-
-New to GMT is the concept of polygon holes. Most other formats do
-support this structure, so that a polygon is specified as a sequence of
-point defining the perimeter, optionally followed by similar coordinate
-sequences defining any holes (the "donut" polygon concept).
-
-To implement this in a way which is compatible with previous
-GMT versions, each polygon feature must be able to be identified as
-the outer perimeter, or an inner ring (hole). This is done using a
-**@P** or **@H** on the data comment preceding the polygon coordinates.
-The **@P** specifies a new feature boundary (perimeter), any following
-**@H** polygons are holes, and must be within the preceding **@P**
-polygon (as described in the shapefile specification). Any **@H**
-polygons will NOT have any **@D** values, as the aspatial attribute data
-pertain to the entire feature, the **@H** polygons are not new polygons,
-but are merely a continuation of the definition of the same feature.
-**Note**: The perimeter and the hole(s) must have different handedness.
-E.g., if the perimeter goes counter-clockwise then the holes must go
-clockwise, and vice versa. This is important to follow if you are creating
-such features manually.
-
-Examples
---------
-
-Sample point, line and polygon files are (the new data structures are in
-lines starting with "#" in strings prefixed with "@"). Here is a typical
-point file:
-
- ::
-
- # @VGMT1.0 @GPOINT @Nname|depth|id
- # @Tstring|double|integer
- # @R178.43/178.5/-57.98/-34.5
- # @Je4326
- # @Jp"+proj=longlat +ellps=WGS84 +datum=WGS84+no_defs"
- # FEATURE_DATA
- # @D"point 1"|-34.5|1
- 178.5 -45.7
- # @D"Point 2"|-57.98|2
- 178.43 -46.8
- ...
-
-Next is an example of a line file:
-
- ::
-
- # @VGMT1.0 @GLINESTRING @Nname|depth|id
- # @Tstring|double|integer
- # @R178.1/178.6/-48.7/-45.6
- # @Jp"+proj=longlat +ellps=WGS84 +datum=WGS84+no_defs"
- # FEATURE_DATA
- > -W0.25p
- # @D"Line 1"|-50|1
- 178.5 -45.7
- 178.6 -48.2
- 178.4 -48.7
- 178.1 -45.6
- > -W0.25p
- # @D"Line 2"|-57.98|$
- 178.43 -46.8
- ...
-
-Finally we show an example of a polygon file:
-
- ::
-
- # @VGMT1.0 @GPOLYGON @Npolygonname|substrate|id @Tstring|string|integer
- # @R178.1/178.6/-48.7/-45.6
- # @Jj@Jp"+proj=longlat +ellps=WGS84 +datum=WGS84+no_defs"
- # FEATURE_DATA
- > -Gblue -W0.25p
- # @P
- # @D"Area 1"|finesand|1
- 178.1 -45.6
- 178.1 -48.2
- 178.5 -48.2
- 178.5 -45.6
- 178.1 -45.6
- >
- # @H
- # First hole in the preceding perimeter, so is technically still
- # part of the same geometry, despite the preceding > character.
- # No attribute data is provided, as this is inherited.
- 178.2 -45.4
- 178.2 -46.5
- 178.4 -46.5
- 178.4 -45.4
- 178.2 -45.4
- >
- # @P
- ...
diff --git a/6.2.0rc1/_sources/cookbook/one-liner.rst.txt b/6.2.0rc1/_sources/cookbook/one-liner.rst.txt
deleted file mode 100644
index 0bfce5db6e5..00000000000
--- a/6.2.0rc1/_sources/cookbook/one-liner.rst.txt
+++ /dev/null
@@ -1,45 +0,0 @@
-GMT Modern Mode One-line Commands
-=================================
-
-Background
-----------
-
-Modern mode simplifies GMT by placing all commands between gmt :doc:`/begin` and gmt :doc:`/end`.
-However, for very simple plots, such as a simple coastline map that only requires a call to
-a single module, having to place that command between **begin** and **end** makes the documentation
-longer and more tedious to maintain. Because of this, we have implemented a special and quick way
-to begin and end GMT modern mode within a single call to a plotting module. When the plot finishes
-we automatically call gmt :doc:`/end` with the show command to display the plot(s).
-
-One-liner Syntax
-----------------
-
-The syntax for this special mechanism involves a few simple rules:
-
-#. The command must be a plotting command and modern mode syntax (e.g., :doc:`/coast` instead
- of :doc:`/pscoast`, no **-O**, **-K**, **-P** options, etc.) is required.
-#. The plot file and type must be specified with the special option **-format** *prefix*,
- where **format** is one or more comma-separated graphics extensions from the list of
- allowable graphics formats :ref:`formats `, and *prefix* is the prefix of
- the illustration (the extension is automatically set by the chosen format). Note the
- leading hyphen for the format option.
-
-Examples
---------
-
-To make a Mercator coastline plot of France, painting land blue, adding map frame and
-requesting both PDF and png graphics output with prefix France1, try
-
- ::
-
- gmt coast -RFR -JM6i -Gblue -B -pdf,png France1
-
-To make a DEM map of France using the default DEM color table and data from the 1m global
-grid, making a JPG plot called France2, try
-
- ::
-
- gmt grdimage @earth_relief_01m -RFR -JM6i -B -jpg France2
-
-The automatic display of the plot can be deactivated by setting an environmental parameter
-named GMT_END_SHOW to off.
diff --git a/6.2.0rc1/_sources/cookbook/options.rst.txt b/6.2.0rc1/_sources/cookbook/options.rst.txt
deleted file mode 100644
index 6c700e7bf9d..00000000000
--- a/6.2.0rc1/_sources/cookbook/options.rst.txt
+++ /dev/null
@@ -1,1113 +0,0 @@
-Standardized command line options
-=================================
-
-Most of the programs take many of the same arguments such as those related
-to setting the data region, the map projection, etc. The switches in
-Table :ref:`switches ` have the same meaning in all the programs (although
-some programs may not use all of them). These options will be described
-here as well as in the manual pages, as is vital that you understand how
-to use these options. We will present these options in order of
-importance (some are used a lot more than others).
-
-.. _tbl-switches:
-
-+--------------------------------+--------------------------------------------------------------------+
-| Standard option | Description |
-+================================+====================================================================+
-| :ref:`-B ` | Define tick marks, annotations, and labels for basemaps and axes |
-+--------------------------------+--------------------------------------------------------------------+
-| :ref:`-J ` | Select a map projection or coordinate transformation |
-+--------------------------------+--------------------------------------------------------------------+
-| :ref:`-R ` | Define the extent of the map/plot region |
-+--------------------------------+--------------------------------------------------------------------+
-| :ref:`-U ` | Plot a time-stamp, by default in the lower left corner of page |
-+--------------------------------+--------------------------------------------------------------------+
-| :ref:`-V ` | Select verbose operation; reporting on progress |
-+--------------------------------+--------------------------------------------------------------------+
-| :ref:`-X ` | Set the *x*-coordinate for the plot origin on the page |
-+--------------------------------+--------------------------------------------------------------------+
-| :ref:`-Y ` | Set the *y*-coordinate for the plot origin on the page |
-+--------------------------------+--------------------------------------------------------------------+
-| :ref:`-a ` | Associate aspatial data from OGR/GMT files with data columns |
-+--------------------------------+--------------------------------------------------------------------+
-| :ref:`-b ` | Select binary input and/or output |
-+--------------------------------+--------------------------------------------------------------------+
-| :ref:`-c ` | Advance plot focus to selected (or next) subplot panel |
-+--------------------------------+--------------------------------------------------------------------+
-| :ref:`-d