UI के बिना रेखापुंज डेटा स्टोर और परत को जोड़ने के लिए भूस्खलन 2.0.2 प्रोग्रामिंग


15

मेरे पास रैस्टर इमेजरी की एक निर्देशिका है जिसे लगातार अपडेट किया जाएगा। इस इमेजरी से, मैं जियोटूल के पिरामिडब्यूरी यूटिलिटी का उपयोग करके इमेज पिरामिड बना रहा हूं। मुझे UI का उपयोग किए बिना स्वचालित रूप से रेखापुंज डेटास्टोर्स और परतों को जियोसर्वर में जोड़ने के लिए क्रॉन जॉब सेट करने की आवश्यकता है।

Geoserver मैनुअल के REST सेक्शन को देखने के बाद मैं अपने कार्यक्षेत्र, "testWS" को जोड़ने में सक्षम था, लेकिन एक ImagePyramid डेटस्टोर बनाने की कोशिश करने से काम नहीं चला।

चूंकि मेरे पास डेटास्टोर तक पहुंच है, इसलिए मैंने आकार के उदाहरण पर विस्तार किया और प्रयास किया

curl -u admin:geoserver -XPUT -H 'Content-type: text/plain' \ 
   -d '/opt/geoserver_data_dir/2.0.2/data/test_pyramid.pyr' \
    "http://localhost:8080/geoserver/rest/workspaces/testWS/datastores/test_pyramid.pyr/external.imagepyramid?configure=all"

जहाँ test_pyramid.pyr इस स्थान पर मेरे ImagePyramid का आधार है।

इससे मुझे "ऐसा कोई डेटास्टोर नहीं: test_pyramid" की त्रुटि मिली

क्या यूआई के माध्यम से मैन्युअल रूप से प्रत्येक को जोड़ने के बिना जियोसेवर में एक नया डेटास्टोर और परत जोड़ने का एक बेहतर तरीका है? मुझे उचित REST स्टेटमेंट को तैयार करने में मदद की आवश्यकता है जो एक मौजूदा इमेजपैरिमिड को एक डेटासोर और लेयर के रूप में जोड़ देगा।

क्या कुछ जावा कोड है जो ऐसा कर सकता है? मैंने जियोसर्वर पाइथन एक्सटेंशन को देखा लेकिन उनके पास ऐसा नहीं था।


Jan mail-archive.com/geoserver-users@lists.sourceforge.net/… की यह पोस्ट लगभग सही समस्या का वर्णन करती है। वहां कोई संकल्प नहीं।
डेवपैरिलो

1
Dos.geoserver.org/stable/en/user/restconfig/… पर geoserver डॉक्स का तात्पर्य यह है कि इस विधि का उपयोग करके आप केवल डेटास्टोर्स कॉन्फ़िगर कर सकते हैं, जो आकृति के मामले में एक फ़ाइल है, PostGIS के मामले में एक डेटाबेस, या एक दूरस्थ वेब सुविधा सेवा के मामले में सर्वर, लेकिन डॉक्स बस अधूरा हो सकता है।
डेवपैरिलो

क्या आप उस फ़ाइल को जोड़ सकते हैं जो आप सर्वर पर पोस्ट कर रहे हैं?
इयान Turton

लेकिन आपको एक XML फ़ाइल बनानी होगी जिसमें वह जानकारी हो।
इयान Turton

जो मैं पोस्ट करने की कोशिश कर रहा हूं, वह उस डेटस्टोर के लिए रास्ता है, जिसे मैं जियोसेवर बनाना चाहता हूं। यह पथ एक एकल निर्देशिका में रेखापुंज फ़ाइलों (इमेजपाइमर) का एक बाहरी सेट है। सभी मैं चाहता था Geoserver इस स्थान पर एक imagepyramid के लिए डेटा स्टोर और परत बनाने के लिए के लिए है (geoserver रूप में एक ही फाइल सिस्टम पर।)
rbrister

जवाबों:


20

