জিও সার্ভারে পোস্টজিআইএস রাষ্টার প্রকাশ করছেন?


23

আমি কীভাবে জিও সার্ভার ব্যবহার করে পোস্টজিআইএস রেস্টার প্রকাশ করব?

আমি চিত্র মোজাইক জেডিবিসি ব্যবহার করে একটি রাস্টার ডেটাসোর্স তৈরি করার চেষ্টা করে অনেক সময় ব্যয় করেছি তবে কোনও ভাগ্য নেই with

পদক্ষেপগুলি সম্পাদিত:
1. জেডিবিসি চিত্র মোজাইক এক্সটেনশানটি ডাউনলোড এবং ইনস্টল করেছে (ঠিক আছে)
2. "সংযোগ প্যারামিটার" ফাইল তৈরি হয়েছে:

কানেক্ট.পোস্টগিস.এমএমএল.ইনিক:

<connect>
  <dstype value="DBCP"/>
  <username value="postgres" />
  <password value="password" />
  <jdbcUrl value="jdbc:postgresql://localhost:5432/db1" />
  <driverClassName value="org.postgresql.Driver"/>
  <maxActive value="10"/>
  <maxIdle value="0"/>
</connect>


mapping.postgis.xml.inc:

<spatialExtension name="postgis"/>
<mapping>
    <masterTable name="mosaic" >
        <coverageNameAttribute name="name"/>
        <maxXAttribute name="maxX"/>
        <maxYAttribute name="maxY"/>
        <minXAttribute name="minX"/>
        <minYAttribute name="minY"/>
        <resXAttribute name="resX"/>
        <resYAttribute name="resY"/>
        <tileTableNameAtribute name="tiletable" />
    </masterTable>
    <tileTable>
        <blobAttributeName name="rast" />
    </tileTable>
</mapping>


osm.postgis.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE ImageMosaicJDBCConfig [
  <!ENTITY mapping PUBLIC "mapping"  "mapping.postgis.xml.inc">
  <!ENTITY connect PUBLIC "connect"  "connect.postgis.xml.inc">]>
<config version="1.0">
  <coverageName name="gfm"/>
  <coordsys name="EPSG:25832"/>
  <!-- interpolation 1 = nearest neighbour, 2 = bilinear, 3 = bicubic -->
  <scaleop  interpolation="1"/>
  <verify cardinality="false"/>
  &mapping;
  &connect;
</config>

যেখানে "মোজাইক" হ'ল একটি সারণী (কলাম: নাম, শিরোনামযোগ্য, মিনএক্স, মিনিওয়াই, ম্যাক্সএক্স, ম্যাক্সওয়াই, রেজএক্স, রেজি) একটি সারি রয়েছে: "জিএফএম, টেস্টারেস্টেবল,,,,,,"

3. এতে কনফিগার ফাইল সংরক্ষণ করা হয়েছে। ./geoserver/data_dir/coverages/
4. একটি চিত্র মোজাইক জেডিবিসি ডেটা স্টোর যুক্ত করার চেষ্টা করার সময় আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

Error: Could not list layers for this store, an error occurred retrieving them: Unable to acquire a reader for this coverage with format: ImageMosaicJDBC



আপডেট: জিওসারবার লগ

2012-10-24 14:09:11,404 DEBUG [org.geoserver] - Thread 14 locking in mode WRITE
2012-10-24 14:09:11,404 DEBUG [org.geoserver] - Thread 14 got the lock in mode WRITE
2012-10-24 14:09:11,406 DEBUG [geoserver.config] - Persisting coverage store raster_store
2012-10-24 14:09:11,408 DEBUG [geoserver.config] - Persisted org.geoserver.catalog.impl.CoverageStoreInfoImpl to /opt/geoserver/data_dir/workspaces/raster/raster_store/coveragestore.xml
2012-10-24 14:09:11,416 DEBUG [geoserver.config] - Persisted $Proxy15 to /opt/geoserver/data_dir/global.xml
2012-10-24 14:09:11,438 ERROR [imagemosaic.jdbc] - 
2012-10-24 14:09:11,438 WARN [imagemosaic.jdbc] - 
java.io.IOException
    at org.geotools.gce.imagemosaic.jdbc.ImageMosaicJDBCReader.<init>(ImageMosaicJDBCReader.java:163)
    at org.geotools.gce.imagemosaic.jdbc.ImageMosaicJDBCFormat.getReader(ImageMosaicJDBCFormat.java:209)
