Vairāk

Lat/lon punkta PostGIS rastra vērtība


Manā PostGIS 2.0 datu bāzē ir tifra rastrs. Es vēlos iegūt rastra vērtību noteiktā lat/lon punktā.

Man ir:

  • postgresql-9.1
  • postgis-2.0-svn ar rastra atbalstu
  • rastrs, kas importēts PostGIS, tā SRID ir 3035

Jūs varat pārveidot lat/lon punktu par rastra CRS, izmantojot ST_Transform (). Kopā vaicājums izskatās šādi:

ST_Vērtība (jūsu_izdevējs, ST_Transforms (ST_SetSRID (ST_MakePoint (garais, lat), 4326), 3035))

Funkcija ST_value:

http://postgis.net/docs/RT_ST_Value.html

atgriež rastra vērtību, kurai dots punkts x, y vai lat, lon.


Kamēr ST_Value darbojas, jums joprojām ir arī telpiski jāpievienojas šim punktam:

SELECT ST_Value (your_raster.rast, ST_Transform (ST_SetSRID (ST_MakePoint (lon, lat)), 4326), 3035)) FROM your_raster WHERE ST_Intersects (your_raster.rast, ST_SetSRID (ST_MakePoint (lon, lat), 4326), 3035))

Vai arī ar galdu:

SELECT ST_Value (your_raster.rast, ST_Transform (ST_SetSRID (ST_MakePoint (your_table.lon, your_table.lat), 4326), 3035)) NO your_raster PIEVIENOJieties savam_tabulam ON ST_Intersects (your_raster.rast, ST_SetSRID (ST_MakePoint (jūsu_tabula. ), 4326), 3035))

Matemātika jaunai režģu sistēmai

Eiklida vai punktveida ģeometrisko sistēmu pamatā ir ideja par a punkts. Punkts ir matemātiska konstrukcija, kurai nav ekvivalenta uz planētas. Piemēram, punkts neaizņem vietu, bet visi reālie objekti aizņem vietu kādā līmenī.

[attēls punktveida sistēmai]

Tomēr digitālo sistēmu pamatā ir ideja par diskrētu šūnu, kas satur kvantētu vērtību, parasti veselu skaitli. Šūna aizņem vietu. Turklāt, tā kā šūnai ir apgabals un tā var tikt sadalīta mazākās šūnās, tā var absorbēt virkni kļūdu ap punktu tādā veidā, kā to nevar uz punktu balstīta sistēma.

[attēls uz šūnu sistēmu]

Tā kā šūnas pilnīgāk attēlo ģeogrāfiju, masu un daudzumu, uz šūnām balstītas sistēmas ir noderīgākas ģeodatiem.

Procesu, kurā uz datiem balstīti dati (vai analogie dati) tiek pārveidoti matemātiskajās šūnās (vai digitālajos datos), sauc par režģi vai paraugu ņemšanu. Tas ir līdzīgs tam, kā digitālie ieraksti (CD) tiek veidoti no veciem ierakstiem: paraugu ņemšana ar ļoti smalku izšķirtspēju, pārveidošana par cipariem un pēc tam veicot digitalizēto datu analīzi un kļūdu labošanu.


Lat/lon punkta PostGIS rastra vērtība - ģeogrāfiskās informācijas sistēmas

Iepriekšējās nodaļās sniegtajos piemēros ģeodati bija atsevišķi mainīgie. Kartēšanas rīklodziņa un#x2122 programmatūra nodrošina arī vienkāršu veidu, kā parādīt, iegūt un apstrādāt vektoru karšu funkciju kolekcijas, kas sakārtotas ģeogrāfisko datu struktūras .

Ģeogrāfisko datu struktūra ir MATLAB ® struktūras masīvs, kurā ir viens elements katrai ģeogrāfiskai iezīmei. Katru objektu attēlo koordinātas un atribūti. Ģeogrāfisko datu struktūru, kurā ir ģeogrāfiskās koordinātas (platums un garums), sauc par a ģeostruktūra, un tādu, kurā ir kartes koordinātas (projicētas x un g ) sauc par a kartstruktūra. Ģeogrāfisko datu struktūrās ir tikai vektoru pazīmes, un tās nevar izmantot rastra datu glabāšanai (parastie vai ģeogrāfiski izvietotie datu režģi vai attēli).

Shapefiles

Ģeogrāfisko datu struktūras visbiežāk rodas, kad vektoru ģeodati tiek importēti no formas faila. Vides sistēmu pētniecības institūts izstrādāja vektoru ģeodatu formas faila formātu. Formas faili kodē koordinātas punktiem, daudzpunktiem, līnijām vai daudzstūriem kopā ar neģeometriskiem atribūtiem.

