SIG - manipulation ekport and index data


SISTEM INFORMASI GEOGRAFIS

Nama              : Fikri Nuryansah
NIM                : 17.01.071.037
Kelas               : Teknik Informatika A 2017
Prodi               : Teknik Informatika
link                  : www.uts.ac.id 


Memanipulasi Data
Jadi, tujuan kami di sini adalah untuk menggabungkan beberapa POLYGON menjadi MULTIPOLYGON tunggal. Pertanyaannya adalah, kriteria apa yang harus kita gunakan? Pengetikan pilih nama dari us_states; menunjukkan kepada kami banyak duplikat. Mengetik pilih berbeda nama dari us_states; membuat kita kembali ke jumlah yang masuk akal. (Ya, ada 52 catatan, bukannya 50, tetapi saya tidak akan menyesali Distrik Columbia dan Puerto Rico karena ikut dalam perjalanan.)
Untuk mengkonsolidasikan POLYGON menjadi MULTIPOLYGON tunggal, kita perlu untuk melakukan beberapa hal. Kita bisa membuat tabel baru dengan melakukan SELECT ... MENJADI <NEWTABLE>. Dari pada menggunakan SELECT DISTINCT ... seperti yang kami lakukan sebelumnya menit yang lalu (yang membatasi output ke nilai unik tunggal dengan membuang duplikat), kita dapat menggunakan SELECT ... GROUP BY name untuk menggabungkan hasil. Akhirnya, kita bisa menggunakan GeomUnion () untuk menggabungkan geometri. Menyatukan semua ini, kita berakhir dengan ini:
select name, GeomUnion(the_geom) as location into us_50
from us_states group by name;
Untuk melihat apakah semuanya berfungsi, ketikkan yang berikut:
g4wd=# select name, NumGeometries(location) from us_50 order by name;
name | numgeometries
----------------------+---------------
Alabama | 2
Alaska | 81
Arizona | 1
Arkansas | 1
California | 11
Colorado | 1
Connecticut | 1
Delaware | 3
District of Columbia | 1
Florida | 14
Georgia | 1
Hawaii | 27
...

