îÁÓÔÏÑÝÉÊ ÄÏËÕÍÅÎÔ ÏÐÉÓÙ×ÁÅÔ ÍÏÄÅÌØ ÄÁÎÎÙÈ, ÐÒÉÍÅÎÑÅÍÕÀ ÂÉÂÌÉÏÔÅËÏÊ GDAL: ÒÁÚÎÏ×ÉÄÎÏÓÔÉ ÉÎÆÏÒÍÁÃÉÉ, ËÏÔÏÒÁÑ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØÓÑ × ÉÓÔÏÞÎÉËÁÈ ÄÁÎÎÙÈ GDAL, Á ÔÁËÖÅ ÉÈ ÓÅÍÁÎÔÉËÁ.
îÁÂÏÒ ÄÁÎÎÙÈ (ÐÒÅÄÓÔÁ×ÌÑÅÍÙÊ ËÌÁÓÓÏÍ GDALDataset) ÓÏÓÔÏÉÔ ÉÚ Ó×ÑÚÁÎÎÙÈ ÒÁÓÔÒÏ×ÙÈ ËÁÎÁÌÏ×, Á ÔÁËÖÅ ÎÅËÏÔÏÒÏÊ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ, ÏÂÝÅÊ ÄÌÑ ×ÓÅÇÏ ÎÁÂÏÒÁ. ÷ ÞÁÓÔÎÏÓÔÉ, ÎÁÂÏÒ ÄÁÎÎÙÈ ÉÍÅÅÔ ÐÏÎÑÔÉÅ ÒÁÚÍÅÒÁ (ÛÉÒÉÎÙ É ×ÙÓÏÔÙ), ÏÂÝÅÍ ÄÌÑ ×ÓÅÈ ËÁÎÁÌÏ×. îÁÂÏÒ ÄÁÎÎÙÈ ÔÁËÖÅ ÏÔ×ÅÞÁÅÔ ÚÁ ÇÅÏÇÒÁÆÉÞÅÓËÕÀ ÐÒÉ×ÑÚËÕ É ÕËÁÚÁÎÉÅ ËÏÏÒÄÉÎÁÔÎÏÊ ÓÉÓÔÅÍÙ, ÔÁËÖÅ ÏÂÝÉÍÉ ÄÌÑ ×ÓÅÈ ËÁÎÁÌÏ×. óÁÍ ÎÁÂÏÒ ÄÁÎÎÙÈ ÍÏÖÅÔ ÉÍÅÔØ ÁÓÓÏÃÉÉÒÏ×ÁÎÎÙÊ ËÏÍÐÌÅËÔ ÍÅÔÁÄÁÎÎÙÈ: ÓÐÉÓÏË ÐÁÒ ËÌÀÞ/ÚÎÁÞÅÎÉÅ × ÆÏÒÍÅ ASCIIZ ÓÔÒÏË
úÁÍÅÔÉÍ, ÞÔÏ ÎÁÂÏÒ ÄÁÎÎÙÈ GDAL É ÍÏÄÅÌØ ÒÁÓÔÒÏ×ÙÈ ËÁÎÁÌÏ× ÉÚÎÁÞÁÌØÎÏ ÂÁÚÉÒÕÅÔÓÑ ÎÁ ÓÐÅÃÉÆÉËÁÃÉÉ ÒÅÇÕÌÑÒÎÙÈ ÐÏËÒÙÔÉÊ ËÏÎÓÏÒÃÉÕÍÁ OpenGIS.
çÅÏÇÒÁÆÉÞÅÓËÉÅ ËÏÏÒÄÉÎÁÔÎÙÅ ÓÉÓÔÅÍÙ ÐÒÅÄÓÔÁ×ÌÑÀÔÓÑ × ×ÉÄÅ ÓÔÒÏË OpenGIS WKT (Well Known Text). ôÁËÁÑ ÓÔÒÏËÁ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ:
-
ïÂÝÅÅ ÎÁÚ×ÁÎÉÅ ËÏÏÒÄÉÎÁÔÎÏÊ ÓÉÓÔÅÍÙ.
-
îÁÚ×ÁÎÉÅ ÇÅÏÇÒÁÆÉÞÅÓËÏÊ ËÏÏÒÄÉÎÁÔÎÏÊ ÓÉÓÔÅÍÙ.
-
éÄÅÎÔÉÆÉËÁÔÏÒ ÓÉÓÔÅÍÙ ËÏÏÒÄÉÎÁÔ.
-
îÁÚ×ÁÎÉÅ ÜÌÌÉÐÓÏÉÄÁ, ÂÏÌØÛÁÑ ÐÏÌÕÏÓØ, ÓÖÁÔÉÅ.
-
îÁÚ×ÁÎÉÅ ÎÁÞÁÌØÎÏÇÏ ÍÅÒÉÄÉÁÎÁ É ÅÇÏ ÓÍÅÝÅÎÉÅ ÏÔÎÏÓÉÔÅÌØÎÏ çÒÉÎ×ÉÞÓËÏÇÏ.
-
îÁÚ×ÁÎÉÅ ÐÒÏÅËÃÉÉ (ÎÁÐÒÉÍÅÒ, Transverse Mercator).
-
óÐÉÓÏË ÐÁÒÁÍÅÔÒÏ× ÐÒÏÅËÃÉÉ (ÎÁÐÒÉÍÅÒ, ÐÏÌÏÖÅÎÉÅ ÏÓÅ×ÏÇÏ ÍÅÒÉÄÉÁÎÁ).
-
îÁÚ×ÁÎÉÅ ÅÄÉÎÉà ÉÚÍÅÒÅÎÉÑ É ÍÎÏÖÉÔÅÌØ ÄÌÑ ÐÅÒÅÈÏÄÁ Ë ÍÅÔÒÁÍ ÉÌÉ ÒÁÄÉÁÎÁÍ.
-
îÁÚ×ÁÎÉÑ É ÐÏÒÑÄÏË ÓÌÅÄÏ×ÁÎÉÑ ËÏÏÒÄÉÎÁÔÎÙÈ ÏÓÅÊ.
-
ëÏÄÙ ÄÌÑ ×ÙÛÅÐÅÒÅÞÉÓÌÅÎÎÙÈ ÐÁÒÁÍÅÔÒÏ× ÐÏ ÐÒÅÄÏÐÒÅÄÅÌ£ÎÎÙÍ ÔÁÂÌÉÃÁÍ, ÔÁËÉÍ, ËÁË ÔÁÂÌÉÃÙ EPSG.
äÏÐÏÌÎÉÔÅÌØÎÙÅ Ó×ÅÄÅÎÉÑ Ï ÏÐÒÅÄÅÌÅÎÉÑÈ ËÏÏÒÄÉÎÁÔÎÙÈ ÓÉÓÔÅÍ Ó ÐÏÍÏÝØÀ ÓÔÒÏË OpenGIS WKT É ÓÐÏÓÏÂÁÈ ÒÁÂÏÔÙ Ó ÎÉÍÉ ÍÏÖÎÏ ÎÁÊÔÉ × ÒÁÚÄÅÌÅ osr_tutorial, Á ÔÁËÖÅ × ÄÏËÕÍÅÎÔÁÃÉÉ ÎÁ ËÌÁÓÓ OGRSpatialReference.
ëÏÏÒÄÉÎÁÔÎÁÑ ÓÉÓÔÅÍÁ, ×ÏÚ×ÒÁÝÁÅÍÁÑ ÍÅÔÏÄÏÍ GDALDataset::GetProjectionRef() ÏÐÉÓÙ×ÁÅÔ ÇÅÏÄÅÚÉÞÅÓËÉÅ ËÏÏÒÄÉÎÁÔÙ, ÏÐÒÅÄÅÌÑÅÍÙÅ Ó ÐÏÍÏÝØÀ ÍÁÔÒÉÃÙ ÁÆÆÉÎÎÏÇÏ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ, ×ÏÚ×ÒÁÝÁÅÍÏÊ ÆÕÎËÃÉÅÊ GDALDataset::GetGeoTransform(). ëÏÏÒÄÉÎÁÔÎÁÑ ÓÉÓÔÅÍÁ, ×ÏÚ×ÒÁÝÁÅÍÁÑ ÍÅÔÏÄÏÍ GDALDataset::GetGCPProjection() ÏÐÉÓÙ×ÁÅÔ ÇÅÏÄÅÚÉÞÅÓËÉÅ ËÏÏÒÄÉÎÁÔÙ ÎÁÚÅÍÎÙÈ ËÏÎÔÒÏÌØÎÙÈ ÔÏÞÅË, ÓÐÉÓÏË ËÏÔÏÒÙÈ ÄÁ£Ô ÍÅÔÏÄ GDALDataset::GetGCPs().
úÁÍÅÔÉÍ, ÞÔÏ ÐÕÓÔÁÑ ÓÔÒÏËÁ (""), ×ÏÚ×ÒÁÝÁÅÍÁÑ × ËÁÞÅÓÔ×Å ÏÐÒÅÄÅÌÅÎÉÑ ËÏÏÒÄÉÎÁÔÎÏÊ ÓÉÓÔÅÍÙ, ÏÚÎÁÞÁÅÔ ÏÔÓÕÔÓÔ×ÉÅ ÉÎÆÏÒÍÁÃÉÉ Ï ËÏÏÒÄÉÎÁÔÎÏÊ ÓÉÓÔÅÍÅ.
óÕÝÅÓÔ×ÕÅÔ Ä×Á ÓÐÏÓÏÂÁ ÚÁÄÁÔØ Ó×ÑÚØ ÍÅÖÄÕ ÔÏÞËÁÍÉ ÒÁÓÔÒÁ (× ÔÅÒÍÉÎÁÈ ÓÔÒÏËÁ/ÓÔÏÌÂÅÃ) É ÇÅÏÄÅÚÉÞÅÓËÉÍÉ ËÏÏÒÄÉÎÁÔÁÍÉ. ðÅÒ×ÙÊ É ÎÁÉÂÏÌÅÅ ÞÁÓÔÏ ÉÓÐÏÌØÚÕÅÍÙÊ --- ÜÔÏ ÁÆÆÉÎÎÏÅ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ. ÷ÔÏÒÏÊ ÐÒÅÄÐÏÌÁÇÁÅÔ ÉÓÐÏÌØÚÏ×ÁÎÉÅ ÎÁÚÅÍÎÙÈ ËÏÎÔÒÏÌØÎÙÈ ÔÏÞÅË.
íÁÔÒÉÃÁ ÁÆÆÉÎÎÏÇÏ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ ÓÏÓÔÏÉÔ ÉÚ ÛÅÓÔÉ ËÏÜÆÆÉÃÉÅÎÔÏ×, ×ÏÚ×ÒÁÝÁÅÍÙÈ ÍÅÔÏÄÏÍ GDALDataset::GetGeoTransform(), ËÏÔÏÒÁÑ ÏÔÏÂÒÁÖÁÅÔ ÓÔÒÏËÕ/ÓÔÏÌÂÅÃ × ÐÒÏÓÔÒÁÎÓÔ×Ï ÇÅÏÄÅÚÉÞÅÓËÉÈ ËÏÏÒÄÉÎÁÔ ÐÏ ÓÌÅÄÕÀÝÅÍÕ ÓÏÏÔÎÏÛÅÎÉÀ:
Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2)
Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5)
÷ ÓÌÕÞÁÅ ÉÚÏÂÒÁÖÅÎÉÊ, ×ÅÒÈÎÑÑ ÒÁÍËÁ ËÏÔÏÒÙÈ ÏÒÉÅÎÔÉÒÏ×ÁÎÁ ÎÁ ÓÅ×ÅÒ, ËÏÜÆÆÉÃÉÅÎÔÙ GT(2) É GT(4) ÒÁ×ÎÙ ÎÕÌÀ, GT(1) ÒÁ×ÅÎ ÛÉÒÉÎÅ ÐÉËÓÅÌÁ, Á GT(5) --- ÅÇÏ ×ÙÓÏÔÅ. ëÏÏÒÄÉÎÁÔÙ (GT(0),GT(3)) ÚÁÄÁÀÔ ÐÏÌÏÖÅÎÉÅ ×ÅÒÈÎÅÇÏ ÌÅ×ÏÇÏ ÕÇÌÁ ×ÅÒÈÎÅÇÏ ÌÅ×ÏÇÏ ÐÉËÓÅÌÁ ÒÁÓÔÒÁ.
úÁÍÅÔÉÍ, ÞÔÏ ËÏÏÒÄÉÎÁÔÙ ÓÔÒÏËÁ/ÓÔÏÌÂÅà ÍÏÇÕÔ ÐÒÉÎÉÍÁÔØ ÚÎÁÞÅÎÉÑ ÏÔ (0.0,0.0) × ×ÅÒÈÎÅÍ ÌÅ×ÏÍ ÕÇÌÕ ×ÅÒÈÎÅÇÏ ÌÅ×ÏÇÏ ÐÉËÓÅÌÁ ÄÏ (ÛÉÒÉÎÁ_× ÐÉËÓÅÌÁÈ,×ÙÓÏÔÁ_×_ÐÉËÓÅÌÁÈ) × ÐÒÁ×ÏÍ ÎÉÖÎÅÍ ÕÇÌÕ ÐÒÁ×ÏÇÏ ÎÉÖÎÅÇÏ ÐÉËÓÅÌÁ. ðÏÌÏÖÅÎÉÅ ÃÅÎÔÒÁ ×ÅÒÈÎÅÇÏ ÌÅ×ÏÇÏ ÐÉËÓÅÌÁ × ÔÅÒÍÉÎÁÈ ÓÔÒÏËÁ/ÓÔÏÌÂÅà ÂÕÄÅÔ, ÔÁËÉÍ ÏÂÒÁÚÏÍ, (0.5,0.5).
îÁÂÏÒ ÄÁÎÎÙÈ ÍÏÖÅÔ ÉÍÅÔØ ÓÐÉÓÏË ËÏÎÔÒÏÌØÎÙÈ ÔÏÞÅË, Ó×ÑÚÙ×ÁÀÝÉÈ ÏÄÎÕ ÉÌÉ ÎÅÓËÏÌØËÏ ÔÏÞÅË ÒÁÓÔÒÁ Ó ÉÈ ÇÅÏÄÅÚÉÞÅÓËÉÍÉ ËÏÏÒÄÉÎÁÔÁÍÉ. ÷ÓÅ ËÏÎÔÒÏÌØÎÙÅ ÔÏÞËÉ ÚÁÄÁÎÙ × ÏÄÎÏÊ É ÔÏÊ ÖÅ ËÏÏÒÄÉÎÁÔÎÏÊ ÓÉÓÔÅÍÅ, ×ÏÚ×ÒÁÝÁÅÍÏÊ ÍÅÔÏÄÏÍ GDALDataset::GetGCPProjection(). ëÁÖÄÁÑ ËÏÎÔÒÏÌØÎÁÑ ÔÏÞËÁ (ÏÐÉÓÙ×ÁÅÍÁÑ ËÌÁÓÓÏÍ GDAL_GCP) ÓÏÄÅÒÖÉÔ ÓÌÅÄÕÀÝÅÅ:
typedef struct
{
char *pszId;
char *pszInfo;
double dfGCPPixel;
double dfGCPLine;
double dfGCPX;
double dfGCPY;
double dfGCPZ;
} GDAL_GCP;
óÔÒÏËÁ pszId ÄÏÌÖÎÁ ÂÙÔØ ÕÎÉËÁÌØÎÙÍ (É, ÞÁÓÔÏ, ÎÏ ÎÅ ×ÓÅÇÄÁ, ÞÉÓÌÏ×ÙÍ) ÉÄÅÎÔÉÆÉËÁÔÏÒÏÍ ÄÌÑ ËÏÎÔÒÏÌØÎÏÊ ÔÏÞËÅ × ÓÐÉÓËÅ ÔÏÞÅË ÄÁÎÎÏÇÏ ÎÁÂÏÒÁ. pszInfo --- ÜÔÏ ÏÂÙÞÎÏ ÐÕÓÔÁÑ ÓÔÒÏËÁ, ÎÏ ÏÎÁ ÔÁËÖÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÌÀÂÏÊ ×ÓÐÏÍÏÇÁÔÅÌØÎÙÊ ÔÅËÓÔ, ÏÔÎÏÓÑÝÉÊÓÑ Ë ÄÁÎÎÏÊ ÔÏÞËÅ. ôÅÏÒÅÔÉÞÅÓËÉ ÜÔÏ ÐÏÌÅ ÍÏÖÅÔ ÔÁËÖÅ ÓÏÄÅÒÖÁÔØ ÍÁÛÉÎÎÏ ÞÉÔÁÅÍÕÀ ÉÎÆÏÒÍÁÃÉÀ Ï ÓÔÁÔÕÓÅ ÄÁÎÎÏÊ ÔÏÞËÉ, ÏÄÎÁËÏ × ÎÁÓÔÏÑÝÉÊ ÍÏÍÅÎÔ ÜÔÁ ×ÏÚÍÏÖÎÏÓÔØ ÎÅ ÒÅÁÌÉÚÏ×ÁÎÁ.
ëÏÏÒÄÉÎÁÔÙ (dfGCPPixel, dfGCPLine) ÚÁÄÁÀÔ ÐÏÌÏÖÅÎÉÅ ÔÏÞËÉ ÎÁ ÒÁÓÔÒÅ. ëÏÏÒÄÉÎÁÔÙ (dfGCPX, dfGCPY, dfGCPZ) ÚÁÄÁÀÔ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÕÀ ÐÒÉ×ÑÚËÕ ÔÏÞËÉ Ë ÇÅÏÄÅÚÉÞÅÓËÉÍ ËÏÏÒÄÉÎÁÔÁÍ (ËÏÏÒÄÉÎÁÔÁ Z ÞÁÓÔÏ ÂÙ×ÁÅÔ ÎÕÌ£Í).
íÏÄÅÌØ ÄÁÎÎÙÈ GDAL ÎÅ ÓÏÄÅÒÖÉÔ ÍÅÈÁÎÉÚÍÁ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÑ, ÐÏÌÕÞÁÅÍÏÇÏ ÉÚ ËÏÎÔÒÏÌØÎÙÈ ÔÏÞÅË, --- ÜÔÏ ÏÓÔÁ×ÌÅÎÏ ÄÌÑ ÐÒÉÌÏÖÅÎÉÊ ÂÏÌÅÅ ×ÙÓÏËÏÇÏ ÕÒÏ×ÎÑ. ïÂÙÞÎÏ ÄÌÑ ÜÔÏÇÏ ÐÒÉÍÅÎÑÀÔÓÑ ÐÏÌÉÎÏÍÙ ÏÔ 1-ÇÏ ÄÏ 5-ÇÏ ÐÏÒÑÄËÁ.
ïÂÙÞÎÏ ÎÁÂÏÒ ÄÁÎÎÙÈ ÓÏÄÅÒÖÉÔ ÌÉÂÏ ÁÆÆÉÎÎÏÅ ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ, ÌÉÂÏ ËÏÎÔÒÏÌØÎÙÅ ÔÏÞËÉ, ÌÉÂÏ ÎÉÞÅÇÏ. ÷ ÒÅÄËÉÈ ÓÌÕÞÁÑÈ ÍÏÖÅÔ ÐÒÉÓÕÔÓÔ×Ï×ÁÔØ É ÔÏ, É ÄÒÕÇÏÅ, ÔÏÇÄÁ ÎÅ ÏÐÒÅÄÅÌÅÎÏ, ËÁËÏÊ ÉÚ ÓÐÏÓÏÂÏ× ÉÍÅÅÔ ÐÒÅÉÍÕÝÅÓÔ×Ï.
íÅÔÁÄÁÎÎÙÅ --- ÜÔÏ ×ÓÐÏÍÏÇÁÔÅÌØÎÙÅ ÄÁÎÎÙÅ, ÈÒÁÎÑÝÉÅÓÑ × ×ÉÄÅ ÐÁÒ ËÌÀÞ/ÚÎÁÞÅÎÉÅ. éÈ ÓÏÓÔÁ× ÏÐÒÅÄÅÌÑÅÔÓÑ ÆÏÒÍÁÔÏÍ ÈÒÁÎÅÎÉÑ ÄÁÎÎÙÈ É ÐÒÉÌÏÖÅÎÉÅÍ. ëÌÀÞÉ ÄÏÌÖÎÙ ÂÙÔØ "ÈÏÒÏÛÉÍÉ" ÌÅËÓÅÍÁÍÉ (ÂÅÚ ÐÒÏÂÅÌØÎÙÈ É ÓÐÅÃÉÁÌØÎÙÈ ÓÉÍ×ÏÌÏ×). úÎÁÞÅÎÉÑ ÍÏÇÕÔ ÉÍÅÔØ ÌÀÂÕÀ ÄÌÉÎÕ É ÓÏÄÅÒÖÁÔØ ÌÀÂÙÅ ÓÉÍ×ÏÌÙ, ÚÁ ÉÓËÌÀÞÅÎÉÅÍ ÎÕÌÅ×ÏÇÏ ÓÉÍ×ÏÌÁ ASCII.
íÅÈÁÎÉÚÍ ÕÐÒÁ×ÌÅÎÉÑ ÍÅÔÁÄÁÎÎÙÍÉ ÈÏÒÏÛÏ ÏÐÔÉÍÉÚÉÒÏ×ÁÎ ÄÌÑ ÒÁÂÏÔÙ Ó ÏÞÅÎØ ÂÏÌØÛÉÍÉ ÂÌÏËÁÍÉ ÄÁÎÎÙÈ. ïÄÎÁËÏ ÒÁÂÏÔÁ Ó ÍÅÔÁÄÁÎÎÙÍÉ, ÐÒÅ×ÙÛÁÀÝÉÍÉ × ÒÁÚÍÅÒÅ 100KiB ÓËÏÒÅÅ ×ÓÅÇÏ ÐÒÉ×ÅÄ£Ô Ë ÓÎÉÖÅÎÉÀ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ.
÷ ÂÕÄÕÝÅÍ ÐÒÅÄÐÏÌÁÇÁÅÔÓÑ ××ÅÄÅÎÉÅ ÎÅÓËÏÌØËÉÈ ÓÔÁÎÄÁÒÔÎÙÈ ËÌÀÞÅÊ Ó ÐÒÅÄÏÐÒÅÄÅÌ£ÎÎÏÊ ÓÅÍÁÎÔÉËÏÊ, ÏÄÎÁËÏ × ÎÁÓÔÏÑÝÉÊ ÍÏÍÅÎÔ ÔÁËÏ×ÙÈ ÎÅÔ.
îÅËÏÔÏÒÙÅ ÆÏÒÍÁÔÙ ÄÁÎÎÙÈ ÓÏÄÅÒÖÁÔ ÓÏÂÓÔ×ÅÎÎÙÅ ÍÅÔÁÄÁÎÎÙÅ, × ÔÏ ×ÒÅÍÑ ËÁË ÄÒÁÊ×ÅÒÙ ÄÌÑ ÄÒÕÇÉÈ ÆÏÒÍÁÔÏ× ÍÏÇÕÔ ÏÔÏÂÒÁÖÁÔØ ÐÏÌÑ, ÓÐÅÃÉÆÉÞÎÙÅ ÄÌÑ ÄÁÎÎÏÇÏ ÆÏÒÍÁÔÁ, × ÚÁÐÉÓÉ ÍÅÔÁÄÁÎÎÙÈ. îÁÐÒÉÍÅÒ, ÄÒÁÊ×ÅÒ TIFF ×ÏÚ×ÒÁÝÁÅÔ ÓÏÄÅÒÖÉÍÏÅ ÎÅËÏÔÏÒÙÈ ÉÎÆÏÒÍÁÃÉÏÎÎÙÈ ÔÅÇÏ× × ×ÉÄÅ ÍÅÔÁÄÁÎÎÙÈ, ×ËÌÀÞÁÑ ÐÏÌÅ ÄÁÔÁ/×ÒÅÍÑ, ËÏÔÏÒÏÅ ÂÕÄÅÔ ×ÙÇÌÑÄÅÔØ ËÁË:
TIFFTAG_DATETIME=1999:05:11 11:29:56
òÁÓÔÒÏ×ÙÊ ËÁÎÁÌ ÏÐÉÓÙ×ÁÅÔÓÑ × GDAL Ó ÐÏÍÏÝØÀ ËÌÁÓÓÁ GDALRasterBand. ïÎ ÎÅ ÏÂÑÚÁÔÅÌØÎÏ ÄÏÌÖÅÎ ÐÒÅÄÓÔÁ×ÌÑÔØ ×Ó£ ÉÚÏÂÒÁÖÅÎÉÅ. îÁÐÒÉÍÅÒ, 24-ÂÉÔÎÏÅ RGB-ÉÚÏÂÒÁÖÅÎÉÅ ÄÏÌÖÎÏ ÂÙÔØ ÐÒÅÄÓÔÁ×ÌÅÎÏ ËÁË ÎÁÂÏÒ ÄÁÎÎÙÈ Ó ÔÒÅÍÑ ËÁÎÁÌÁÍÉ, ÐÏ ÏÄÎÏÍÕ ÄÌÑ ËÒÁÓÎÏÊ, ÚÅÌ£ÎÏÊ É ÓÉÎÅÊ ËÏÍÐÏÎÅÎÔÙ.
òÁÓÔÒÏ×ÙÊ ËÁÎÁÌ ÉÍÅÅÔ ÓÌÅÄÕÀÝÉÅ Ó×ÏÊÓÔ×Á:
-
ûÉÒÉÎÁ É ×ÙÓÏÔÁ × ÐÉËÓÅÌÁÈ É ÓÔÒÏËÁÈ. ïÎÉ ÂÕÄÕÔ ÔÅÍÉ ÖÅ ÓÁÍÙÍÉ, ÞÔÏ É ÄÌÑ ×ÓÅÇÏ ÎÁÂÏÒÁ ÄÁÎÎÙÈ, ÅÓÌÉ ÜÔÏ ËÁÎÁÌ × ÐÏÌÎÏÍ ÒÁÚÒÅÛÅÎÉÉ.
-
ôÉÐ ÄÁÎÎÙÈ (GDALDataType). ïÄÉÎ ÉÚ ×ÅÝÅÓÔ×ÅÎÎÙÈ (Byte, UInt16, Int16, UInt32, Int32, Float32, Float64), ÉÌÉ ËÏÍÐÌÅËÓÎÙÈ ÔÉÐÏ× CInt16, CInt32, CFloat32, and CFloat64.
-
òÁÚÍÅÒ ÂÌÏËÁ. ðÒÅÄÐÏÞÔÉÔÅÌØÎÙÊ (ÎÁÉÂÏÌÅÅ ÜÆÆÅËÔÉ×ÎÙÊ) ÒÁÚÍÅÒ ÂÌÏËÁ ÄÁÎÎÙÈ ÄÌÑ ÓÞÉÔÙ×ÁÎÉÑ. äÌÑ ÉÚÏÂÒÁÖÅÎÉÊ, ÈÒÁÎÑÝÉÈÓÑ ÐÏÓÔÒÏÞÎÏ, ÜÔÏ × ÂÏÌØÛÉÎÓÔ×Å ÓÌÕÞÁÅ× ÂÕÄÅÔ ÏÄÎÁ ÓÔÒÏËÁ.
-
óÐÉÓÏË ÍÅÔÁÄÁÎÎÙÈ × ×ÉÄÅ ÐÁÒ ËÌÀÞ/ÚÎÁÞÅÎÉÅ × ÔÏÍ ÖÅ ÆÏÒÍÁÔÅ, ÞÔÏ É ÄÌÑ ×ÓÅÇÏ ÎÁÂÏÒÁ ÄÁÎÎÙÈ, ÎÏ ÓÏÄÅÒÖÁÝÉÈ ÉÎÆÏÒÍÁÃÉÀ, ÓÐÅÃÉÆÉÞÎÕÀ ÄÌÑ ÄÁÎÎÏÇÏ ËÁÎÁÌÁ.
-
îÅÏÂÑÚÁÔÅÌØÎÁÑ ÓÔÒÏËÁ ÏÐÉÓÁÎÉÑ.
-
îÅÏÂÑÚÁÔÅÌØÎÙÊ ÓÐÉÓÏË ËÁÔÅÇÏÒÉÊ (ÎÁÐÒÉÍÅÒ, ÎÁÚ×ÁÎÉÊ ËÌÁÓÓÏ× ÎÁ ÔÅÍÁÔÉÞÅÓËÏÊ ËÁÒÔÅ).
-
îÅÏÂÑÚÁÔÅÌØÎÙÅ ÍÉÎÉÍÁÌØÎÏÅ É ÍÁËÓÉÍÁÌØÎÏÅ ÚÎÁÞÅÎÉÅ.
-
îÅÏÂÑÚÁÔÅÌØÎÙÅ ËÁÌÉÂÒÏ×ÏÞÎÙÅ ËÏÜÆÆÉÃÉÅÎÔÙ ÄÌÑ ÐÅÒÅÓÞ£ÔÁ ÚÎÁÞÅÎÉÊ ÒÁÓÔÒÁ × ÆÉÚÉÞÅÓËÉÅ ×ÅÌÉÞÉÎÙ (ÎÁÐÒÉÍÅÒ, ÐÅÒÅ×ÏÄ ÏÔÓÞ£ÔÏ× ×ÙÓÏÔÙ × ÍÅÔÒÙ).
-
îÅÏÂÑÚÁÔÅÌØÎÏÅ ÎÁÚ×ÁÎÉÅ ÅÄÉÎÉà ÉÚÍÅÒÅÎÉÑ. îÁÐÒÉÍÅÒ, ÜÔÏ ÐÏÌÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÅÄÉÎÉÃÙ ÉÚÍÅÒÅÎÉÑ ×ÙÓÏÔÙ ÄÌÑ ÍÏÄÅÌÉ ÒÅÌØÅÆÁ.
-
ã×ÅÔÏ×ÁÑ ÉÎÔÅÒÐÒÅÔÁÃÉÑ ËÁÎÁÌÁ. ïÄÎÁ ÉÚ:
-
GCI_Undefined: ÐÏ ÕÍÏÌÞÁÎÉÀ, ÎÅ ÏÐÒÅÄÅÌÅÎÏ.
-
GCI_GrayIndex: ÏÄÉÎÏÞÎÏÅ ÉÚÏÂÒÁÖÅÎÉÅ × ÏÔÔÅÎËÁÈ ÓÅÒÏÇÏ.
-
GCI_PaletteIndex: ÉÚÏÂÒÁÖÅÎÉÅ Ó Ã×ÅÔÏ×ÏÊ ÐÁÌÉÔÒÏÊ.
-
GCI_RedBand: ËÒÁÓÎÁÑ ËÏÍÐÏÎÅÎÔÁ RGB- ÉÌÉ RGBA-ÉÚÏÂÒÁÖÅÎÉÑ.
-
GCI_GreenBand: ÚÅÌ£ÎÁÑ ËÏÍÐÏÎÅÎÔÁ RGB- ÉÌÉ RGBA-ÉÚÏÂÒÁÖÅÎÉÑ.
-
GCI_BlueBand: ÓÉÎÑÑ ËÏÍÐÏÎÅÎÔÁ RGB- ÉÌÉ RGBA-ÉÚÏÂÒÁÖÅÎÉÑ.
-
GCI_AlphaBand: ÁÌØÆÁ-ËÁÎÁÌ RGBA-ÉÚÏÂÒÁÖÅÎÉÑ.
-
GCI_HueBand: ËÏÍÐÏÎÅÎÔÁ Ã×ÅÔÁ HLS-ÉÚÏÂÒÁÖÅÎÉÑ.
-
GCI_SaturationBand: ËÏÍÐÏÎÅÎÔÁ ÎÁÓÙÝÅÎÎÏÓÔÉ HLS-ÉÚÏÂÒÁÖÅÎÉÑ.
-
GCI_LightnessBand: ËÏÍÐÏÎÅÎÔÁ ÑÒËÏÓÔÉ HLS-ÉÚÏÂÒÁÖÅÎÉÑ.
-
GCI_CyanBand: ÇÏÌÕÂÁÑ ËÏÍÐÏÎÅÎÔÁ CMY- ÉÌÉ CMYK-ÉÚÏÂÒÁÖÅÎÉÑ.
-
GCI_MagentaBand: ÐÕÒÐÕÒÎÁÑ ËÏÍÐÏÎÅÎÔÁ CMY- ÉÌÉ CMYK-ÉÚÏÂÒÁÖÅÎÉÑ.
-
GCI_YellowBand: Ö£ÌÔÁÑ ËÏÍÐÏÎÅÎÔÁ CMY- ÉÌÉ CMYK-ÉÚÏÂÒÁÖÅÎÉÑ.
-
GCI_BlackBand: Þ£ÒÎÁÑ ËÏÍÐÏÎÅÎÔÁ CMY- ÉÌÉ CMYK-ÉÚÏÂÒÁÖÅÎÉÑ.
-
ôÁÂÌÉÃÁ Ã×ÅÔÏ× (ÐÁÌÉÔÒÁ), ËÏÔÏÒÁÑ ÂÕÄÅÔ ÐÏÄÒÏÂÎÏ ÏÐÉÓÁÎÁ ÎÉÖÅ.
-
éÎÆÏÒÍÁÃÉÑ Ï ÕÍÅÎØÛÅÎÎÙÈ ÏÂÚÏÒÎÙÈ ÉÚÏÂÒÁÖÅÎÉÑÈ (ÐÉÒÁÍÉÄÁÈ).
ôÁÂÌÉÃÁ Ã×ÅÔÏ× ÓÏÓÔÏÉÔ ÉÚ ÎÕÌÑ ÉÌÉ ÎÅÓËÏÌØËÉÈ ÚÁÐÉÓÅÊ, ÏÐÉÓÙ×ÁÅÍÙÈ ÎÁ ÑÚÙËÅ C × ×ÉÄÅ ÓÌÅÄÕÀÝÅÊ ÓÔÒÕËÔÕÒÙ:
typedef struct
{
/- ÓÅÒÙÊ, ËÒÁÓÎÙÊ, ÇÏÌÕÂÏÊ ÉÌÉ Ã×ÅÔ -/
short c1;
/- ÚÅÌ£ÎÙÊ, ÐÕÒÐÕÒÎÙÊ ÉÌÉ ÑÒËÏÓÔØ -/
short c2;
/- ÓÉÎÉÊ, Ö£ÌÔÙÊ ÉÌÉ ÎÁÓÙÝÅÎÎÏÓÔØ -/
short c3;
/- ÁÌØÆÁ-ËÁÎÁÌ ÉÌÉ Þ£ÒÎÙÊ -/
short c4;
} GDALColorEntry;
ôÁÂÌÉÃÁ Ã×ÅÔÏ× ÔÁËÖÅ ÉÍÅÅÔ ÉÎÄÉËÁÔÏÒ ÉÎÔÅÒÐÒÅÔÁÃÉÉ (GDALPaletteInterp), ËÏÔÏÒÙÊ ÕËÁÚÙ×ÁÅÔ ÎÁ ÔÏ, ËÁË ÐÁÒÁÍÅÔÒÙ c1/c2/c3/c4 ÄÏÌÖÎÙ ÂÙÔØ ÐÒÏÉÎÔÅÒÐÒÅÔÉÒÏ×ÁÎÙ ÐÒÉÌÏÖÅÎÉÅÍ. üÔÏÔ ÉÎÄÉËÁÔÏÒ ÍÏÖÅÔ ÐÒÉÎÉÍÁÔØ ÓÌÅÄÕÀÝÉÅ ÚÎÁÞÅÎÉÑ:
-
GPI_Gray: óÞÉÔÁÔØ c1 ÚÎÁÞÅÎÉÅÍ × ÇÒÁÄÁÃÉÑÈ ÓÅÒÏÇÏ.
-
GPI_RGB: óÞÉÔÁÔØ c1 ËÒÁÓÎÙÍ, c2 ÚÅÌ£ÎÙÍ, c3 ÓÉÎÉÍ, Á c4 --- ÁÌØÆÁ-ËÁÎÁÌÏÍ.
-
GPI_CMYK: óÞÉÔÁÔØ c1 ÇÏÌÕÂÙÍ, c2 ÐÕÒÐÕÒÎÙÍ, c3 Ö£ÌÔÙÍ, c4 Þ£ÒÎÙÍ.
-
GPI_HLS: óÞÉÔÁÔØ c1 Ã×ÅÔÏÍ, c2 ÑÒËÏÓÔØÀ, c3 ÎÁÓÙÝÅÎÎÏÓÔØÀ.
äÌÑ Ó×ÑÚÙ×ÁÎÉÑ Ã×ÅÔÁ Ó ÐÉËÓÅÌÅÍ ÚÎÁÞÅÎÉÅ ÜÔÏÇÏ ÐÉËÓÅÌÁ ÉÓÐÏÌØÚÕÅÔÓÑ × ËÁÞÅÓÔ×Å ÉÎÄÅËÓÁ × ÔÁÂÌÉÃÅ Ã×ÅÔÏ×. üÔÏ ÚÎÁÞÉÔ, ÞÔÏ Ã×ÅÔÁ ×ÓÅÇÄÁ ÒÁÓÐÏÌÁÇÁÀÔÓÑ × ÔÁÂÌÉÃÅ ÎÁÞÉÎÁÑ Ó ÎÕÌÅ×ÏÇÏ ÉÎÄÅËÓÁ É ÄÁÌÅÅ ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ. îÅ ÓÕÝÅÓÔ×ÕÅÔ ÍÅÈÁÎÉÚÍÁ ÄÌÑ ÐÒÅÄ×ÁÒÉÔÅÌØÎÏÇÏ ÍÁÓÛÔÁÂÉÒÏ×ÁÎÉÑ ÚÎÁÞÅÎÉÊ, ÐÒÅÖÄÅ, ÞÅÍ ÂÕÄÅÔ ÐÒÉÍÅÎÅÎÁ ÔÁÂÌÉÃÁ Ã×ÅÔÏ×.
ëÁÎÁÌ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÏÂÚÏÒÎÙÅ ÉÚÏÂÒÁÖÅÎÉÑ. ëÁÖÄÏÅ ÏÂÚÏÒÎÏÅ ÉÚÏÂÒÁÖÅÎÉÅ ÐÒÅÄÓÔÁ×ÌÅÎÏ × ×ÉÄÅ ÏÔÄÅÌØÎÏÇÏ ËÁÎÁÌÁ GDALRasterBand. òÁÚÍÅÒ ÏÂÚÏÒÎÏÇÏ ÉÚÏÂÒÁÖÅÎÉÑ (× ÔÅÒÍÉÎÁÈ ÓÔÒÏË É ÓÔÏÌÂÃÏ×) ÂÕÄÅÔ ÏÔÌÉÞÁÔØÓÑ ÏÔ ÂÁÚÏ×ÏÇÏ ÐÏÌÎÏÒÁÚÍÅÒÎÏÇÏ ÒÁÓÔÒÁ, ÏÄÎÁËÏ ÇÅÏÇÒÁÆÉÞÅÓËÉ ÏÎÉ ÂÕÄÕÔ ÐÏËÒÙ×ÁÔØ ÏÄÉÎ É ÔÏÔ ÖÅ ÒÅÇÉÏÎ.
ïÂÚÏÒÎÙÅ ÉÚÏÂÒÁÖÅÎÉÑ ÐÒÉÍÅÎÑÀÔÓÑ ÄÌÑ ÂÙÓÔÒÏÇÏ ÏÔÏÂÒÁÖÅÎÉÑ ÕÍÅÎØÛÅÎÎÙÈ ËÏÐÉÊ ÒÁÓÔÒÁ, ×ÍÅÓÔÏ ÔÏÇÏ, ÞÔÏÂÙ ÞÉÔÁÔØ ÐÏÌÎÏÒÁÚÍÅÒÎÏÅ ÉÚÏÂÒÁÖÅÎÉÅ Ó ÐÏÓÌÅÄÕÀÝÉÍ ÍÁÓÛÔÁÂÉÒÏ×ÁÎÉÅÍ.
ëÁÎÁÌ ÔÁËÖÅ ÏÂÌÁÄÁÅÔ Ó×ÏÊÓÔ×ÏÍ HasArbitraryOverviews, ËÏÔÏÒÏÅ ÒÁ×ÎÏ TRUE, ÅÓÌÉ ÒÁÓÔÒ ÍÏÖÅÔ ÂÙÔØ ÜÆÆÅËÔÉ×ÎÏ ÐÒÏÞÉÔÁÎ × ÌÀÂÏÍ ÒÁÚÒÅÛÅÎÉÉ, ÎÏ ÎÅ ÉÍÅÅÔ Þ£ÔËÉÈ ÐÉÒÁÍÉÄÁÌØÎÙÈ ÓÌÏ£×. ôÁËÉÍÉ Ó×ÏÊÓÔ×ÁÍÉ ÏÂÌÁÄÁÀÔ ÎÅËÏÔÏÒÙÅ ÁÌÇÏÒÉÔÍÙ ËÏÄÉÒÏ×ÁÎÉÑ ÉÚÏÂÒÁÖÅÎÉÊ Ó ÐÏÍÏÝØÀ âðæ É ×ÅÊ×ÌÅÔÏ×, Á ÔÁËÖÅ ÉÚÏÂÒÁÖÅÎÉÑ, ÐÏÌÕÞÁÅÍÙÅ ÉÚ ×ÎÅÛÎÉÈ ÉÓÔÏÞÎÉËÏ× (ÔÁËÉÈ, ËÁË OGDI), ËÏÇÄÁ ÍÁÓÛÔÁÂÉÒÏ×ÁÎÉÅ ÐÒÏÉÚ×ÏÄÉÔÓÑ ÎÁ ÕÄÁÌ£ÎÎÏÊ ÓÔÏÒÏÎÅ.