ฉันพยายามเขียนหลายเลเยอร์ไปยัง GeoPackage เดียวกันใน R แต่ฉันได้รับข้อผิดพลาดCreation of output file failed
. ฉันพยายามค้นหาเอกสารการอ่านและเขียนไปยังไฟล์. gpkg ด้วย RGDAL เช่นเพื่อค้นหาว่าwriteOGR()
รองรับหลายเลเยอร์จริงหรือไม่ เป็นไปได้ไหมถ้าเป็นเช่นนั้นจะทำอย่างไร? ตัวอย่างการทำงานที่น้อยที่สุด:
library(sp)
library(maptools)
library(rgdal)
data(wrld_simpl)
norway <- wrld_simpl[wrld_simpl$NAME == "Norway", ]
sweden <- wrld_simpl[wrld_simpl$NAME == "Sweden", ]
file <- tempfile("scandinavia", fileext = c(".gpkg"))
writeOGR(norway, dsn = file, layer = "norway", driver = "GPKG")
writeOGR(sweden, dsn = file, layer = "sweden", driver = "GPKG")
ogrListLayers(file)
เห็นได้ชัดว่ามีogr2ogr
คำสั่งเชลล์ที่ทำเคล็ดลับ (หมวกเคล็ดลับmdsumner ) ซึ่งฉันสามารถห่อในฟังก์ชั่น R แต่มันจะเรียบร้อยถ้า writeOGR () และ / หรือ st_write () ในsf
แพคเกจนี้ได้สร้างขึ้นใน. ฉันคิดว่ามันขึ้นอยู่กับ GDAL ของlayer_options
แต่มีไม่ได้ดูเหมือนจะเป็นตัวเลือกที่ผนวกชนิดสำหรับ GPKG ในGDAL
ฉันสามารถเขียนฟังก์ชั่น wrapper อย่างง่าย ๆ ได้st_write()
แต่รองรับพื้นเมืองsf
หรือrgdal
จะดีกว่า
เป็นไปไม่ได้ afaik ลองกับเอสเอฟซึ่งฉันยินดีที่จะสำรวจเช่นกัน - ง่ายต่อการแก้ไขมากกว่า rgdal สำหรับสิ่งหนึ่ง
—
mdsumner
@mdsumner st_write () ใน sf ให้ผลลัพธ์เดียวกัน ฉันคิดว่าการขาดตัวเลือกผนวกในตัวเลือกการสร้างเลเยอร์ของ GDAL นั้นเป็นสาเหตุของปัญหาสำหรับทั้ง writeOGR () และ st_write ()
—
eivindhammers