....
2012-10-24 14:09:11,439 INFO [geoserver.web] - Getting list of coverages for saved store file:coverages/osm.postgis.xml
java.lang.RuntimeException: Could not list layers for this store, an error occurred retrieving them: Unable to acquire a reader for this coverage with format: ImageMosaicJDBC
    at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:115)
...
Caused by: java.lang.Exception: Unable to acquire a reader for this coverage with format: ImageMosaicJDBC
    at org.geoserver.catalog.CatalogBuilder.buildCoverage(CatalogBuilder.java:812)
    at org.geoserver.web.data.layer.NewLayerPageProvider.getItems(NewLayerPageProvider.java:82)
    ... 95 more
2012-10-24 14:09:11,441 DEBUG [geoserver.config] - Removing coverage store raster_store
2012-10-24 14:09:11,446 DEBUG [geoserver.config] - Persisted $Proxy15 to /opt/geoserver/data_dir/global.xml
2012-10-24 14:09:11,459 DEBUG [org.geoserver] - Thread 14 releasing the lock in mode WRITE

ভারবোজে লগিং আপ করুন এবং লগ ফাইলটি পরীক্ষা করুন
ইয়ান টার্টন

লগ দিয়ে সবেমাত্র আপডেট হয়েছে ... আমাকে খুব বেশি কিছু বলেন না
এএসপি

যেহেতু কেউ এখানে সহায়তা করতে সক্ষম বলে মনে হচ্ছে না, আপনি জিও সার্ভার মেলিং তালিকার চেষ্টা করতে পারেন: জিওসারবার.আর.ডিসপ্লায়
জিআইএস-জনাথন

এই প্রশ্নে কোন আপডেট?
পাবলো

1
কোনও আপডেট নেই ... আমাকে জেডিবিসি ইমেজ মোজাইক তৈরি করার ধারণাটি ফেলে দিতে হয়েছিল কারণ আমি জিজারবারে এটি তৈরি করতে পারি নি। আমি এখন ইমেজপিরামিড স্টোর ব্যবহার করছি এবং ফাইলগুলি ডিস্কে রাখা হয়েছে।
এমপি

উত্তর:


7

আমি ওপি এর মতো জিওসিভারে পোস্টগ্রিস রাস্টার ব্যবহার করার চেষ্টা করে বেশ কয়েকটি সমস্যার মধ্য দিয়ে কাজ করেছি। নীচে আমি কীভাবে সফলভাবে আমার রাস্টার ডেটা লোড করেছি।

পূর্ব-কনফিগারেশন: এফএমই থেকে উত্পন্ন একটি বিএনজি জিওটিফ স্তরটি ব্যবহার করে পোস্টজিসে আমদানি করা হয়েছে raster2pgsql। ব্যবহৃত আদেশটি ছিল:

raster2pgsql -s 27700 -I -M -C {geotiffName}.tif -t 100x100 -l 2,4,6 {schema}.{tableName} | psql -U {user} -d {database}

এটি তার পিরামিড টেবিলগুলির সাথে রাস্টার টেবিল তৈরি করেছে।

বর্তমানে আমার সার্ভারে একটি উদাহরণ রয়েছে Geoserver 2.6.2। পোস্টগিস রাস্টারগুলি ব্যবহার করতে এর জন্য এক্সটেনশন জেডিবিসি চিত্র মোজাইক প্রয়োজন যা http://geoserver.org/release/2.6.2/ থেকে ডাউনলোড করা যায়

