[R-sig-Geo] writeOGR issue in dbf

Robert J. Hijmans r.hijmans at gmail.com
Thu Mar 18 18:03:46 CET 2010


I believe that this is part of the DBF specification (there is also a
limit on the number of characters in a variable name. 12?). This was
largely ignored by ArcView (and the versions of excel that write dbf
files), but apparently not by ArcGIS (apart from the missing warning
message, that is probably a good thing). Perhaps a future version of
readOGR could check for and fix variable names that are not DBF
compliant when writing shp files?
Robert

On Thu, Mar 18, 2010 at 9:40 AM, Wayne Richter
<wxrichte at gw.dec.state.ny.us> wrote:
> This should indeed be the problem. From the Help: "Field names must start with a letter. Field names must contain only letters, numbers, and underscores." Unfortunately, ESRI software can behave in a cryptic, inconsistent or unhelpful way when it encounters a field name that it doesn't like. A hidden trailing space can really mess you up.
>
>
>
> Wayne Richter
> New York State Department of Environmental Conservation
> 625 Broadway
> Albany, New York 12233-4756
> 518-402-8974
>
>>>>
> From:   "Robert J. Hijmans" <r.hijmans at gmail.com>
> To:     caspar hallmann <caspar.hallmann at gmail.com>
> CC:     r-sig-geo <r-sig-geo at stat.math.ethz.ch>
> Date:   3/18/2010 12:30 PM
> Subject:        Re: [R-sig-Geo] writeOGR issue in dbf
>
> I think the problem is an illegal variable name  "dist.m"
>
> This works for me:
>
> data(meuse)
> coordinates(meuse)=~x+y
> names(meuse)[12] = 'distm'
> writeOGR(meuse,".","test",driver="ESRI Shapefile")
>
> Robert
>
> On Thu, Mar 18, 2010 at 9:26 AM, Roger Bivand <Roger.Bivand at nhh.no> wrote:
>> On Thu, 18 Mar 2010, caspar hallmann wrote:
>>
>>> Dear list,
>>>
>>> I am using writeOGR to create an ESRI shapefile from a
>>> SpatialPointsDataFrame. When opening the shapefile in ArcMap and ask
>>> for the attributes, I get an error "A column was specified that does
>>> not exist".
>>
>> I only have other tools using OGR (GRASS, QGIS) and Excel 2003 SP3 on
>> Windows XP. Your example cannot be reproduced using those. I suspect from
>> trying to interpret the entrails of ESRI "help", that an integer column is
>> required reproducing the FID values already encoded in the *.shp. Try:
>>
>> meuse$FIDs <- 1:nrow(meuse)
>>
>> and write out again. This doesn't match your simple copying to get it to
>> read, though. If others could comment who have access to Arc (which
>> version), that would be useful. Please include a copy of the messages
>> displayed when rgdal is loaded, so that we have control of the versions.
>>
>> Does changing locale make a difference?
>>
>> Roger
>>
>>> Similarly, when opening the dbf of the shapefile in Paradox I get
>>> "Unable to open table. Corrupt table/index header".
>>> This does not only happen to my own Dataset but also the meuse data.
>>>
>>> data(meuse)
>>> coordinates(meuse)=~x+y
>>> class(meuse)
>>> writeOGR(meuse,".","test",driver="ESRI Shapefile")
>>> # then try ArcMap or Paradox fails as mentioned above.
>>> #Strangely, when i do
>>> write.dbf(read.dbf("test.dbf"),file="test2")
>>> #then renaming test2 into test, my attribute tables open up fine, and
>>> Paradox stops complaining.
>>>
>>> any clues?
>>>
>>> Caspar.
>>>
>>>> sessionInfo()
>>>
>>> R version 2.10.1 (2009-12-14)
>>> i386-pc-mingw32
>>>
>>> locale:
>>> [1] LC_COLLATE=Dutch_Netherlands.1252  LC_CTYPE=Dutch_Netherlands.1252
>>>  LC_MONETARY=Dutch_Netherlands.1252 LC_NUMERIC=C
>>> [5] LC_TIME=Dutch_Netherlands.1252
>>>
>>> attached base packages:
>>> [1] stats     graphics  grDevices utils     datasets  methods   base
>>>
>>> other attached packages:
>>> [1] pscl_1.03.3        coda_0.13-4        mvtnorm_0.9-9
>>> automap_1.0-5      MASS_7.3-5         lme4_0.999375-32
>>> Matrix_0.999375-33 maptools_0.7-29
>>> [9] lattice_0.18-3     foreign_0.8-39     raster_0.9.9-24
>>> rgdal_0.6-24       gstat_0.9-66       sp_0.9-57
>>>
>>> loaded via a namespace (and not attached):
>>> [1] grid_2.10.1  tools_2.10.1
>>>
>>> _______________________________________________
>>> R-sig-Geo mailing list
>>> R-sig-Geo at stat.math.ethz.ch
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>>>
>>
>> --
>> Roger Bivand
>> Economic Geography Section, Department of Economics, Norwegian School of
>> Economics and Business Administration, Helleveien 30, N-5045 Bergen,
>> Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
>> e-mail: Roger.Bivand at nhh.no
>>
>> _______________________________________________
>> 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
>
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>



More information about the R-sig-Geo mailing list