gdal geotiff 座標計算

2021-08-02 07:57:35 字數 1791 閱讀 5060

tif中座標計算的方法如下,其中col表示該座標點處影象的列號,row表示該座標點處影象的行號,

比如影象左上角col為0,row為0,影象右下角col為影象寬度,row為影象高度。

xgeo = gt(0) + col*gt(1) + row*gt(2)

ygeo = gt(3) + col*gt(4) + row*gt(5)

col表示該座標點處影象的列號

row表示該座標點處影象的行號

x:該點x座標

y:該點y座標

upleft:影象左上角座標

upright:影象右上角座標

downleft:影象左下角座標

downright:影象右下角座標

則根據計算公式:

gt(0)=左上點的xgeo=upleft(x)

gt(3)=坐上點的ygeo=upleft(y)

uprighg(x)=gt(0)+srcwidth*gt(1)+0*gt(2)

=>

gt(1)=(upright(x)-gt(0))/srcwidth;

downleft(x)=gt(0)+0*gt(1)+srcheight*gt(2)

=>gt(2)=(downleft(x)-gt(0))/srcheight

upright(y)=gt(3)+srcwidth*gt(4)+0*gt(5)

=>gt(4)=(upright(y)-gt(3))/srcwidth;

downleft(y)=gt(3)+0*gt(4)+srcheight*gt(5)

=>gt(5)=(downleft(y)-gt(3))/srcheight;

驗證:右下角(假設影象為平行四邊形)

downright=[downleft(x)+(upright(x)-upleft(x)),

upright(y)-(upleft(y)-downleft(y))]

downright(x)=gt(0) + col*gt(1) + row*gt(2)

=upleft(x)+srcwidth*(upright(x)-gt(0))/srcwidth+srcheight*(downleft(x)-gt(0))/srcheight

=upleft(x)+upright(x)-gt(0)+downleft(x)-gt(0)

=upleft(x)+upright(x)-upleft(x)+downleft(x)-upleft(x)

=upright(x)+downleft(x)-upleft(x)

證明成立(係數gt(0),gt(1),gt(2)正確)

downright(y)=upright(y)-upleft(y)+downleft(y)

downright(y)=gt(3) + col*gt(4) + row*gt(5)

=upleft(y)+srcwidth*gt(4)+srcheight*gt(5)

=upleft(y)+srcwidht*(upright(y)-gt(3))/srcwidth+srcheight*(downleft(y)-gt(3))/srcheight

=upleft(y)+upright(y)-gt(3)+downleft(y)-gt(3)

=upleft(y)+upright(y)-upleft(y)+downleft(y)-upleft(y)

=upright(y)+downleft(y)-upleft(y)

證明成立(係數gt(3),gt(4),gt(5)正確)

xps座標計算

xscale,sin sin yscale,offsetx,offsety def extractglyphs glyphs,dstpagedic global order canvasrendertransformmatrix 1,0,0,1,0,0 glyphsparent glyphs.get...

mysql座標計算 MySQL計算兩座標距離並排序

環境 mysql5.6 表結構及資料 drop table if exists locationpoint create table locationpoint id int 11 not null auto increment,province varchar 20 not null,city v...

PHP計算座標距離

php 計算兩點地理座標之間的距離 param decimal longitude1 起點經度 param decimal latitude1 起點緯度 param decimal longitude2 終點經度 param decimal latitude2 終點緯度 param int unit...