এক্সটেনশন .jar এর পরে প্রবেশ করা হয়েছিল WEB-INF/lib। এরপরে জিওসিভারটি পোস্টগিস থেকে রাস্টারগুলি ব্যবহার করতে সক্ষম করবে। তবে ডেটা অ্যাক্সেস করতে বেশ কয়েকটি সেটিংস কনফিগার করতে হবে।

নিম্নলিখিত নির্দেশাবলী অনুসরণ: http://docs.geotools.org/latest/userguide/library/coverage/pgraster.html কিন্তু সামান্য টুইট হয়েছে:

create table {schema}.MOSAIC (NAME varchar(254) not null,
     TileTable varchar(254)not null,
     minX FLOAT8,minY FLOAT8, maxX FLOAT8, maxY FLOAT8,resX FLOAT8, resY FLOAT8, primary key (NAME,TileTable))

উদাহরণস্বরূপ ওক নামে একটি "কভারেজ" রেকর্ডগুলি সন্নিবেশ করান, এগুলি আপনার রাস্টার টেবিলগুলি: মাস্টার ও পিরামিডগুলি।

insert into {schema}.MOSAIC (name, tiletable) values ('oek', {Main raster table name});
insert into {schema}.MOSAIC (name, tiletable) values ('oek', {raster pyramid 2 table name});
insert into {schema}.MOSAIC (name, tiletable) values ('oek', {raster pyramid 4 table name});
insert into {schema}.MOSAIC (name, tiletable) values ('oek', {raster pyramid 6 table name});

এছাড়াও ডক্স অনুসারে, পোস্টগিস জেডিবিসি ড্রাইভার <সংস্করণ 9 এর জন্য ডাটাবেসে কোনও সম্পত্তি সেট করা প্রয়োজন:

ALTER DATABASE dbname SET bytea_output TO 'escape'

এখন জিওসিভার কনফিগারেশন:

আপনার জিওসিভার ডেটা ডিরেক্টরিতে একটি ডিরেক্টরি তৈরি করুন /data/coverages, এতে 3 টি ফাইল থাকা দরকার:connect.pgraster.xml.inc, mapping.pgraster.xml.inc, oek.pgraster.xml

তাদের নামকরণ এবং সামগ্রীগুলির জন্য http://docs.geotools.org/latest/userguide/library/coverage/pgraster.html অনুসরণ করুন । স্পষ্টতই এতে ডাটাবেস সংযোগের স্ট্রিং এবং ব্যবহারকারীর নাম / পাসওয়ার্ড সেটিংস সামঞ্জস্য করুনconnect.pgraster.xml.inc

mapping.pgraster.xml.inc যেখানে আমাদের সঠিকভাবে রাস্টার টেবিলগুলি উল্লেখ করতে হবে।

<spatialExtension name="pgraster"/>
 <mapping>
  <masterTable name="MOSAIC" >
          <coverageNameAttribute name="name"/>
          <maxXAttribute name="maxX"/>
          <maxYAttribute name="maxY"/>
          <minXAttribute name="minX"/>
          <minYAttribute name="minY"/>
          <resXAttribute name="resX"/>
          <resYAttribute name="resY"/>
          <tileTableNameAtribute  name="tiletable" />
  </masterTable>
  <tileTable>
          <blobAttributeName name="rast" />
  </tileTable>
</mapping>

সুতরাং এটি মানগুলি আমরা মোসাক টেবিলে যুক্ত করেছি, nameমানগুলি হ'ল কলামগুলি MOSAIC, যা আমাদের রাস্টার টেবিল এবং পিরামিড টেবিলগুলির সাথে লিঙ্ক করে। rastরাস্টার টেবিলে রাস্টার কলামের নাম।

