[GRASS-user] 3D Streets Data

Markus Neteler neteler at osgeo.org
Mon Jan 14 03:44:02 EST 2008


Matthew,

On Jan 13, 2008 10:20 PM, Matthew Pulis <mpulis at gmail.com> wrote:
> Thanks for your prompt answer Markus.
>
> The v.out.ogr is what I tried before, but redid it on the new shape-file.
> These are the first row of the new data :
>
> wkt_geom,cat,STSEG,STID,STNAME,DIR_PRE,DIR_SUF,STYPE,CLASS,F_ELEV,T_ELEV,MAP
> ,PRIV,FRLEFT,TOLEFT,FRRIGHT,TORIGHT,FRLEFT_A,TOLEFT_A,FRRIGHT_A,TORIGHT_A,ST
> ATEROAD,CARTONAME,CORP,SPEED,ONE_WAY,CLASSNAME,L_ZIPNAME,R_ZIPNAME,FT_COST,T
> F_COST,LABELNAME,F_NODE,T_NODE,CARTOLEVEL,SHAPE_LEN
> LINESTRING(625304.649659 214113.544271, 625301.199687 214078.520974,
> 625299.489761 214056.176602, 625299.289850
> 214050.649031),1,36074,20863,FIREFLY,,,RD,12,8,8,W0750-03,,101,199,100,198,1
> 01,119,100,118,0,FIREFLY RD,HS,25,BI,CITY,HOLLY SPRINGS,HOLLY
> SPRINGS,0.094452,0.094452,FIREFLY RD,0,0,,207.131131
>
> This is how I generated the shape file :
>
> GRASS 6.3.0RC1 (nc_spm_06):~ > v.out.ogr input=streets3d_new type=line
> dsn=streets3d_new_shps olayer=testogr lco="SPHT=ARCZ"

There is a trick here - avoid typos: It is
 lco="SHPT=ARCZ"
not:
 lco="SPHT=ARCZ"

(I again recommend copy-paste from the manual page)

If you specify lco="SPHT=ARCZ" correctly, it will indicate 3D export:

 v.out.ogr input=streets3d type=line dsn=streets3d_new_shps
olayer=testogr lco="SHPT=ARCZ"
 WARNING: Vector map <streets3d> is 3D. Use format specific layer creation
          options (parameter 'lco') to export in 3D rather than 2D (default)
 Exporting 49746 points/lines...
 ...

(personally I find the "WARNING" here inappropriate since I use lco!)

> Ogrinfo on the streets3d new shape file gave me :
>
> GRASS 6.3.0RC1 (nc_spm_06):~ > ogrinfo streets3d_new_shps/
> INFO: Open of `streets3d_new_shps/'
> using driver `ESRI Shapefile' successful.
> 1: testogr (Line String)

To get useful output, better run

ogrinfo -so streets3d_new_shps/ testogr
INFO: Open of `streets3d_new_shps/'
      using driver `ESRI Shapefile' successful.

Layer name: testogr
Geometry: 3D Line String       <<========= !! worked
Feature Count: 49746
Extent: (610869.384850, 196653.348553) - (676816.248304, 258102.572101)
Layer SRS WKT:
PROJCS["Lambert Conformal Conic",
    GEOGCS["grs80",
        DATUM["North_American_Datum_1983",
            SPHEROID["Geodetic_Reference_System_1980",6378137,298.257222101]],
        PRIMEM["Greenwich",0],
        UNIT["Degree",0.017453292519943295]],
    PROJECTION["Lambert_Conformal_Conic_2SP"],
    PARAMETER["standard_parallel_1",36.16666666666666],
    PARAMETER["standard_parallel_2",34.33333333333334],
    PARAMETER["latitude_of_origin",33.75],
    PARAMETER["central_meridian",-79],
    PARAMETER["false_easting",609601.22],
    PARAMETER["false_northing",0],
    UNIT["Meter",1]]
cat: Real (11.0)
STSEG: Real (11.0)
STID: Real (11.0)
STNAME: String (80.0)
...


> What I am seeing wrong is that there is no extra column being added to the
> dataset which contains the elevation. I am attaching a screenshot which
> shows this : http://solutions-lab.net/thesis/elevation.jpg

Ah, you want it as *attribute* column? This wasn't clear to me. So far
we worked on creating 3D geometry. Please note that GRASS is not
other proprietary GIS and hence it supports true 3D geometry. But you
can also generate a 2D SHAPE with 3rd dimension as attribute, check
the v.to.db page for this (or enjoy the new GRASS book :-)

good luck,
Markus


More information about the grass-user mailing list