How to Query KML point data as CSV using QGIS and R
Here you can see more than 800 points, each describing an observation of an individual bird. This data is in the form of KML, a sort of XML document from Google for spatial data.
I want to know which points have “pair” or “female” in the description text nodes using R. This way, I can quickly make and update a .csv in Excel of only the paired birds (based on color bands).
Even if there was a description string search function in Google Earth Pro (or other organization-centric GIS/waypoint software), this method is more
robust, as I can work immediately with the output as a data frame in R, rather than a list of results.
First, open an instance of QGIS. I am running ~2.8 on OSX. Add a vector layer of your KML.
“Command-A” in the point dialog to select all before import!
Next, under “Vector”, select “Merge vector layers” via Data Management Tools.
Select CSV and elect to save the file instead of use a temporary/scratch file (this is a common error).
Open your csv in Excel for verification!
The R bit:
# query for paired birds #EDIT: Libraries library(data.table) library(tidyverse) data <- data.frame(fread("Bird_CSV.csv")) pair_rows <- contains("pair", vars = data$description) fem_rows <- contains("fem", vars = data$description) result <- combine(pair_rows, fem_rows) result <- data[result,] write_csv(result, "Paired_Birds.csv")
Leave a Reply