ইন oek.pgraster.xmlনিশ্চিত করুন যে আপনার এসআরএস সঠিকভাবে এই ক্ষেত্রে সেট করা থাকে, 27700 BNG।

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE ImageMosaicJDBCConfig [
  <!ENTITY mapping PUBLIC "mapping"  "mapping.pgraster.xml.inc">
  <!ENTITY connect PUBLIC "connect"  "connect.pgraster.xml.inc">
]>

<config version="1.0">
  <coverageName name="oek"/>
  <coordsys name="EPSG:27700"/>
  <!-- interpolation 1 = nearest neighbour, 2 = bipolar, 3 = bicubic -->
  <scaleop  interpolation="1"/>
<axisOrder ignore="false"/>
  &mapping;
  &connect;
</config

জিওসরবারে আমরা এখন একটি নতুন ডেটাস্টোর যুক্ত করতে পারি।

নতুন নতুন নতুন দোকানে যোগ করুন।

ইমেজমোসাইকজেডিবিসি নির্বাচন করুন

এটির একটি নাম দিন এবং এতে URL টি সেট করুন file:coverages/oek.pgraster.xml

এটি সংরক্ষণ করুন এবং আঙ্গুলগুলি অতিক্রম করে কোনও ত্রুটি ফিরে আসবে না। যদি সেগুলি হয়, জিওসিভার লগগুলি পরীক্ষা করুন যা আশাবাদী সমস্যাটি কী তা নির্দেশ করবে, আশা করি কেবল টাইপো বা নামকরণের সমস্যা।

একটি নতুন স্তর যুক্ত করতে যান এবং নতুন রাস্টার ডেটা স্টোর নির্বাচন করুন।

ওক নামের আপনার নতুন স্তর / কভারেজটি নির্বাচন করুন এবং এটি প্রকাশ করুন।

তারপরে স্তর সেটিংসে আপনার স্থানাঙ্ক সিস্টেম এবং বাউন্ডিং বাক্সগুলি যথাযথভাবে সামঞ্জস্য করুন।

রাস্টারটি এখানে ডক্স অনুসরণ করুন: http://docs.geoserver.org/latest/en/user/styling/sld-references/rastersymbolizer.html

আমি একটি স্টাইল যুক্ত করেছি:

<RasterSymbolizer>
 <Opacity>1.0</Opacity>
  <ColorMap>
   <ColorMapEntry color="#ffffff" quantity="1" label="label1" opacity="1"/>
   <ColorMapEntry color="#0000ff" quantity="200" label="label2" opacity="1"/>
  </ColorMap>
</RasterSymbolizer>

এই রঙিন আমার রঙিনদের নীল যেখানে তাদের একটি মান ছিল।

তারপরে আপনার একটি ব্যবহারযোগ্য স্তর থাকা উচিত।

দাবি অস্বীকার: আমি কোনও জিআইএস বিশেষজ্ঞ নই, এবং আমি যে কাজ করেছিলাম তার অনেকটাই ছিল পরীক্ষা এবং ত্রুটি। এটি করার আরও ভাল উপায় আছে তা নিয়ে আমার কোনও সন্দেহ নেই তবে আপাতত আমি কেবল পোস্টগ্রিসে রাস্টার ডেটা ব্যবহারের ক্ষমতা রাখি কিনা তা নিশ্চিত করার জন্য কেবল ধারণার প্রমাণ নিয়ে কাজ করছি। রাস্টার মান এবং স্টাইলিংয়ের মতো সূক্ষ্ম বিবরণগুলি এমন জিনিসগুলি যা এখনও আমার আয়রন করতে হবে। আমি যদি আরও কিছু অগ্রগতি করি তবে আমি আমার উত্তর আপডেট করব।


2

পোস্টজিআইএস রাস্টার প্লাগইনের জন্য কনফিগারেশন নির্দেশাবলী অনুসরণ করে , আপনার প্রতিস্থাপনের চেষ্টা করা উচিত

<spatialExtension name="postgis"/>

সঙ্গে

<spatialExtension name="pgraster"/>

কনফিগারেশন ফাইল mapping.postgis.xml.inc

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.