Thanks - I was hoping I could rely on the library to do the intelligent truncation, but couldn&#39;t work it out.<div>Can I just clarify that the name to use with SetField would then be what is provided by your last line?<br>
<br></div><div> layer_defn.GetFieldDefn(last_field_idx).GetNameRef()</div><div><br></div><div>Cheers and thanks</div><div>Ole</div><div><br><div class="gmail_quote">On Tue, Sep 6, 2011 at 9:26 PM, Even Rouault <span dir="ltr">&lt;<a href="mailto:even.rouault@mines-paris.org">even.rouault@mines-paris.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">Selon Ole Nielsen &lt;<a href="mailto:ole.moller.nielsen@gmail.com">ole.moller.nielsen@gmail.com</a>&gt;:<br>

<br>
</div><div class="im">&gt; Hi Even<br>
&gt;<br>
&gt; Thanks again for all your help - all tests now pass using either gdal 1.6 or<br>
&gt; 1.8. Just to summarise, there were three issues as I see them:<br>
&gt;<br>
&gt;<br>
</div>&gt;    1. Bounding boxes for raster data are computed differently (but better)<br>
&gt;    in newer versions<br>
<br>
Specific to PixelIsPoint in the GTiff driver.<br>
<br>
&gt;    2. While v1.6 of ogre would allow an single number of type numpy.ndarray<br>
<div class="im">&gt;    this is no longer allow. Casting it to a float solves the problem.<br>
<br>
</div>I wasn&#39;t aware it could work before. There&#39;s perhaps now an ambiguity on which<br>
method to use, due to the addition of new possibilities for SetField() (just a<br>
bling guess).<br>
<br>
&gt;    3. New versions of ogre will not allow attribute names of length longer<br>
<div class="im">&gt;    than 10 (at least when using the ESRI driver). Formerly, I think it<br>
&gt; silently<br>
&gt;    truncated, now it is up to the user. That&#39;s at least what I did.<br>
<br>
</div>I&#39;ve a looked quickly a bit at your code and I&#39;ve the feeling that you truncate<br>
yourself, instead of relying on OGR. The Shapefile driver does more than<br>
truncating. It also ensures uniqueness of the truncated names. For example, if<br>
you try creating &quot;a_very_long_name&quot; and &quot;a_very_long_name_again&quot;, they will be<br>
respectively truncated to &quot;a_very_lon&quot; and &quot;a_very_l_1&quot;. A safer solution to get<br>
the field name that got to the file would be to :<br>
<br>
field_defn = ogr.FieldDefn(&quot;a_very_long_name&quot;, ogr.OFTString)<br>
lyr.CreateField(field_defn)<br>
layer_defn = lyr.GetLayerDefn()<br>
last_field_idx = layer_defn.GetFieldCount() - 1<br>
real_field_name = layer_defn.GetFieldDefn(last_field_idx).GetNameRef()<br>
</blockquote></div><br></div>