我有多个GEOTIFF文件,希望将其与BitMiracle.LibTiff.NET一起使用C#一起缝到一张大高程图上。到目前为止,我已经使用类似于this的代码加载了GEOTIFF。但是,当我简单地将它们并排放置在一起时,每个GEOTIFF文件的高程图似乎偏移了某个值(每个GEOTIFF文件不同),但是当我解码这些标签时,得到以下信息(示例): / p>
GEOTIFF_MODELPIXELSCALETAG double [3]:0.4、0.4、0
GEOTIFF_MODELTIEPOINTTAG double [6]:0、0、0、503000、6190000、0
表示在z方向(高程值)没有缩放或偏移
当我在python中使用以下代码时,在GEOTIFFS之间没有偏移,并且当我加载生成的单个大型GEOTIFF时,一切看上去都与我期望的一样:
import rasterio as rio
from rasterio.merge import merge
from rasterio.plot import show
import glob
tiffns = glob.glob(r'c:\GeoTiffs\*.tif')
src_files_to_merged = []
for fp in tiffns:
tif = rio.open(fp)
src_files_to_stich.append(tif)
stiched, out_trans = merge(src_files_to_stich)
show(stiched, cmap='terrain')
out_meta = tif.meta.copy()
out_meta.update({"driver": "GTiff","height": stiched.shape[1],"width": stiched.shape[2],"transform": out_trans})
outfn = r'c:\StichedGeoTiffs.tif'
with rio.open(outfn,"w",**out_meta) as dest:
dest.write(stiched)
所以..我想在c#中获得相同的结果。 有人有线索吗?
(我猜一个不完善的选择是计算两个边界上的均值差(离群值,然后校正其中之一,但这总是意味着有错误的风险...)