Windows पर PostGIS 2.0 डेटाबेस में एक रेखापुंज लोड हो रहा है


18

मैं यह पता लगाने की कोशिश कर रहा हूं कि पोस्टगिस 2.0 डेटाबेस में एक रैस्टर को कैसे लोड किया जाए (मैंने इस विषय पर पिछले प्रश्न यहां और यहां पूछे हैं )। मैं raster2pgsql.exePostGIS2.0 के साथ प्रदान किए गए कार्यक्रम का उपयोग करने की कोशिश कर रहा हूं।

यह पता लगाने के बाद कि विंडोज़ में कमांड प्रॉम्प्ट को एक प्रशासक के रूप में चलाने की आवश्यकता है (एक प्रशासक के रूप में विंडोज 7 में कमांड लाइन को चलाने के लिए, cmdसर्च बार में टाइप करें और ctrl+ shift+ हिट enterकरें) raster2pgsql.exeफ़ंक्शन को सक्षम करने के लिए मैं सॉर्ट-ऑफ प्रबंधित कर रहा हूं मेरे डेटाबेस में एक रेखापुंज लोड करें। मेरे पास एक रेखापुंज फ़ाइल है जिसे ras_test.tifमैंने अस्थायी रूप binसे अपनी postgresqlस्थापना के फ़ोल्डर में रखा है । निम्नलिखित कोड का उपयोग करके मैं इस रेखापुंज को परिवर्तित और लोड करता हूं:

C:\Program Files (x86)\PostgreSQL\9.1\bin>raster2pgsql -s 102003 ras_test.tif -t> elev.sql
Processing 1/1: ras_test.tif

C:\Program Files (x86)\PostgreSQL\9.1\bin>psql.exe -p 5434 -U postgres -d test2 -f elev.sql
BEGIN
psql:elev.sql:2: NOTICE:  CREATE TABLE will create implicit sequence "-t_rid_seq" for serial column "-t.rid"
psql:elev.sql:2: NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "-t_pkey" for table "-t"
CREATE TABLE
INSERT 0 1
COMMIT

जब मैं PostGIS में इस तालिका को देखता हूं तो ऐसा दिखता है:

यहाँ छवि विवरण दर्ज करें

हालाँकि, मैं इसे QGIS में देखने में सक्षम नहीं हूं, और मुझे यकीन नहीं है कि अगर मैंने इसे सही तरीके से लोड किया है तो ऐसा प्रतीत होता है कि इस फाइल में कोई डेटा नहीं है। ऐसा लगता है कि मैंने डेटा सामग्री के बजाय फ़ाइल नाम को एक रेखापुंज के रूप में लोड किया है। क्या मैंने कोई स्पष्ट त्रुटियां की हैं जो मुझे अपने डेटाबेस में रेखापुंज करने से रोक रही हैं?


PostGIS प्रलेखन रैस्टर को लोड करने के तरीके का एक उदाहरण प्रदान करता है, लेकिन मुझे समझ नहीं आता कि कौन से तर्क वैकल्पिक हैं, और मैं अभी भी स्पष्ट नहीं हूं कि मुझे डिफ़ॉल्ट स्कीमा का उपयोग करने के लिए क्या उपयोग करना चाहिए। उदाहरण के लिए, प्रलेखन से निम्नलिखित उदाहरण में:

raster2pgsql -s 4236 -I -C -M *.tif -F -t myschema.demelevation > elev.sql 
psql -d gisdb -f elev.sql
  1. क्या मुझे SRID प्रदान करना है? -s 4236

  2. क्या तर्क -I -C -Mसभी वैकल्पिक हैं?

  3. -tटाइल का आकार प्रतीत होता है; यदि मेरे पास कोई कस्टम स्कीमा नहीं है, तो क्या मुझे यह निर्दिष्ट करने की आवश्यकता है?

  4. क्या मैं अभी बाहर जा सकता हूं myschema.demelevation?

संपादित करें: मैंने नीचे दिए गए सुझावों का परिणाम शामिल किया है:

C:\Program Files (x86)\PostgreSQL\9.1\bin>raster2pgsql -s 102003 -t 300x300 ras_test.tif ras_test | psql.exe -U postgres
 -d raster_analysis -h localhost -p 5434
Processing 1/1: ras_test.tif
BEGIN
NOTICE:  CREATE TABLE will create implicit sequence "ras_test_rid_seq" for serial column "ras_test.rid"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "ras_test_pkey" for table "ras_test"
CREATE TABLE
INSERT 0 1
INSERT 0 1
INSERT 0 1
INSERT 0 1
COMMIT

यह एक तालिका में दो कॉलम ridऔर के साथ परिणाम देता है rastridचार मूल्य हैं, नाड के rastपास कोई नहीं है। जब मैं कुछ और तर्कों का उपयोग करने की कोशिश करता हूं:

