R / GIS:按坐标设置子集SpatialLinesDataFrame

时间:2012-03-23 09:30:06

标签: r gis

  

可能重复:
  R/GIS: How to subset a shapefile by a lat-long bounding box?

我有一个SpatialLinesDataFrame类的数据帧“rivers”。 summary(rivers)给出:

> summary(rivers)
Object of class SpatialLinesDataFrame
Coordinates:
        min       max
x  66.33333 161.03750
y -10.45208  55.80208
Is projected: NA 
proj4string : [NA]
Data attributes:
     ARCID         FROM_NODE        TO_NODE         Sub_Bas         Maj_Bas             To_Bas                                Sub_Name    
 Min.   : 6087   Min.   : 6127   Min.   : 6227   Min.   : 1001   Min.   :    1.00   Min.   : -999   Tarim He                      : 1584  
 1st Qu.:35584   1st Qu.:37019   1st Qu.:36993   1st Qu.: 5017   1st Qu.:    5.00   1st Qu.: -888   Ch'ing-hai Hu                 : 1323  
 Median :50895   Median :53059   Median :53100   Median :13006   Median :   13.00   Median : 1050   Jo Shui / Gaxun Nur / Sogo Nur: 1301  
 Mean   :48954   Mean   :51014   Mean   :51024   Mean   :20846   Mean   :   21.41   Mean   :12745   Gobi1                         : 1246  
 3rd Qu.:63450   3rd Qu.:66032   3rd Qu.:66049   3rd Qu.:36043   3rd Qu.:   36.00   3rd Qu.:16006   Gobi2                         : 1074  
 Max.   :75961   Max.   :80067   Max.   :80068   Max.   :73006   Max.   :29055.00   Max.   :69014   Qagan Nur                     :  956  
                                                                                                    (Other)                       :42503  
                       Maj_Name        Sub_Area         Maj_Area          Strahler    
 Gobi Interior             :10130   Min.   :     0   Min.   :      0   Min.   :1.000  
 Amur Basin                : 5706   1st Qu.: 15409   1st Qu.: 413869   1st Qu.:1.000  
 Tarim Interior            : 4919   Median : 31063   Median :1584557   Median :1.000  
 Yangtze Basin             : 3716   Mean   : 84786   Mean   :1269122   Mean   :1.781  
 Ganges / Brahmaputra Basin: 3063   3rd Qu.: 88229   3rd Qu.:2079286   3rd Qu.:2.000  
 Plateau of Tibet Interior : 2104   Max.   :620574   Max.   :2165616   Max.   :7.000  
 (Other)                   :20349                                                     

我希望通过坐标对其进行子集化,使得x介于70,80和y之间,介于20,30之间。有没有办法使用maptools包吗?

1 个答案:

答案 0 :(得分:0)

不,使用maptools包无法执行此操作。您可以手动分解Spatial对象以进行裁剪,但这样会变得复杂,无法跟踪原始拓扑,并且无论如何都只使用基本R函数和sp包。更好的方法是在rgeos中使用适合此任务的几何特定函数。