কিউজিআইএস দিয়ে আমি কীভাবে প্রাকৃতিক আর্থ এসকিউএলাইট ডিবি ব্যবহার করব?


9

আমি কেবলমাত্র http://www.naturalearthdata.com/downloads/ থেকে এসকিউএল ফর্ম্যাটে প্রাকৃতিক আর্থ ডেটা ডাউনলোড করেছি । আমি ধরে নিয়েছিলাম যে এটি স্পাটিএলাইট ডাটাবেস হবে, তবে এটি প্রদর্শিত হবে না! কিউজিআইএস এটিকে একটি স্থানিক ডাটাবেস হিসাবে স্বীকৃতি দিতে ব্যর্থ হচ্ছে। ওজিআর অনুমিতভাবে একটি সরল এসকিউএল ডাটাবেসে সঞ্চিত থাকাকালীন জ্যামিতিগুলি পড়া সমর্থন করে তবে কিউজিআইএস স্প্যাটায়ালাইটের জন্য ওজিআর ব্যবহার করে না?

এসকিউএল ডাটাবেসে জ্যামিতি_কলাম এবং স্থানিক_আরফ_সিস সারণী রয়েছে। এটিকে কোনও সম্পূর্ণ স্পাটিএলাইট ডাটাবেসে রূপান্তর করার কোনও উপায় আছে?

উত্তর:


9

NE এর স্ক্লাইট ফাইলটি এফডিও-ওজিআর ফর্ম্যাটে রয়েছে, স্থানীয় স্থানীয় জ্যামিতি নয়। যদি আপনি কিছু ম্যানুয়াল শ্রম করতে ইচ্ছুক হন তবে একটি স্থানিক ডিবিতে রূপান্তর করার জন্য এখানে একটি উপায় রয়েছে:

প্রথমে একটি নতুন, খালি স্পেসিয়ালাইট ডাটাবেস তৈরি করুন (আমি এটিকে "nev.sqlite" বলি), তারপরে একটি পৃথক টার্মিনাল সেশনে স্থানীয় প্রাকৃতিক_আরথ_ভেক্টর.সক্লাইটটি স্থানিক স্থানটি খুলুন। (আমি নতুন সংস্করণটি ৪.১ ব্যবহার করেছি sure পুরানো সংস্করণগুলির সাথে এটি কাজ করবে কিনা তা নিশ্চিত নয়)। attachআপনার নতুন nev.sqlite টেবিলের সাথে সংযোগ করতে স্ক্লাইট ফাংশনটি ব্যবহার করুন এবং নতুন ডাটাবেসে আপনি যে টেবিলগুলি চান তা অনুলিপি তৈরি করুন।

তাই:

micha@Wheezy:~$ spatialite natural_earth_vector.sqlite 
SpatiaLite version ..: 3.0.0-beta   Supported Extensions:
    - 'VirtualShape'    [direct Shapefile access]
    - 'VirtualDbf'      [direct DBF access]
    - 'VirtualXL'       [direct XLS access]
    - 'VirtualText'     [direct CSV/TXT access]
    - 'VirtualNetwork'  [Dijkstra shortest path]
    - 'RTree'       [Spatial Index - R*Tree]
    - 'MbrCache'        [Spatial Index - MBR cache]
    - 'VirtualSpatialIndex' [R*Tree metahandler]
    - 'VirtualFDO'      [FDO-OGR interoperability]
    - 'SpatiaLite'      [Spatial SQL - OGC]
PROJ.4 version ......: Rel. 4.7.1, 23 September 2009
GEOS version ........: 3.3.3-CAPI-1.7.4
SQLite version ......: 3.7.13

================ FDO-OGR Spatial Metadata detected ===============
.....
    created VirtualFDO table 'fdo_ne_110m_geography_regions_points'
    created VirtualFDO table 'fdo_ne_110m_geography_regions_polys'
    created VirtualFDO table 'fdo_ne_110m_glaciated_areas'
    created VirtualFDO table 'fdo_ne_110m_lakes'
    created VirtualFDO table 'fdo_ne_110m_land'
    created VirtualFDO table 'fdo_ne_110m_ocean'
    created VirtualFDO table 'fdo_ne_110m_rivers_lake_centerlines'
Accessing these fdo_XX tables you can take full advantage of
FDO-OGR auto-wrapping facility
This allows you to access any specific FDO-OGR Geometry as if it
where native SpatiaLite ones in a completely transparent way
==================================================================

Enter ".help" for instructions
spatialite> attach "nev.sqlite" AS nev;
spatialite> 
spatialite> CREATE TABLE nev.countries AS SELECT * from fdo_ne_10m_admin_0_countries;
spatialite> CREATE TABLE nev.populated_places AS SELECT * FROM fdo_ne_10m_populated_places;
spatialite> CREATE TABLE nev.railroads AS SELECT * FROM fdo_ne_10m_railroads;
spatialite> .q

*** FDO-OGR auto-wrapping shutdown done ***