C:\Program Files (x86)\PostgreSQL\9.1\bin>raster2pgsql -I -C -e -Y -F -s 102003 -t 300x300 ras_test.tif ras_test1 | psql
.exe -U postgres -d raster_analysis -h localhost -p 5434
Processing 1/1: ras_test.tif
NOTICE:  CREATE TABLE will create implicit sequence "ras_test1_rid_seq" for serial column "ras_test1.rid"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "ras_test1_pkey" for table "ras_test1"
CREATE TABLE
CREATE INDEX
ANALYZE
NOTICE:  Adding SRID constraint
CONTEXT:  PL/pgSQL function "addrasterconstraints" line 49 at RETURN
NOTICE:  Adding scale-X constraint
CONTEXT:  PL/pgSQL function "addrasterconstraints" line 49 at RETURN
NOTICE:  Adding scale-Y constraint
CONTEXT:  PL/pgSQL function "addrasterconstraints" line 49 at RETURN
NOTICE:  Adding blocksize-X constraint
CONTEXT:  PL/pgSQL function "addrasterconstraints" line 49 at RETURN
NOTICE:  Adding blocksize-Y constraint
CONTEXT:  PL/pgSQL function "addrasterconstraints" line 49 at RETURN
NOTICE:  Adding alignment constraint
CONTEXT:  PL/pgSQL function "addrasterconstraints" line 49 at RETURN
NOTICE:  Adding number of bands constraint
CONTEXT:  PL/pgSQL function "addrasterconstraints" line 49 at RETURN
NOTICE:  Adding pixel type constraint
CONTEXT:  PL/pgSQL function "addrasterconstraints" line 49 at RETURN
NOTICE:  Adding nodata value constraint
CONTEXT:  PL/pgSQL function "addrasterconstraints" line 49 at RETURN
NOTICE:  Unable to add constraint "enforce_nodata_values_rast"
CONTEXT:  PL/pgSQL function "_add_raster_constraint_nodata_values" line 40 at RETURN
PL/pgSQL function "addrasterconstraints" line 94 at assignment
PL/pgSQL function "addrasterconstraints" line 49 at RETURN
WARNING:  Unable to add constraint: 'nodata_values'.  Skipping
CONTEXT:  PL/pgSQL function "addrasterconstraints" line 49 at RETURN
NOTICE:  Adding maximum extent constraint
CONTEXT:  PL/pgSQL function "addrasterconstraints" line 49 at RETURN
 addrasterconstraints
----------------------
 t
(1 row)

मुझे निम्न आउटपुट मिलता है। यह निम्न संरचना के साथ एक नई तालिका में परिणाम करता है:

यहाँ छवि विवरण दर्ज करें

मुझे लगता है कि यह एक ठीक से भरी हुई रेखापुंज नहीं है क्योंकि मैं डेटा नहीं देख सकता। क्या कोई अन्य विकल्प हैं जो मैं कोशिश कर सकता हूं?

संपादित करें: इस अंतिम प्रयास ने काम किया, मैं सिर्फ सही ढंग से रेखापुंज तक नहीं पहुंच रहा था।


raster2pgsql संदर्भ को संदर्भित करता है postgis.org/documentation/manual-svn/...
Mapperz

मैंने यहाँ उपलब्ध सिंटैक्स का उपयोग करके पोस्ट फाइल में raster फाइल (jpg) को लोड करने की कोशिश की "C: \ Program Files (x86) \ PostgreSQL \ 9.1 \ bin> raster2pgsql -I -C -e -Y -F -s-10s3 -t 300x300 ras_test.tif ras_test1 | psql .exe -U postgres -d raster_analysis -h localhost -p 5434 "मैं डेटाबेस में बनाई गई एक रेखापुंज तालिका देख सकता था। यह सिर्फ सेलेनियस द्वारा दिखाया गया था, जहां आपको "रैस्ट रैस्टर" कॉलम के तहत कोई भी चीज दिखाई नहीं देती है जब तक कि आप किसी विशेष सेल पर क्लिक नहीं करते हैं। यहाँ मेरी वास्तविक समस्या है। Sql क्वेरी लेयर का उपयोग करके ArcGIS से रेखापुंज परत को कैसे देखें। जब मैंने इस परत को जोड़ने और इसे सत्यापित करने की कोशिश की, तो यह "
रास्ट

मुझे लगता है कि आपको इसे एक नया प्रश्न पूछना चाहिए क्योंकि आपको अधिक प्रतिक्रियाएँ मिलेंगी। मुझे नहीं पता कि आप आर्कजीआईएस का उपयोग करके कैसे जुड़ सकते हैं लेकिन आप इसे एक्सेस करने के लिए क्यूजीआईएस का उपयोग कर सकते हैं।
djq

1
नोट: pgAdminIII एक निश्चित आकार से परे डेटा के लिए एक रिक्त सेल दिखाता है; टिकट देखें # 297
माइक टी।