Formas fails atribūtus un koordinātas glabā atsevišķos failos, tas sastāv no galvenā faila, indeksa faila un xBASE faila. Visiem trim failiem ir vienāds bāzes nosaukums, un tie atšķiras attiecīgi ar paplašinājumiem .shp, .shx un .dbf. (Piemēram, ņemot vērā bāzes nosaukumu “concord_roads”, formas failu failu nosaukumi būtu “concord_roads.shp”, “concord_roads.shx” un “concord_roads.dbf”).

Ģeogrāfisko datu struktūru saturs

Funkcija shaperead nolasa vektoru iezīmes un atribūtus no formas faila un atgriež ģeogrāfisko datu struktūras masīvu. Funkcija shaperead nosaka atribūtu lauku nosaukumus izpildes laikā no formasfaila xBASE tabulas vai pēc izvēles, lietotāja norādītajiem parametriem. Ja formas faila atribūta nosaukumu nevar tieši izmantot kā lauka nosaukumu, shaperead piešķir laukam atbilstoši mainītu nosaukumu, parasti atstarpes aizstājot ar pasvītrojumiem.

Lauki ģeogrāfisko datu struktūrā

Viens no šiem formu veidiem: “Punkts”, “MultiPoint”, “Līnija” vai “Daudzstūris”.

Norāda minimālās un maksimālās objektu koordinātu vērtības katrā dimensijā šādā formā:

[min (X) min (Y) max (X) max (Y)]

Izlaists formas tipam “Punkts”.

1-by-N masīvs klases dubultā

rakstzīmju vektors vai skalārais skaitlis

Atribūta nosaukums, veids un vērtība.

Neobligāti. Parasti ir vairāki atribūti.

Shaperead funkcija to dara atbalstīt visus trīsdimensiju vai "izmērīto" formu veidus: "PointZ", "PointM", "MultipointZ", "MultipointM", "PolyLineZ", "PolyLineM", "PolygonZ", "PolylineM" vai "Multipatch". Turklāt, lai gan “nulles formas” funkcijas var būt “punkta”, “daudzpunktu”, “polilīnijas” vai “daudzstūra” formas failā, tās tiek ignorētas.

Polilīnijas un daudzstūra formas

Ģeogrāfisko datu struktūrās ar līniju vai daudzstūra ģeometriju atsevišķām funkcijām var būt vairākas daļas un#8212atvienoti līniju segmenti un daudzstūra gredzeni. Daļās var būt iekšējie gredzeni pretēji pulksteņrādītāja virzienam, kas iezīmē "caurumus". Lai to ilustrētu, skatiet sadaļu Daudzstūru izveide un parādīšana. Katra atvienotā daļa ir atdalīta no nākamās ar NaN X un Y (vai Lat un Lon) vektoros. Varat izmantot funkciju isShapeMultipart, lai noteiktu, vai objektam ir ar NaN atdalītas daļas.

Katra daudzpunktu vai NaN atdalīta daudzdaļīga līnija vai daudzstūra vienība veido vienu pazīmi, un līdz ar to katram atribūta laukam ir viena rakstzīmju vektors vai skalārā dubultā vērtība. Šādas pazīmes dažādām daļām nav iespējams piešķirt atšķirīgus atribūtus. Jebkurš rakstzīmju vektors vai ciparu atribūts, kas importēts kopā ar ģeostruktūru vai karšu struktūru, tiek attiecināts uz visām objekta daļām kopā.

Kartes un ģeostruktūras

Pēc noklusējuma shaperead atgriež kartstruktūru, kurā ir X un Y lauki. Tas ir pareizi, ja datu kopas koordinātas jau ir prognozētas (kartes koordinātu sistēmā). Pretējā gadījumā, ja datu kopu koordinātas ir neprojektētas (ģeogrāfiskajā koordinātu sistēmā), izmantojiet parametru un vērtību pāri “UseGeoCoords”, kas ir patiess, lai veidnes lasītājs atgrieztu ģeostruktūru ar Lon un Lat laukiem.

Koordinātu veidi. Ja nezināt, vai formas failā tiek izmantotas ģeogrāfiskās vai karšu koordinātas, varat izmēģināt šādas lietas:

Ja formas failā ir projekcijas fails (.prj), izmantojiet formu, lai iegūtu informāciju par koordinātu atsauces sistēmu. Ja atgrieztās struktūras CoordinateReferenceSystem lauks ir projcrs objekts, jums ir kartes koordinātas. Ja lauks ir ģeokrāsa objekts, jums ir ģeogrāfiskās koordinātas.

Ja formas failā nav projekcijas faila, izmantojiet formuinfo, lai iegūtu BoundingBox. Aplūkojot koordinātu diapazonus, iespējams, varēsiet noteikt, kādas koordinātas jums ir.

