合并/拼接/拼接多个GEOTIFF文件c#

时间:2019-06-03 07:26:28

标签: c# python geotiff libtiff libtiff.net

我有多个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#中获得相同的结果。 有人有线索吗?

(我猜一个不完善的选择是计算两个边界上的均值差(离群值,然后校正其中之一,但这总是意味着有错误的风险...)

0 个答案:

没有答案