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
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.



Assalammualaikum. Wr. Wb.
BalasHapusNama: 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.
Assalamualaikum warahmatullahi wabarakatuh
BalasHapusSaya 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
Assalamualaikum wr.wb
BalasHapusNama habib shibghatallah(17.01.071.040)
Menurut saya diri pribadi, isi dari materi nya cukup baik namun dari segi penulisannya perlu ditingkatkan lagi
assalamualaikum warahmatullah
BalasHapussaya Fadel Muhammad
izin berkomentar bahwa materi nya kurang saya fahami karena terkendala dari bahasa penjelasannya yang kurang dimengerti