Funkcija “ģeogrāfiskais šovs” parāda ģeostruktūrās saglabātos ģeogrāfiskos objektus, bet kartes parādīšanas funkcija parāda kartes struktūrā saglabātos ģeogrāfiskos elementus. Ja mēģināt parādīt kartstruktūru, izmantojot ģeogrāfisko šovu, funkcija izsaka brīdinājumu un izsauc mapshow. Ja mēģināt parādīt ģeostruktūru ar karšu šovu, funkcija projicē koordinātas ar Plate Carree projekciju un izsaka brīdinājumu.

Ģeogrāfisko datu struktūras pārbaude

Šeit ir piemērs nefiltrētam kartes struktūrai, ko atgriezis shaperead:

Izvade parādās šādi:

Formas failā ir 609 funkcijas. Papildus ģeometrijas, BoundingBox un koordinātu laukiem (X un Y) ir pieci atribūtu lauki: STREETNAME, RT_NUMBER, CLASS, ADMIN_TYPE un LENGTH.

Izvade parādās šādi:

Šajā kartes struktūrā ir iekļautas līnijas funkcijas. Desmitajai līnijai ir deviņas virsotnes. Pirmo divu atribūtu vērtības ir rakstzīmju vektori. Otrais ir tukšs rakstzīmju vektors. Pēdējie trīs atribūti ir skaitliski. S, X un Y elementiem var būt dažāda garuma elementi, taču STREETNAME un RT_NUMBER vienmēr ir jāsatur rakstzīmju vektori, un CLASS, ADMIN_TYPE un LENGTH vienmēr ir jāiekļauj skalārie dubultnieki.

Šajā piemērā shaperead atgriež nefiltrētu kartes struktūru. Ja vēlaties filtrēt dažus atribūtus, skatiet plašāku informāciju rakstīšanas formas atlasīšana lasīšanai.

Kā izveidot ģeogrāfisko datu struktūras

