More info.....
ogr2ogr --version = GDAL 1.10.1, released 2013/08/26
python --version = Python 2.7.3

I have modified my script to get the field type
while feat is not None:
          feat_defn = layer.GetLayerDefn()
          field_defn = 
feat_defn.GetFieldDefn(feat_defn.GetFieldIndex(attribut))
          print field_defn.GetType()
          if field_defn.GetType() == ogr.OFTReal:
            print "%.4f" % feat.GetFieldAsDouble(attribut)
          output.add(feat.GetFieldAsString(attribut))
          feat = layer.GetNextFeature()

It detects that it is a real, But GetFieldAsDouble also truncate the value 
at the comma



Steve Toutant/INSPQ/SSSS 
2015-05-13 15:11

A
[email protected]
cc

Objet
Python ogr GetFieldAsString problem








I'm trying to parse a GML and read all the values of an attribute.
Example
<gml:featureMember> 
      <ms:SMDVDP_STAT_METE fid="SMDVDP_STAT_METE.2153"> 
        <ms:LONG_STAT>-64,2131</ms:LONG_STAT> 
      </ms:SMDVDP_STAT_METE> 
    </gml:featureMember> 

DescribeFeatureType for this layer returns 
<element name="LONG_STAT" minOccurs="0" type="double"/> 

wfs_ds = ogr.Open(tmp_file.name)  #tmp_file.name is the response of a WFS 
getFeature request
layer = wfs_ds.GetLayerByName('SMDVDP_STAT_METE ')
feat = layer.GetNextFeature()
      while feat is not None:
          output.add(feat.GetFieldAsString('LONG_STAT'))
          feat = layer.GetNextFeature()

(At runtime, the WFs, layer and attribute can be anything of any type. And 
decimal separator, can be ',' or '.')
The problem is that feat.GetFieldAsString('LONG_STAT') truncate the string 
to the comma

So instead of having -64,2131, I get -64 in the output

What is the appropriate way to get the value of an attribute?

thanks you!





_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to