সমস্ত লাইন "ভার্চুয়ালএফডিও তৈরি করেছে ..." ইঙ্গিত দেয় যে স্পাটিয়ালাইট ডেটা এফডিও ফর্ম্যাট হিসাবে স্বীকৃত করেছে এবং জিওমেট্রিওয়াই প্রত্যেকটির জন্য স্থানিক বিন্যাসে রূপান্তরিত করে ভার্চুয়াল টেবিল তৈরি করেছে। আমি attachআমার নতুন "নেভ" ডাটাবেস এবং প্রতিটি স্তরের জন্য নতুন টেবিল তৈরি করি আমি CREATE TABLE ... AS SELECT * FROM ...বিবৃতিতে আগ্রহী ।

এখন আমি নতুন স্পেসিয়াল ডাটাবেসের উপরে ফিরে যাই । এবং RecoverGeometryColumn()সমস্ত মেটাডেটা ইত্যাদির সাথে যথাযথ স্পেসিয়ালাইট ডাটাবেস পেতে প্রতিটি টেবিলের উপর দিয়ে চালান Note একই. আমি CastToMulti()যেখানে প্রয়োজন সেখানে ব্যবহার করি , যেমন:

micha@Wheezy:~/GIS/World/naturalearthdata.com$ spatialite nev.sqlite
SpatiaLite version ..: 4.1.1    Supported Extensions:
    - 'VirtualShape'    [direct Shapefile access]
    - 'VirtualDbf'      [direct DBF access]
    - 'VirtualXL'       [direct XLS access]
    - 'VirtualText'     [direct CSV/TXT access]
    - 'VirtualNetwork'  [Dijkstra shortest path]
    - 'RTree'       [Spatial Index - R*Tree]
    - 'MbrCache'        [Spatial Index - MBR cache]
    - 'VirtualSpatialIndex' [R*Tree metahandler]
    - 'VirtualFDO'      [FDO-OGR interoperability]
    - 'SpatiaLite'      [Spatial SQL - OGC]
PROJ.4 version ......: Rel. 4.7.1, 23 September 2009
GEOS version ........: 3.3.3-CAPI-1.7.4
SQLite version ......: 3.7.13
Enter ".help" for instructions
SQLite version 3.7.13 2012-06-11 02:05:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
spatialite> .tables
SpatialIndex            geometry_columns_auth   spatialite_history    
countries               populated_places        sql_statements_log    
geom_cols_ref_sys       railroads               views_geometry_columns
geometry_columns        spatial_ref_sys         virts_geometry_columns
spatialite> 
spatialite> SELECT GeometryType(GEOMETRY) FROM countries;
POLYGON
POLYGON
MULTIPOLYGON
MULTIPOLYGON
POLYGON
MULTIPOLYGON
POLYGON
MULTIPOLYGON
MULTIPOLYGON
.....

জ্যামিতিগুলি মিশ্রিত হয়, সুতরাং সমস্ত কিছু MULTI সেট করুন, তারপরে পুনরুদ্ধার করুন জ্যামিতি কলম ():

spatialite> UPDATE countries SET GEOMETRY=CastToMulti(GEOMETRY);
spatialite> SELECT RecoverGeometryColumn('countries','GEOMETRY',4326,'MULTIPOLYGON',2);
1
spatialite> 

এবং প্রতিটি টেবিলের জন্য আপনার প্রয়োজনীয়। এখন সারণীগুলি কিউজিআইএস-এ উপলব্ধ।


পুরো উত্তরের জন্য আপনাকে ধন্যবাদ। আপনি কি জানেন যে কেবলমাত্র কয়েকটি টেবিল এফডিও দিয়ে কেন "আমদানি করা" হয়? আমি 128 সারণীর মধ্যে 30 টি গণনা করি যা এফডিও চিকিত্সা করে। মূল এবং fdo সংস্করণগুলিতে PRAGMA একই, তাই আমি ধরে নিই যে জ্যামিতির মধ্যেই কেবল পার্থক্য রয়েছে। তবে জ্যামিতি_কলামগুলি সমস্ত জ্যামিতিগুলিকে ডব্লুবিবি বলে মনে করে।
লি হাচাদুরিয়ান

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

আপনি যদি কেবল একটি স্পেসিয়ালাইট ডাটাবেস চান এবং আপনার জিডিএল / ওজিআর স্থানিক সমর্থন সহ সংকলিত আছে: ogr2ogr -f sqlite -dsco spatialite = হ্যাঁ splite.db nat_earth.db কাজ করা উচিত।

3

আপনি Add vector layer ...QGIS 2.0.1 এর সাথে ডাটাবেস থেকে ডেটা যুক্ত করতে পারেন ।

তবে ধৈর্য ধরুন, এটি অনেক তথ্য।

Qspatialite প্লাগইন দুর্ভাগ্যক্রমে ডেটা নিয়ে ডিল করতে সক্ষম হয় না, বা স্থানিক স্তর সংলাপ যুক্ত করে।


আন্দ্রে, এটি সত্যই দরকারী তথ্য। আমি বুঝতে পারিনি কিউজিআইএস এসকিউএল-নন-স্প্যাটিয়ালাইট ডাটাবেসগুলি থেকে ডেটা যুক্ত করতে ওজিআর ব্যবহার করতে পারে।
লি হাচাদুরিয়ান

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