[R-sig-Geo] transparent polygon outline Re: Shows error when I try to write shape file-Re: Combing attribute table with polygon??

Zia Ahmed zua3 at cornell.edu
Thu Jan 28 19:14:25 CET 2010


I think I can use this accordingly. Thank you so much. I have a simple 
question. How do I plot a map without boundary (transparency)  ? I have 
to plot a shape files with  thousands of polygons!
Thanks again zia

# now it works
col = terrain.colors(nrow(m))
plot(wrld_simpl, col=col[wrld_simpl$v])



Robert J. Hijmans wrote:
> Here is reproducible example, #1 fails because what I suspect is a bug
> in merge, but #2 works. Robert
>
>  library(maptools)
>  data(wrld_simpl)
> # create some data to merge with
>  m = sort(unique(wrld_simpl at data$REGION))
>  m = cbind(m, 1:length(m))
>  colnames(m) = c('REGION', 'v')
> # merge
>  wrld_simpl at data = merge(wrld_simpl at data, m, by='REGION', all.x=TRUE,
> sort=FALSE)
>
> # but this does not work:
> col = terrain.colors(nrow(m))
> plot(wrld_simpl, col=col[wrld_simpl$v])
> # he data.frame is rearanged; despite "sort=FALSE"
> # this looks like a bug in merge to me. Anyone, am I wrong?
>
>
> Therefore, I would do
>
> library(maptools)
> data(wrld_simpl)
> # get the data.frame out of the SPGDF; to simplify code
> d = wrld_simpl at data
> # add a sort key
> d$sort = 1:nrow(d)
> # create some data to merge with
>  m = sort(unique(d$REGION))
>  m = cbind(m, 1:length(m))
>  colnames(m) = c('REGION', 'v')
> # merge
>  x = merge(d, m, by='REGION', all.x=TRUE)
> # sort
>  x = x[order(x$sort),]
> # put the data back
>  wrld_simpl at data = x
>
>
> # now it works
> col = terrain.colors(nrow(m))
> plot(wrld_simpl, col=col[wrld_simpl$v])
>
>
> On Wed, Jan 27, 2010 at 6:59 PM, Zia Ahmed <zua3 at cornell.edu> wrote:
>   
>> Hi, Roberts,
>> In my last mail, I mentioned it works fine,  but when I try write shape file
>> after merging it shows error. I think I need to  define  spatial object or
>> data frame after merging. I do not know  how to do this. Thanks again.
>> Zia
>>
>>     
>>> poly.data1 = merge(poly.data, data.table, by="MUKEY" ,all.x = TRUE)
>>> names(poly.data1) # polygoan
>>>       
>> [1] "MUKEY"      "AREASYMBOL" "SPATIALVER" "MUSYM"      "Sand"     [6]
>> "Silt"       "Clay"       "pH"         "CEC"        "EC"       [11] "SAR"
>>      "CaCO3"      "SOM"        "BD"         "AWC"      [16] "KSAT"
>> "Kf"         "Kw"         "LL"         "LEP"
>>     
>>> polyShp <- "D:/test/mapunit_poly.shp" > writeOGR(poly.data1, dsn=polyShp,
>>> layer="mapunit_poly", driver="ESRI Shapefile")
>>>       
>> Error in writeOGR(poly.data1, dsn = polyShp, layer = "mapunit_poly", driver
>> = "ESRI Shapefile") :
>>  obj of wrong class
>>
>> Zia Ahmed wrote:
>>     
>>> Thank you so much Roberts! it works.
>>>
>>> Zia
>>>
>>> Robert J. Hijmans wrote:
>>>       
>>>> Zia, something like this might work as long as MUKEY has no NA values:
>>>>
>>>> poly.data = merge(poly.data, data.table, by="MUKEY" ,all.x = TRUE)
>>>>
>>>> Robert
>>>>
>>>> On Wed, Jan 27, 2010 at 1:58 PM, Zia Ahmed <zua3 at cornell.edu> wrote:
>>>>
>>>>         
>>>>> I have created one data table and one polygon in R. Both have a similar
>>>>> type
>>>>> of column.  I want to combine or join them with this column or field
>>>>> ("MUKEY").  Then  I will convert this polygon  as  a ESRI  shape file.
>>>>> But  when  I  used  spCbind,   I got error. I think i miss something
>>>>> here.
>>>>> Is there any way join attribute table with polygon? Thanks
>>>>> Zia
>>>>>
>>>>> poly.data1 <- spCbind(poly.data, data.table)
>>>>> Error in spCbind(poly.data, data.table) : different numbers of rows
>>>>>
>>>>>
>>>>> names(poly.data) # polygoan
>>>>> [1] "AREASYMBOL" "SPATIALVER" "MUSYM"      "MUKEY"    >
>>>>> names(data.table) #
>>>>> data
>>>>> [1] "MUKEY" "Sand"  "Silt"  "Clay"  "pH"    "CEC"   "EC"    "SAR"
>>>>> "CaCO3"
>>>>> [10] "SOM"   "BD"    "AWC"   "KSAT"  "Kf"    "Kw"    "LL"    "LEP"
>>>>>
>>>>>           
>>>>>> length(poly.data$MUKEY)
>>>>>>
>>>>>>             
>>>>> [1] 76969
>>>>>
>>>>>           
>>>>>> length(data.table$MUKEY)
>>>>>>
>>>>>>             
>>>>> [1] 184
>>>>>    poly.data1 <- spCbind(poly.data, data.table)
>>>>>
>>>>> combinedShp1 <- "D:/test/combined1.shp" writeOGR(poly.data1,
>>>>> dsn=combinedShp1, layer="combined1", driver="ESRI Shapefile")
>>>>>
>>>>> _______________________________________________
>>>>> R-sig-Geo mailing list
>>>>> R-sig-Geo at stat.math.ethz.ch
>>>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>>>
>>>>>
>>>>>           
>>> _______________________________________________
>>> R-sig-Geo mailing list
>>> R-sig-Geo at stat.math.ethz.ch
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>       
>>     
-------------- next part --------------
A non-text attachment was scrubbed...
Name: zua3.vcf
Type: text/x-vcard
Size: 281 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-geo/attachments/20100128/52bcc468/attachment.vcf>


More information about the R-sig-Geo mailing list