उपरोक्त क्लेरी काम करता है, लेकिन क्या कोई मुझे बता सकता है कि टेबल में पिक्सेल वैल्यू / सेल वैल्यू को कैसे स्टोर किया जाए?

जवाबों:


5

SRID? -s 4236 (आवश्यक)

क्या तर्क -I -C -M सभी वैकल्पिक हैं?

-सीआर सुनिश्चित करने के लिए रेखापुंज बाधाओं - श्रीड, पिक्सलाइज आदि को लागू करें ताकि रेखापुंज को रेखापुंजों में ठीक से पंजीकृत किया जा सके। () की आवश्यकता

-M (वैक्यूम रिस्टर टेबल का विश्लेषण करें।) वैकल्पिक

-I (रेखापुंज कॉलम पर एक जीएसटी सूचकांक बनाएं।) वैकल्पिक लेकिन अनुशंसित

-T TILE_SIZE (तालिका प्रति पंक्ति एक सम्मिलित करने के लिए टाइल्स में रेखापुंज काटें। TILE_SIZE को WIDTHxHEIGHT के रूप में व्यक्त किया गया है।)

myschema.demelevation बाहर जाना (हाँ)

http://postgis.net/docs/using_raster_dataman.html#RT_Loading_Rasters


धन्यवाद मैपरेज़, मुझे आंशिक रूप से समझ में आया कि raster2pgsql कैसे काम करता है - हालाँकि पोस्टग्रेज़िकल में मेरे रेखापुंज में केवल एक सेल होता है यही कारण है कि मैं यह पता लगाने की कोशिश कर रहा हूं कि क्या तर्क का उपयोग करना है।
djq

9

Celenius,

यदि आप -tआकार आयामों के साथ विकल्प का उपयोग नहीं करते हैं , तो आपकी रेखापुंज फ़ाइल एकल रिकॉर्ड के रूप में आएगी। मैंने केवल डॉक्स में एक त्रुटि देखी जो संभवतः आपको भ्रमित कर रही है। मैं ठीक कर दूँगा। -tहमेशा एक WIDTHxHEIGHT द्वारा पालन किया जाना चाहिए।

यदि आप चाहते हैं कि इसे 100x100 पिक्सेल चौड़ाई की ऊंचाई में घुट कहा जाए - जैसा कि मैपरज़ कहते हैं - -t विकल्प का उपयोग करें।

तो आपकी आज्ञा होगी:

raster2pgsql -s 102003  -t 100x100 ras_test.tif ras_test > elev.sql

डॉक्स में हवाई उदाहरण देखें। http://www.postgis.org/documentation/manual-svn/using_raster.xml.html#RT_Raster_Loader

जो मैनुअल उदाहरणों का एक बहुत उपयोग है:

raster2pgsql -I -C -e -Y -F -s 26986 -t 128x128 -l 2,4 bostonaerials2008/*.jpg aerials.boston | psql -U postgres -d gisdb -h localhost -p 5432

मुझे पता है कि स्विच थोड़ा कठिन हो सकता है क्योंकि उनके बहुत सारे हैं और अधिकांश वैकल्पिक हैं। शायद 2.1 में, हमारे पास shp2pgsql-guinewbies के लिए इसे थोड़ा सरल बनाने के लिए एक gui जैसा होगा ।

वहाँ के नवीनतम संस्करण में raster2pgsqltif या अन्य रेखापुंज फ़ाइल में georeference जानकारी से srid का अनुमान लगाने का तर्क है (यह संस्करण अब विंडो बाइनरी के रूप में उपलब्ध है)। अभी तक उस सुविधा की कोशिश नहीं की गई है, लेकिन अगर यह काम करता है तो आप श्री को भी छोड़ सकते हैं और यह अनुमान लगाएगा (उम्मीद है कि सही ढंग से)।


सुझाव के लिए धन्यवाद! फिर भी यह काम करने में सक्षम नहीं है, लेकिन स्विच को थोड़ा बेहतर समझना शुरू कर देता है।
djq

इसने काम किया, लेकिन मुझे समझ नहीं आया कि डेटाबेस के भीतर यह कैसे दिखना चाहिए। आपकी सहायता के लिए एक बार फिर से धन्यवाद।
djq

क्या pgsql में चूहों को लोड करने के लिए GUI आखिरकार आ गया? :)
एस्ट्रोजुनलू

-2

SQL दृश्य में, आप बड़े होने पर डेटा नहीं देख सकते हैं। आप किसी फ़ाइल में क्वेरी निष्पादित कर सकते हैं और यह डेटा दिखाएगा।


1
मूल (पुराना) प्रश्न पहले से ही एक स्वीकृत उत्तर है और आपका वास्तव में प्रश्न का वैकल्पिक हल नहीं है, बल्कि दृश्य निरीक्षण के लिए एक कॉल है।
कर्लेव सिप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.