gmt
gmt copied to clipboard
inset -R -J -X -Y history
Not sure it is a bug but it seems that inset
doesn't retain history within its block. Is it on purpose ?
Guillaume
... nevermind ... sorry
Ok ... I've retried ... it does conserve -X -Y but neither -R or -J
gmt inset begin -DjBR+w3.5c+o0.25c/0.25c
gmt coast -Rg -JG0/0/3c+w45 -Dc -Ggray -A5000 -Bg -Wfaint -X0.25 -Y0.25
gmt plot <<- EOF
> delta-line -Wthin,black -Am
0 -89
0 89
EOF
gmt inset end
It should retain -R -J once set inside the inset box. Could you help by supplying a full test script?
gmt begin test png
gmt basemap -R0/1/0/1 -JX10c -B
gmt inset begin -DjBR+w3.5c+o0.25c/0.25c
gmt coast -Rg -JG0/0/3c+w45 -Dc -Ggray -A5000 -Bg -Wfaint -X0.25 -Y0.25
gmt plot <<- EOF
> delta-line -Wthin,black -Am
0 -89
0 89
EOF
gmt inset end
gmt end show
If I interpret correctly the black line placement, it seems that -JG0/0/3c is not respected (it takes 3.5c)
I think for gmt inset you have to stick with the rules for the inset:
- The projection should be given with ? as the scale or width
- Use -M if you want to remove some of the inset space for margin padding
A successful script based on what you have above does not use -X -Y at all and looks like this:
gmt begin test png
gmt basemap -R0/1/0/1 -JX10c -B
gmt inset begin -DjBR+w3.5c+o0.25c/0.25c -F+pfaint -M0.25c
gmt coast -Rg -JG0/0/?+w45 -Dc -Ggray -A5000 -Bg -Wfaint
gmt plot <<- EOF
> delta-line -Wthin,black -Am
0 -89
0 89
EOF
gmt inset end
gmt end show
Yet there are clearly documentation issues here, so I am not quite sure what is the best way forward here. Here are a bunch of concerns or issues.
- Because the user cannot easily know what map projection scale/width to use in the inset, we intended this to be a free parameter, signified with ?. However, I also played (later) with the idea of simply leaving it off (
-JG0/0/+w45
) but that is not tolerant (yet) of the trailing modifier. So for this projection, ? works, for other projections without a modifier you can leave it off. Not consistent. - We have some inset tests that fails to use ? and specifies the projection width (that match the inset width). Lame.
- Our inset man page example uses the "skip the arg" format.
- The size of the inset is eaten away by the amounts specified in -M. In contrast, for subplots this is done via -C since in subplot, -M is used for the margins between panels, not space inside them. We should fix this in inset.
My proposal is this:
- If possible, we should allow -X -Y to actually work since there may be things that can only be done that way. I am not sure if this is doable or too hard or easy without looking. Remember, we are playing with the individual history files to make this work in the first place. Clearly, in the above case, the shift of 0.25c did not happen until after the coast plot was done, which is why things are offset (
echo 0 0 | gmt plot -SE-200k -Gred
makes this clear). If it is not possible (or too hard for now) then we should reject the use of -X -Y inside insets. - We should replace the use of -M in inset with -C (but allow for -M due to backwards compatibility). Not sure what I was smoking at the time to select -M here in the first place.
- We need to be consistent in both parsing and documentation on whether it is ? or missing argument. I suspect this is the same issue in subplot.
So I would have to use something else than inset
in my case.
The red arrow in here can not, to the best of my knowledge, be plotted outside the geographic boundaries without -X, -Y (and eventually the projection change)
I am not completely done with this issue yet, but the intent is that you should be able to use -X -Y on commands inside your inset begin/end clause, but not with inset itself. There may be issues related to this as well but that is for the next steps. The key issue here is that gmt inset itself was never meant to take -X -Y.
There's an issue with ex44.sh after the recent inset changes. It's odd because the script does not use -X or -Y, but here are the error messages:
bash ex44.sh
inset [ERROR]: Unrecognized option -X
inset [ERROR]: Unrecognized option -Y
inset [ERROR]: Unrecognized option -X
inset [ERROR]: Unrecognized option -Y
inset [ERROR]: Unrecognized option -X
inset [ERROR]: Unrecognized option -Y
inset [ERROR]: Unrecognized option -X
inset [ERROR]: Unrecognized option -Y
Thanks, I will look at it later today or the weekend (busy day for other matters)
Thanks @PaulWessel, good luck ! (in the meantime I've bodged my code to circumvent the issue)