Gunakan shapefile secara langsung. Anda dapat melakukan ini dengan mudah dengan rgdal
atau sf
paket, dan membaca bentuk di suatu objek. Untuk kedua paket, Anda perlu menyediakan dsn
- sumber data, yang dalam hal shapefile adalah direktori , dan layer
- yang merupakan nama shapefile, minus ekstensi:
# Read SHAPEFILE.shp from the current working directory (".")
require(rgdal)
shape <- readOGR(dsn = ".", layer = "SHAPEFILE")
require(sf)
shape <- read_sf(dsn = ".", layer = "SHAPEFILE")
(Untuk rgdal, di OSX atau Linux Anda tidak dapat menggunakan steno '~' untuk direktori home sebagai sumber data ( dsn
) direktori - jika tidak Anda akan mendapatkan pesan "Tidak dapat membuka sumber data" yang tidak membantu. sf
Paket tidak memiliki batasan ini, di antara beberapa kelebihan lainnya.)
Ini akan memberi Anda objek yang merupakan Spasial * DataFrame (titik, garis, atau poligon) - bidang tabel atribut kemudian dapat diakses oleh Anda dengan cara yang sama seperti kerangka data biasa, yaitu shape$ID
untuk kolom ID.
Jika Anda ingin menggunakan file ASCII yang Anda impor, maka Anda cukup mengonversi bidang teks (karakter) x dan y ke angka, misalnya:
shape$x <- as.numeric(as.character(shape$x))
shape$y <- as.numeric(as.character(shape$y))
coordinates(shape) <- ~x + y
Sunting 2015-01-18 : perhatikan bahwa rgdal sedikit lebih baik daripada maptools (yang awalnya saya sarankan di sini), terutama karena rgdal membaca dan menulis informasi proyeksi secara otomatis.
Catatan:
as.numeric(as.character())
fungsi bersarang - jika teks ASCII Anda dibaca sebagai faktor (kemungkinan), ini memastikan bahwa Anda mendapatkan nilai numerik alih-alih tingkat faktor.
rgdal
dan sf
memiliki cara yang membingungkan untuk mengakses berbagai jenis file dan basis data (misalnya untuk file GPX, dsn adalah nama file, dan melapisi komponen individu seperti titik arah, titik trek, dll.), dan diperlukan pembacaan yang cermat atas contoh online.