On Mon, 8 Aug 2011, Jeff Ranara wrote:
HI again,
An update:
Found two workarounds:
1. Dividing MVALTARX6C and MVALTARX3C by 10000 so they're around the same
order or magnitude as MVALTARX6 and MVALTARX3 respectively (both of which
got written fine). Works for me since I am working with relative rankings
and the division maintains the relative order.
2. Tried writing with writeOGR instead and it also worked!
writeOGR(BRANK02_ACC, ".", "OGR_Sociotope_noBU_2003_BRNK02_AXC",
driver="ESRI Shapefile")
But still, the original problem is "skumt" (Swedish word meaning strange,
odd, queer)
No, just read ?write.dbf (in foreign). You find there that the
representation "maxes" out at 19 characters, as in DBF specs. In this
case, a negative scale is generated, which should not happen, but the
limitation is documented.
So your heuristics are correct, either divide the too large variable by
some orders of magnitude to allow it to be represented within 19 digits,
including sign and decimal point, or use the OGR implementation, which
permits a non-standard larger precision than 19. I'll add a link to
?write.dbf on ?writeSpatialShape.
Roger
Jeff
Jeff Ranara, Ph.D. candidate
Natural Resource Management
Dept of Systems Ecology, and
Stockholm Resilience Center
Stockholm University
SE-106 91 Stockholm, Sweden
Visiting/delivery address: Kräftriket 9A
Tel: +46 (0)8 164252, +46 (0)73 7078874
www.stockholmresilience.org/ranara
-----Original Message-----
From: Jeff Ranara [mailto:jeff.ran...@stockholmresilience.su.se]
Sent: Monday, August 08, 2011 12:21 PM
To: 'r-sig-geo@r-project.org'
Subject: problem in writing shapefiles with writePointsShape()
Hi folks,
What am I missing here? Am I using old routines? Missing some parameter?
Mixing up object types?
Am under the gun and my time-limited attempts at troubleshooting have given
nada. Am testing some workarounds in the meantime.
Perhaps someone knows a quick answer?
###The data of interest
#> typeof(MVALTARX6C)
#[1] "double"
#> str(MVALTARX6C)
# num [1:380000] NA NA NA NA NA NA NA NA NA NA ...
#> summary(MVALTARX6C)
# Min. 1st Qu. Median Mean 3rd Qu. Max.
#1.38000e+07 5.33000e+12 2.68300e+13 3.65000e+14 1.42700e+14 2.37200e+16
# NA's
#2.79119e+05
#> typeof(MVALTARX6)
#[1] "double"
#> str(MVALTARX6)
# num [1:380000] NA NA NA NA NA NA NA NA NA NA ...
#> summary(MVALTARX6)
# Min. 1st Qu. Median Mean 3rd Qu. Max.
#3.69600e+03 5.95600e+08 2.41200e+09 3.65300e+10 1.74800e+10 2.08200e+12
# NA's
#2.79119e+05
#>
#> typeof(MVALTARX3C)
#[1] "double"
#> str(MVALTARX3C)
# num [1:380000] NA NA NA NA NA NA NA NA NA NA ...
#> summary(MVALTARX3C)
# Min. 1st Qu. Median Mean 3rd Qu. Max.
#1.29500e+07 5.33900e+11 1.90900e+12 1.14200e+13 9.17500e+12 4.88700e+15
# NA's
#2.79119e+05
#> typeof(MVALTARX3)
#[1] "double"
#> str(MVALTARX3)
# num [1:380000] NA NA NA NA NA NA NA NA NA NA ...
#> summary(MVALTARX3)
# Min. 1st Qu. Median Mean 3rd Qu. Max.
#3.69600e+03 6.80000e+07 2.56900e+08 1.09700e+09 1.14600e+09 4.28400e+11
# NA's
#2.79119e+05
###WRITTEN TO A SHAPEFILE WITH THE FOLLOWING
new_df = cbind(BRNK01[1:13],
MRVALTARX6,MRVALTAX6C,MRVALTARX3,MRVALTAX3C,
RVALTARX6,RVALTARX6C,RVALTARX3,RVALTARX3C,
BRNK01[14:16], X1000M_6AX,TX1000M_6AX,GånGAVSTån,
MVALTARX6,MVALTARX6C,VALTARX6,VALTARX6C,
X300M_3AX,TX300M_3AX,
MVALTARX3,MVALTARX3C,VALTARX3,VALTARX3C,
BRNK01[17:66])
Typeof(BRNK01_SMPL25)
BRANK02_ACC = BRNK01_SMPL25
BRANK02_ACC@data = new_df
writePointsShape(BRANK02_ACC, "Sociotope_noBU_2003_BRNK02_AXC", factor2char
= TRUE, max_nchar=254)
### VALTARX6C and MVALTARX3C end up getting written to the shapefile
completely differently (see below). Both from inspection in ArcGIS and
reading
#in the shapefile again. VALTARX6 and MVALTARX3 get written fine.
VALTARX6C and MVALTARX3C are certainly larger values
##but well within the range of doubles
READ_BRANK02_ACC = readShapePoints("Sociotope_noBU_2003_BRNK02_AXC")
BRANK02_ACC$MVALTARX6C[45:60]
[1] NA NA NA 2.005397e+12 1.513941e+12
[6] 1.489291e+12 1.492141e+12 2.759250e+12 2.967822e+12 3.095638e+12
[11] 4.357538e+14 4.325040e+14 4.203615e+14 3.984211e+14 3.957644e+14
[16] 2.598429e+12
READ_BRANK02_ACC$MVALTARX6C[45:60]
[1] NA NA NA -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
BRANK02_ACC$MVALTARX6[45:60]
[1] NA NA NA 203110878 153213098 150521517
[7] 150521517 286549903 309324823 323817954 45747933230 45442762056
[13] 44138848859 41808450805 41503279631 277428340
READ_BRANK02_ACC$MVALTARX6[45:60]
[1] NA NA NA 203110878 153213098 150521517
[7] 150521517 286549903 309324823 323817954 45747933230 45442762056
[13] 44138848859 41808450805 41503279631 277428340
BRANK02_ACC$MVALTARX3C[45:60]
[1] NA NA NA 3.475204e+10 3.477973e+10
[6] 2.867960e+10 2.052463e+10 1.993678e+10 1.986494e+10 1.979308e+10
[11] 2.642534e+12 2.640440e+12 2.642121e+12 2.643803e+12 2.645484e+12
[16] 2.598429e+12'
READ_BRANK02_ACC$MVALTARX3C[45:60]
[1] NA NA NA -2147483648 -2147483648 -2147483648
[7] -2147483648 -2147483648 -2147483648 -2147483648 -2147483648 -2147483648
[13] -2147483648 -2147483648 -2147483648 -2147483648
BRANK02_ACC$MVALTARX3[45:60]
[1] NA NA NA 3519760 3519760 2898626 2070447
[8] 2070447 2070447 2070447 277428340 277428340 277428340 277428340
[15] 277428340 277428340
READ_BRANK02_ACC$MVALTARX3[45:60]
[1] NA NA NA 3519760 3519760 2898626 2070447
[8] 2070447 2070447 2070447 277428340 277428340 277428340 277428340
[15] 277428340 277428340
Ideas anyone?
Thanks!
Jeff
Jeff Ranara, Ph.D. candidate
Natural Resource Management
Dept of Systems Ecology, and
Stockholm Resilience Center
Stockholm University
SE-106 91 Stockholm, Sweden
Visiting/delivery address: Kräftriket 9A
Tel: +46 (0)8 164252, +46 (0)73 7078874
www.stockholmresilience.org/ranara
_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
--
Roger Bivand
Department of Economics, NHH Norwegian School of Economics,
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@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo