On Thu, 27 May 2010, Wade Wall wrote:

I am not exactly sure what you mean by identify the correct layer
name.  Using R under Linux, this is what happens.

I have a file in the current directory named ASMI_GA.kml

library(rgdal)
tmp<-readOGR(".", layer="ASMI_GA.kml")

However, I get the following message.

Error in ogrInfo(dsn = dsn, layer = layer, input_field_name_encoding =
input_field_name_encoding) :
 Cannot open file

That is what I said. Each driver has its own understanding of what the dsn= and layer= arguments are, and your usage doesn't match what the driver is expecting. The dsn= for the KML driver seems to be the file name (possibly with its complete path), and the layer= is the string in the:

<Document><Folder><name>cities</name>

line (conditional on the writing software using a similar logic to OGR), here in this example:

library(rgdal)
cities <- readOGR(system.file("vectors", package = "rgdal")[1], "cities")
is.na(cities$POPULATION) <- cities$POPULATION == -99
summary(cities$POPULATION)
td <- tempdir()
writeOGR(cities, paste(td, "cities.kml", sep="/"), "cities", driver="KML")
xx <- readOGR(paste(td, "cities.kml", sep="/"), "cities")

How one discovers this name is not obvious, since the KML driver in OGR needs it to access the file. One possibility is:

system(paste("ogrinfo", paste(td, "cities.kml", sep="/")), intern=TRUE)

which lists the layer name(s). Perhaps ogrInfo() could be revised to access the dsn in the same way when not given a layer= argument to discover layer names - anyone with lots of time on their hands like to help?

Roger

PS. ogrDrivers() lists the drivers seen by OGR as running in rgdal, but for drivers with write but not read capability, it cannot distinguish. In that case, you only find out if a read driver is present and has its external dependencies properly satisfied by using it, I'm afraid. The example above will show whether your rgdal/GDAL/Expat do work or not.


I have expat XML parser installed and gdal.  This probably sounds
rather stupid, but I am not sure what the following means in the link
that Dr. Bivand provided: "KML reading is only available if GDAL/OGR
is built with the Expat XML Parser, otherwise only KML writing will be
supported."  I installed both as debian packages (using get-apt).
Should I install both from source code, Expat XML Parser first and
then GDAL?

Sorry if I seem dense here, but it is not real clear to me.  Also,
even though this may be beyond the scope of R-sig-geo, I think that
other people are also struggling with this.

Thanks for any help.

Wade


On Thu, May 27, 2010 at 2:15 PM, Roger Bivand <roger.biv...@nhh.no> wrote:
On Thu, 27 May 2010, rick reeves wrote:

I do note that the example I provided does not demonstrate how to READ a
KML
file into R. But, SOON, I plan to modify the example to demonstrate
reading of KMLs
into some R-compatible format.

readOGR() does read KML files, but you do have to identify the correct layer
name - see:

http://www.gdal.org/ogr/drv_kml.html

Roger


RR

On 5/27/2010 10:15 AM, Wade Wall wrote:

Hi all,

Does anyone have experience reading and writing KML files in R?  I
have seen several threads that seem to suggest that it is difficult if
not impossible, but it is convenient to use KML files when working
with Google Earth and inconvenient to read and write shapefiles and
then convert to KML using other software.

If anyone is able to read and write KML files, if they could provide a
description of how to do it, I am sure a lot of people would
appreciate it.  I have tried to do so under both Windows and Linux to
no avail.  The Windows approach looks more difficult, judging by the
readme file associated with rgdal.

Thanks,

Wade

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo






--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: roger.biv...@nhh.no




--
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: roger.biv...@nhh.no
_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@stat.math.ethz.ch
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to