Why after grdblend ,the grid spacing changed?

Hello,friends
there has four data is 12.5m spacing,and i use grdblend command to blend them together,and the blendedfile shows it has a spacing of 12.5005167852m.
but the range was right ,it seemed to call a resample command,Why? and how i can get a 12.5m blended file?
Thanks a lot!
the four data ready to be blend:

AP_14636_FBD_F6850_RT1.dem.grd: Pixel node registration used [Cartesian grid]
AP_14636_FBD_F6850_RT1.dem.grd: Grid file format: cs = GMT netCDF format (16-bit integer, deprecated)
AP_14636_FBD_F6850_RT1.dem.grd: x_min: 766676.6875 x_max: 847651.6875 x_inc: 12.5 name:  n_columns: 6478
AP_14636_FBD_F6850_RT1.dem.grd: y_min: 8144894.25 y_max: 8218369.25 y_inc: 12.5 name:  n_rows: 5878
AP_14636_FBD_F6850_RT1.dem.grd: z_min: 36 z_max: 1293 name: meters**
 
AP_14636_FBD_F6860_RT1.dem.grd: Pixel node registration used [Cartesian grid]
AP_14636_FBD_F6860_RT1.dem.grd: Grid file format: cs = GMT netCDF format (16-bit integer, deprecated)
AP_14636_FBD_F6860_RT1.dem.grd: x_min: 754256.6875 x_max: 835469.1875 x_inc: 12.5 name:  n_columns: 6497
AP_14636_FBD_F6860_RT1.dem.grd: y_min: 8200034.25 y_max: 8273359.25 y_inc: 12.5 name:  n_rows: 5866
AP_14636_FBD_F6860_RT1.dem.grd: z_min: 44 z_max: 1292 name: meters
 
AP_15059_FBS_F6850_RT1.dem.grd: Pixel node registration used [Cartesian grid]
AP_15059_FBS_F6850_RT1.dem.grd: Grid file format: cs = GMT netCDF format (16-bit integer, deprecated)
AP_15059_FBS_F6850_RT1.dem.grd: x_min: 824462.9375 x_max: 905437.9375 x_inc: 12.5 name:  n_columns: 6478
AP_15059_FBS_F6850_RT1.dem.grd: y_min: 8144043 y_max: 8217493 y_inc: 12.5 name:  n_rows: 5876
AP_15059_FBS_F6850_RT1.dem.grd: z_min: -193 z_max: 1619 name: meters
 
AP_15059_FBS_F6860_RT1.dem.grd: Pixel node registration used [Cartesian grid]
AP_15059_FBS_F6860_RT1.dem.grd: Grid file format: cs = GMT netCDF format (16-bit integer, deprecated)
AP_15059_FBS_F6860_RT1.dem.grd: x_min: 811712.9375 x_max: 893225.4375 x_inc: 12.5 name:  n_columns: 6521
AP_15059_FBS_F6860_RT1.dem.grd: y_min: 8199403 y_max: 8272753 y_inc: 12.5 name:  n_rows: 5868
AP_15059_FBS_F6860_RT1.dem.grd: z_min: 44 z_max: 1292 name: meters

Blend command:(Notice i used -rp to declare a pixel node registration)

gmt grdblend blend.job -rp -Gblend.grd -R754256.6875/905437.9375/8144043.00/8273359.25

After Blend:

blend.grd: Pixel node registration used [Cartesian grid]
blend.grd: Grid file format: nf = GMT netCDF format (32-bit float), CF-1.7
blend.grd: x_min: 754256.6875 x_max: 905437.9375 x_inc: 12.5005167852 name:  n_columns: 12094
blend.grd: y_min: 8144043 y_max: 8273359.25 y_inc: 12.500362494 name:  n_rows: 10345
blend.grd: z_min: -194.100585938 z_max: 1645.43127441 name: z

The manul told :Any input grid that does not share the final output grid’s node registration and grid spacing will automatically be resampled ,but it obviously not that case.

is already non divisible by 12.5 intervals

gmt math -Q 905437.9375 754256.6875 SUB gives me 151181.25 which is clearly not a multiple of 12.5.

Thanks a lot,Then i tryed another range:
gmt grdblend blend.job -Gblend.grd -R759256.6875/900431.6875<U+202C>/8149043.00/8268355.5<U+202C>
Which is the multiple of 12.5,and the info of result:

blend.grd: Gridline node registration used [Cartesian grid]
blend.grd: Grid file format: nf = GMT netCDF format (32-bit float), CF-1.7
blend.grd: x_min: 759256.6875 x_max: 900437.9375 x_inc: 12.4994466578 name: n_columns: 11296
blend.grd: y_min: 8149043 y_max: 8268359.25 y_inc: 12.5003928759 name: n_rows: 9546
blend.grd: z_min: -164.104415894 z_max: 1642.68981934 name: z
blend.grd: scale_factor: 1 add_offset: 0
blend.grd: format: netCDF-4 chunk_size: 129,129 shuffle: on deflation_level: 3

the height also resampled!

Big Thanks! Professor! Then i tryed another range:
gmt grdblend blend.job -Gblend.grd -R759256.6875/900431.6875<U+202C>/8149043.00/8268355.5<U+202C>
Which is the multiple of 12.5,and the info of result:

blend.grd: Gridline node registration used [Cartesian grid]
blend.grd: Grid file format: nf = GMT netCDF format (32-bit float), CF-1.7
blend.grd: x_min: 759256.6875 x_max: 900437.9375 x_inc: 12.4994466578 name: n_columns: 11296
blend.grd: y_min: 8149043 y_max: 8268359.25 y_inc: 12.5003928759 name: n_rows: 9546
blend.grd: z_min: -164.104415894 z_max: 1642.68981934 name: z
blend.grd: scale_factor: 1 add_offset: 0
blend.grd: format: netCDF-4 chunk_size: 129,129 shuffle: on deflation_level: 3

How to choose a right range?
I want the result is 12.5m spacing and non resampled
I tried another software name global mapper and it return the result i wanted,
But i also hope to use gmt to do the same thing!

I can confirm the odd result of 12.500xxx. WIll look into it. It is as if floats and not doubles are used.

Wait a minute. Your -R is full of hidden control characters that switches the args around. Please the -R again without copy/paste from a web page or word doc or whatever you did. Works fine then.


I type them manually,and the result above also not the hoped

I think this is the result of a mix between grid and pixel registrations. Sometimes the blend is reported as grid and other as pixel. And about the difference from 12.5, see

(12.5 /2)/11294

ans =

      0.000553391181158137

which is the difference from 12.5 in your case above

Thanks Joaquim!
It will be better if there is any resolution.

Dear Joaquim:
another question,Please help

Thanks!

Not sure what you mean. Would need to check more closely, but it might happen that your case does not have a solution that does not reinterpolate (which is different from the 12.5 increment issue). If grid origins are not at integer steps of 12.5 from each other to do a blend some must be reinterpolated. The non 12.5 issue is a question -R and -r