आप UI के बाहर से कर्ल और xml के साथ एक GeoTiff के लिए एक कार्यक्षेत्र, डेटास्टोर और लेयर (कवरगैस्टोर) बना सकते हैं:

  1. कार्यक्षेत्र बनाएं।

    curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' \
         -d '<workspace><name>wsgeotiff</name></workspace>' \
         http://localhost:8080/geoserver/rest/workspaces
  2. फिर डेटास्टर बनाएं।

    curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' \
         -d '<coverageStore>
             <name>wsgeotiff_imageGeoTiffWGS84_1298678792699</name>
             <workspace>wsgeotiff</workspace>
             <enabled>true</enabled>
             <type>GeoTIFF</type>
             <url>/home/gis/image_wgs84.tif</url>
             </coverageStore>' \
         "http://localhost:8080/geoserver/rest/workspaces/wsgeotiff/coveragestores?configure=all"
  3. फिर लेयर बनाएं।

     curl -u admin:geoserver -v -XPOST -H 'Content-type: text/xml' \
          -d '<coverage>
              <name>imageGeoTiffWGS84</name>
              <title>imageGeoTiffWGS84</title>
              <nativeCRS>GEOGCS[&quot;WGS 84&quot;,DATUM[&quot;World Geodetic System 1984&quot;,SPHEROID[&quot;WGS 84&quot;,6378137.0, 298.257223563, AUTHORITY[&quot;EPSG&quot;,&quot;7030&quot;]],AUTHORITY[&quot;EPSG&quot;,&quot;6326&quot;]],PRIMEM[&quot;Greenwich&quot;, 0.0, AUTHORITY[&quot;EPSG&quot;,&quot;8901&quot;]],UNIT[&quot;degree&quot;, 0.017453292519943295],AXIS[&quot;Geodetic longitude&quot;, EAST],AXIS[&quot;Geodetic latitude&quot;, NORTH],AUTHORITY[&quot;EPSG&quot;,&quot;4326&quot;]]</nativeCRS>
              <srs>EPSG:4326</srs>
              <latLonBoundingBox><minx>-179.958</minx><maxx>-105.002</maxx><miny>-65.007</miny><maxy>65.007</maxy><crs>EPSG:4326</crs></latLonBoundingBox>
              </coverage>' \
          "http://localhost:8080/geoserver/rest/workspaces/wsgeotiff/coveragestores/wsgeotiff_imageGeoTiffWGS84_1298678792699/coverages"

जब यह सब हो जाता है, तो आपके पास बाहरी छवि 'image_wgs84.tif' की ओर इशारा करने के लिए डेटास्टॉर होता है और कवरेज को प्रदर्शित करने के लिए एक WMS परत होती है।

मुझे नहीं पता कि क्या यह तकनीक एक छवि पिरामिड प्रकार डेटास्टोर बनाने के लिए सीधे एक तकनीक में अनुवाद करेगी या नहीं।

सौभाग्य।


मुझे उपरोक्त प्रश्न के समान ही समस्या है। इसे अच्छी तरह से रखने के लिए धन्यवाद, ज्यादातर समाधान बाहर भ्रामक हैं। मैं यहाँ एक सवाल है, हालांकि। आपके उत्तर में रस्टर के बाउंडिंग बॉक्स को इनपुट के रूप में दिए जाने की आवश्यकता है। अब मुझे समझ में आया कि यदि मैं उपरोक्त समाधान को किसी स्क्रिप्ट में डाल रहा हूँ, तो मैं gdalinfo का उपयोग बाउंडिंग बॉक्स को खोजने के लिए कर सकता हूँ। लेकिन बस काम जोड़ा (पार्सिंग आदि)। मेरा सवाल यह है कि क्या हम जियोस्वर को बाउंडिंग बॉक्स की गणना स्वचालित रूप से कर सकते हैं? हम जानते हैं कि यह ऐसा कर सकता है, क्योंकि जब हम UI से एक रेखापुंज जोड़ते हैं तो यह बाउंडिंग बॉक्स की गणना करता है!
शौनक

3
मेरे GeoServer 2.2 पर आपको बाउंडिंग बॉक्स (और SRS आदि) को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता नहीं है। यह परत निर्माण पर फ़ाइल से उन्हें स्वचालित रूप से पता लगाता है (GeoTIFF और ImageMosaic के लिए परीक्षण किया गया)। ?recalculate=nativebboxजब प्रक्षेपण या प्रक्षेपण नीति बदली जाती है तो आप मूल रूप से मूल बाउंडिंग बॉक्स को पुनर्गठित कर सकते हैं । देखें docs.geoserver.org/stable/en/user/rest/api/...
xandriksson

4

आपको एक कवरेज स्टोर और कवरेज की आवश्यकता होगी ।

एक कवरेज स्टोर स्थानिक डेटा का एक स्रोत है जो रेखापुंज आधारित है।

आपके द्वारा उपयोग किए जाने वाले डेटा स्टोर केवल वेक्टर डेटा के लिए हैं।

क्या आपने जाँच की है कि जियोसेवर बाकी के माध्यम से कवरेज अपलोड करने के लिए कर्ल का उपयोग कैसे करें?

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.