在区域内的文本文件中查找long和lat?

时间:2013-09-20 12:47:09

标签: r

我有一个包含以下信息的文本文件:

     Grid Point Index, Latitude, Longitude, Cell
      167,    0.000000,    9.432301, 1350
      169,    0.000000,    9.544590, 1350
      171,    0.000000,    9.656878, 1350
      173,    0.000000,    9.769168, 1350
      175,    0.000000,    9.881457, 1350
      177,    0.000000,    9.993747, 1350
      179,    0.000000,   10.106036, 1386
      181,    0.000000,   10.218326, 1386

我想找到属于这个区域的所有lat和long

     :lat 40.000  ,43.00 and long 0.000000, 3.902665. 
好吧,我可以手动完成,但这需要花费很多时间。任何人都可以帮我构建这个功能

              insert the zone of lat and long

然后会在文件中找到此区域内的所有lat-long以及相应的网格点索引和单元格。

阅读文件

              das= read.table("C:\\Users\\lonlatnter.txt", sep=",",header=TRUE)

2 个答案:

答案 0 :(得分:3)

foo <- function(df,  latMin, latMax, longMin, longMax) {
    return (
        df[
            df$Latitude >= latMin & df$Latitude <= latMax &
            df$Longitude >= longMin & df$Longitude <= longMax,
            c('Grid.Point.Index', 'Cell')
        ]
    )
}

用法:

> foo(das, latMin=40, latMax=43, longMin=0, longMax=3.902665)
[1] Grid.Point.Index Cell            
<0 rows> (or 0-length row.names)

> das[1,c(2,3)] <- c(41.0, 2)

> foo(das, latMin=40, latMax=43, longMin=0, longMax=3.902665)
Grid.Point.Index Cell
1            167 1350

答案 1 :(得分:1)

您拥有包含数据的data.frame X.您可以通过将条件写入索引括号来选择行:

X[ cond1 & cond2 & ..., ]

在你的例子中:

a <- 40
b <- 43
c <- 0
d <- 3.9
X[ X$Lat > a & x$Lat < b & X$Lon > c & X$Lon < d, ]