Mengekspor Data
Sekarang kami telah mengubah set data kami, mari kita buang kembali sebagai shapefile. Tidak mengherankan, PostGIS menawarkan utilitas pelengkap untuk shp2pgsql — pgsql2shp. Buat direktori bernama us_50, ubah, dan ketik perintah berikut:
pgsql2shp g4wd us_50
Ini membuang nilai dari tabel us_50 di database g4wd ke a shapefile. Jika Anda ingin mengganti nama, ketikkan yang berikut:
pgsql2shp-f foo.shp g4wd us_50.
Hanya untuk kewarasan memeriksa output, Anda dapat membuka shapefile di penampil pilihan Anda.
Sebagai alternatif, Anda dapat menggunakan ogrinfo (yang datang bersama dengan GDAL) untuk melakukan a
sedikit introspeksi:
$ ogrinfo -so us_50.shp us_50
INFO: Open of ‘us_50.shp'
using driver ‘ESRI Shapefile' successful.
Layer name: us_50
Geometry: Polygon
Feature Count: 52
Extent: (-179.147340, 17.884813) - (179.778470, 71.352561)
Layer SRS WKT:
(unknown)
NAME: String (90.0)
Bendera -so hanya menyediakan ringkasan. Jika Anda meninggalkan bendera itu, Anda akan melakukannya dapatkan dump layar untuk setiap catatan dalam file. Argumen pertama (the sumber data) sangat mudah. Argumen kedua (data layer) mungkin tampak berlebihan untuk sebuah shapefile — bagaimanapun juga, sebuah shapefile dapat hanya memegang satu lapisan, kan? Nah, ogrinfo memungkinkan Anda untuk mawas diri berbagai sumber data. Ketik ogrinfo - -formats untuk mendapatkan daftar semuanya
yang dipahami ogr:
$ ogrinfo --formats
Supported Formats:
-> "ESRI Shapefile" (read/write)
-> "MapInfo File" (read/write)
-> "UK .NTF" (readonly)
-> "SDTS" (readonly)
-> "TIGER" (read/write)
-> "S57" (read/write)
-> "DGN" (read/write)
-> "VRT" (readonly)
-> "AVCBin" (readonly)
-> "REC" (readonly)
-> "Memory" (read/write)
-> "CSV" (read/write)
-> "GML" (read/write)
-> "KML" (read/write)
-> "PostgreSQL" (read/write)
Hmmm, jadi Anda melihat PostgreSQL di sana, katamu? Mari kita dapatkan daftar yang tersedia
tabel yang diaktifkan secara spasial:
$ogrinfo PG:dbname=g4wd
INFO: Open of ‘PG:dbname=g4wd'
using driver ‘PostgreSQL' successful.
1: test (Point)
2: us_states (Multi Polygon)
Ingin melihat apa yang dikatakan ogrinfo tentang lapisan us_states asli kami?
$ ogrinfo -so PG:dbname=g4wd us_states
INFO: Open of ‘PG:dbname=g4wd'
using driver ‘PostgreSQL' successful.
Layer name: us_states
Geometry: Multi Polygon
Feature Count: 273
Extent: (-179.147354, 17.884811) - (179.778473, 71.352562)
Layer SRS WKT:
GEOGCS["NAD83",
DATUM["North_American_Datum_1983",
SPHEROID["GRS 1980",6378137,298.257222101,
AUTHORITY["EPSG","7019"]],
AUTHORITY["EPSG","6269"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.01745329251994328,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4269"]]
Geometry Column = the_geom
area: Integer (0.0)
division: String (1.0)
gid: Integer (0.0)
lsad: String (2.0)
lsad_trans: String (50.0)
name: String (90.0)
perimeter: Integer (0.0)
region: String (1.0)
st99_d00_: Integer (0.0)
st99_d00_i: Integer (0.0)
state: String (2.0)
Di mana ogr menjadi sangat menarik adalah ketika Anda mencoba untuk mencoba-coba basis data jarak jauh. Karena kami sedang melihat basis data lokal, kami menggunakan sintaksis sederhana. Anda bisa, bagaimanapun, memasukkan banyak parameter ke dalam
PG: string:
ogrinfo PG:'host=remotehost user=bubba password=smith dbname=g4wd'
Ya, sintaksanya mungkin terlihat sedikit aneh, tetapi kemampuannya Kumpulan utilitas baris perintah jauh melebihi kesalahan estetika apa pun. Jadi sekarang tunggu sebentar. Kenapa tabel us_50 kami yang baru dibuat tidak ada menurut ogrinfo? Yap — tidak ada entri di geometry_columns. (Kamu punya telah memperhatikan — tangkapan yang bagus.) Satu insert cepat dan ogrinfo PG: dbname = g4wd akan memiliki apa yang diperlukan berinteraksi dengan tabel baru kami:
insert into geometry_columns
(f_table_catalog, f_table_schema, f_table_name, f_geometry_column,
coord_dimension, srid, type) values ('' , 'public' , 'us_50' ,
'location' , 2, 4269, 'MULTIPOLYGON' );
Kenapa mengganggu? Anda mungkin bertanya. Jelas pgsql2shp tidak membutuhkannya. Baiklah, ya tidak. Seperti halnya ogr2ogr. Ingat di Bab 3, Proyeksi, di halaman 45 bahwa kami menggunakan ogr2ogr untuk memproyeksi ulang jalan raya Colorado yang rusak? Kita juga dapat menggunakannya untuk mengubah data dari satu format ke format lainnya lain. Mari kita gunakan untuk merobek data dari PostGIS ke dalam bentuk file:
ogr2ogr us_50_again.shp PG:dbname=g4wd us_50
Jika Anda melakukan daftar direktori, perhatikan apa lagi yang datang untuk perjalanan? Anda benar — kami mendapatkan informasi proyeksi dalam bentuk a file us_50_again.prj. ogrinfo -juga us_50_again.shp us_50_again mengonfirmasi hal itu data ini diproyeksikan dalam EPSG 4269. Meskipun mendapatkan informasi proyeksi itu keren, Anda tidak bisa menghargai koneksi ogr / PostGIS hingga Anda melakukan sesuatu seperti ini:
ogr2ogr hawaii.shp PG:dbname=g4wd
-sql "select name, the_geom from us_states where name='Hawaii'"
Menggunakan ogr2ogr untuk merobek catatan sewenang-wenang dari meja Anda menggunakan ad hoc SQL membawa kung fu PostGIS Anda ke tingkat yang sama sekali baru. Jadi, kami berhasil melakukan perjalanan bolak-balik dengan data spasial kami — dari shapefile ke PostGIS untuk membentuk kembali. Tetapi PostGIS lebih dari sekadar ember geodata yang dimuliakan. Anda dapat melakukan beberapa data canggih analisis. Tapi sebelum kita sampai ke hal-hal yang menyenangkan seperti menghitung jarak dan area, Anda perlu memastikan bahwa data spasial Anda diindeks.

Pengindeksian Data
PostGIS sama seperti basis data lainnya: jika Anda memiliki tabel besar, pengindeksan itu akan sangat meningkatkan kinerja permintaan. Anda membuat secara tradisional indeks pada bidang yang sering anda gunakan. Mengindeks bidang nama, misalnya, membuat indeks yang tidak berbeda dengan indeks di bagian belakang buku ini. Indeks buku disusun berdasarkan kata kunci, menunjukkan halaman kata kunci.

Indeks basis data merujuk pada nomor yang dicatat bukan pada halaman  halaman, tetapi secara konseptual ia melakukan hal yang sama — memungkinkan pengoptimal queri untuk melakukan hubungan singkat pencarian. Dari pada harus melakukan scan berurutan masing-masing catatan dalam sebuah tabel, itu hanya mengacu pada indeks. Masuk akal? Untuk pertanyaan spasial, kami ingin dapat melakukan hal yang sama; namun, alih-alih, kata-kata, kami akan membuat indeks pada Batasan kotak geometri. Kadang-kadang disebut persegi panjang batas minimum (MBR), ini adalah kotak sederhana yang dapat digunakan sebagai pengganti untuk geometri aktual (yang dalam kenyataannya mungkin merupakan poligon rumit dengan puluhan atau ratusan simpul).
Ketikkan \ d us_states. Anda akan melihat indeks terdaftar untuk kunci utama, gid. shp2pgsql membuat indeks ini untuk kami. Jika tidak, Anda bisa dengan mudah buat hal yang sama dengan mengetik ini:
create unique index us_states_pk_index on us_states (gid);
Sintaks itu akan bekerja untuk bidang nonspatial apa pun. Tetapi untuk membuat spasial indeks, perintah yang perlu Anda ketik sedikit berbeda:
create index us_states_bbox_index on us_states
using gist (the_geom);
Mengetik \ d us_states menunjukkan bahwa kami sekarang memiliki dua indeks di tabel kami. Setelah indeks Anda dibuat, Anda harus melakukan analisis vakum verbose us_states (the_geom) ;. Melakukan ini secara berkala memastikan bahwa indeks dioptimalkan dan terkini. Untuk tabel volatil (tabel yang Anda inginkan terus menambah atau menghapus informasi), manual PostgreSQL menyarankan melakukan perintah ini setidaknya sekali sehari. Sebagai referensi data seperti us_states, melakukannya sekali seumur hidup mungkin cukup. Di bagian selanjutnya, Anda akan melihat && sering muncul di SQL. Ini memberitahu queri untuk menggunakan indeks bbox terlebih dahulu. Seringkali, Anda akan lihat peningkatan dramatis dalam kinerja permintaan dengan melakukan permintaan kotor pertama ("Hei, apakah aku berada di stadion baseball?") ​​dan kemudian melakukan yang mahal analisis halus pada set hasil yang dikurangi.

Komentar

  1. Assalammualaikum. Wr. Wb.
    Nama: Shia Eartha Hanif
    Nim: 17.01.071.024
    Kelas: INF A 2017

    menurut saya untuk postingan diatas saya kira Sudha bagus cuma masukan saya untuk cuma masukan yang pertama, Khusus untuk Syntax coba agak dibedain saran sih setiap ada syntax yang bersambung dengan paragrafh sedikit di pisah diberi jarak kemudian dibedain ntah itu fontnya atau bentuk Huruf nya supaya bisa lebih paham ketika orang melihat, kemudian yang kedua, untuk lebih diperjelas lagi pembahasannya dan interktif dengan pembacanya.

    BalasHapus
  2. Assalamualaikum warahmatullahi wabarakatuh
    Saya Bima (17.01.071.019)

    Isi materi sudah baik dan mudah dipahami, tapi alangkah lebih baik agar ditingkatkan lagi dari segi penulisan dan bahasa yang digunakan

    BalasHapus
  3. Assalamualaikum wr.wb
    Nama habib shibghatallah(17.01.071.040)

    Menurut saya diri pribadi, isi dari materi nya cukup baik namun dari segi penulisannya perlu ditingkatkan lagi

    BalasHapus
  4. assalamualaikum warahmatullah
    saya Fadel Muhammad

    izin berkomentar bahwa materi nya kurang saya fahami karena terkendala dari bahasa penjelasannya yang kurang dimengerti

    BalasHapus

Posting Komentar