Importējot vektora ģeodatus, tādas funkcijas kā shaperead vai gshhs atgriež ģeostruktūras. Tomēr dažos apstākļos, iespējams, vēlēsities izveidot ģeostruktūras vai kartstruktūras. Piemēram, jūs varētu importēt vektora ģeodatus, kas nav saglabāti formas failā (piemēram, no MAT faila, no Microsoft ® Excel un#x00AE izklājlapas vai lasot norobežotā teksta failā). Jūs arī varētu aprēķināt vektoru ģeodatus un atribūtus, izsaucot dažādas MATLAB vai Mapping Toolbox funkcijas. Abos gadījumos koordinātas un citi dati parasti ir vektori vai matricas darbvietā. Mainīgo iesaiņošana ģeostruktūrā vai karšu struktūrā var atvieglot to kartēšanu un eksportēšanu, jo ģeogrāfisko datu struktūras sniedz vairākas priekšrocības salīdzinājumā ar koordinātu masīviem:

Visi saistītie ģeodatu mainīgie ir iepakoti vienā konteinerā - struktūras masīvā.

Struktūra ir pašdokumentējoša, izmantojot lauku nosaukumus.

Jūs varat mainīt karšu simbolu punktiem, līnijām un daudzstūriem atbilstoši to atribūtu vērtībām, izveidojot a simbolu specifikācija ģeostruktūras vai kartes struktūras parādīšanai.

Starp struktūras elementiem un ģeogrāfiskajām iezīmēm pastāv individuāla atbilstība, kas attiecas arī uz hggrupas objektu bērniem, kas konstruēti pēc kartes un ģeogrāfiskās izrādes.

Šo priekšrocību sasniegšana nav grūta. Izmantojiet šo piemēru kā ceļvedi, lai iesaiņotu vektora ģeodatus, ko importējat vai izveidojat ģeogrāfisko datu struktūrās.

Punktu un līniju ģeostruktūru veidošana

Šis piemērs vispirms izveido punktu ģeostruktūru, kurā ir trīs pilsētas dažādos kontinentos, un uzzīmē to ar ģeogrāfisko šovu. Tad tas izveido līnijas ģeostruktūru, kas satur datus lielisku apļu navigācijas trasēm, kas savieno šīs pilsētas. Visbeidzot, tas attēlo šīs līnijas, izmantojot simbolu specifikāciju.

Sāciet ar nelielu punktu datu kopumu, aptuveniem platuma un garuma grādiem trim pilsētām trīs kontinentos:

Izveidojiet punktu ģeostruktūru, un tai ir jābūt šādiem obligātajiem laukiem:

Ģeometrija (šajā gadījumā “punkts”)

Lats (par punktiem tas ir skalārs dubultā)

Lon (par punktiem tas ir skalārs dubultā)

Parādiet ģeostruktūru uz Mercator projekcijas par zemes teritoriju, kas saglabāta zemēs.shp shapefile, nosakot kartes ierobežojumus, lai izslēgtu polāros reģionus:

Pēc tam izveidojiet līnijas ģeostruktūru, lai iesaiņotu lielu apļu navigācijas ceļus starp trim pilsētām:

Aprēķiniet lielo apļu celiņu garumus:

Kartējiet trīs līnijas ģeostruktūrā:

Jūs varat saglabāt tikko izveidotās ģeostruktūras kā formas failus, izsaucot figūru ar izvēlētu faila nosaukumu, piemēram:

Daudzstūra ģeostruktūru izgatavošana

Ģeostruktūras vai kartstruktūras izveide daudzstūra datiem ir līdzīga tās izveidošanai punktu vai līniju datiem. Tomēr, ja jūsu daudzstūri ietver vairākas, ar NaN atdalītas daļas, atcerieties, ka tām var būt tikai viena vērtība vienam atribūtam, nevis viena vērtība vienai daļai. Katrs atribūts, ko ievietojat šāda daudzstūra struktūras elementā, attiecas uz visām tā daļām. Tas nozīmē, ka, definējot salu grupu, piemēram, ar vienu NaN atdalītu sarakstu katrai koordinātei, visi šī elementa atribūti apraksta salas kā grupu, nevis atsevišķas salas. Ja vēlaties saistīt atribūtus ar noteiktu salu, šai salai ir jānorāda atšķirīgs struktūras elements.

Ņemiet vērā, ka daudzstūru virsotņu secībai ir nozīme. Kad kartējat daudzstūra datus, daudzstūru šķērsošanas virzienam ir nozīme tam, kā tos atveido tādas funkcijas kā ģeogrāfiskais šovs, karšu šovs un kartes skats. Pareiza virzība ir īpaši svarīga, ja daudzstūri satur caurumus. Mapping Toolbox konvencija kodē ārējo gredzenu koordinātas (piemēram, kontinenta un salu kontūras) pulksteņrādītāja virzienā, sakārtojot pretēji pulksteņrādītāja virzienam, iekšējiem gredzeniem (piemēram, ezeriem un iekšējām jūrām). Koordinātu masīvā katrs gredzens ir atdalīts no gredzena pirms tā ar NaN.

Zīmējot pēc kartes vai ģeogrāfiskās izrādes, gredzeni pulksteņrādītāja virzienā tiek aizpildīti. Gredzeni pretēji pulksteņrādītāja virzienam caur šādiem caurumiem nav aizpildīti. Lai nodrošinātu, ka ārējie un iekšējie gredzeni ir pareizi kodēti saskaņā ar iepriekšminēto, varat izmantot šādas funkcijas:

ispolycw — Taisnība, ja daudzstūra kontūras virsotnes ir sakārtotas pulksteņrādītāja virzienā

poly2cw — Pārvērst daudzstūra kontūru pulksteņrādītāja virzienā

poly2ccw — Pārvērst daudzstūra kontūru secībā pretēji pulksteņrādītāja virzienam

poly2fv — Pārveidojiet daudzstūra reģionu sejas un virsotnes formā, lai to izmantotu kopā ar plāksteri, lai pareizi atveidotu daudzstūri, kas satur caurumus

Trīs no šīm funkcijām pārbauda vai maina virsotņu secību, kas nosaka daudzstūri, un ceturtā pārvērš daudzstūrus ar caurumiem uz pilnīgi atšķirīgu attēlojumu.

Piemēru darbam ar daudzstūra ģeostruktūrām skatiet sadaļā Piekrastes datu (GSHHG) konvertēšana uz Shapefile formātu.

Kartēšanas rīklodziņa 1. versija. Displeja struktūras

Pirms 2. versijas, kad tika ieviestas ģeostruktūras un karšu struktūras, importējot ģeodatus no noteiktiem ārējiem formātiem, tika izmantota cita datu struktūra, lai tos iekapsulētu karšu attēlošanas funkcijās. Šīs displeja struktūras tajā bija gan rastra, gan vektoru karšu dati un cita veida objekti, bet trūka pašreizējo ģeostruktūru un karšu struktūru vispārīguma, lai attēlotu vektoru pazīmes, un tās tiek pakāpeniski izņemtas no instrumentu kopas. Tomēr displeja struktūras, kurās ir vektora ģeodati, var pārvērst ģeostruktūras formā, izmantojot updategeostruct. Plašāku informāciju par 1. versijas displeja struktūrām un to izmantošanu skatiet 1. versijas displeja struktūras atsauces lapā. Papildu informācija ir pieejama atsauces lapās, lai atjauninātu ģeostruktūru, ekstraktu un mlayers.