That makes a lot of sense. Perhaps we should use the default values that are hardcoded in ArcGIS when a new FGDB gets created? If someone uses other values, then they may get the slight snapping effect, which would be OK in that case? thoughts?<br>
<br><div class="gmail_quote">On Fri, Jul 1, 2011 at 11:13 AM, Paul Ramsey <span dir="ltr">&lt;<a href="mailto:pramsey@cleverelephant.ca">pramsey@cleverelephant.ca</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Nope, it&#39;s the Origin and Scale, which between them form a snapping<br>
grid. Unless your point is on the grid, it&#39;ll be snapped to a new<br>
location when inserted into file. So my problem was that in my process<br>
<br>
FGDB1&gt;PostGIS&gt;FGDB2<br>
<br>
the grid in FGDB2 was different from that of FGDB1. So everything got<br>
slightly perturbed. The question is, what origin and scale should we<br>
be using? Clearly these are going to need to be file writing options,<br>
but are the defaults OK as it stands? Actually, we know they aren&#39;t<br>
(at the moment) because not including a Z origin and scale results in<br>
the Z being zeroed out, which is No Good.<br>
<font color="#888888"><br>
P.<br>
</font><div><div></div><div class="h5"><br>
On Fri, Jul 1, 2011 at 10:56 AM, Ragi Burhum &lt;<a href="mailto:ragi@burhum.com">ragi@burhum.com</a>&gt; wrote:<br>
&gt; Paul,<br>
&gt;<br>
&gt; The one line that I think is making the difference is<br>
&gt; &lt;HighPrecision&gt;true&lt;/HighPrecision&gt;<br>
&gt; because, if memory serves me right, it kicks in logic for using<br>
&gt; 64bit-coordinates internally (actually I remember something about the sign<br>
&gt; and the mantissa being 53bits - can&#39;t recall exactly). ESRI migrated to what<br>
&gt; they call high precision coordinate system in ArcGIS 9.2. So all the<br>
&gt; software really expects the coordinate system to be declared that way by<br>
&gt; now. There is a good white paper on the ESRI site that describes how ArcGIS<br>
&gt; manages its coordinate systems internally. I hope that helps.<br>
&gt; - Ragi<br>
&gt;<br>
&gt;<br>
&gt;&gt; Date: Thu, 30 Jun 2011 13:26:21 -0700<br>
&gt;&gt; From: Paul Ramsey &lt;<a href="mailto:pramsey@cleverelephant.ca">pramsey@cleverelephant.ca</a>&gt;<br>
&gt;&gt; Subject: Re: [gdal-dev] Precision Mystery (FGDB)<br>
&gt;&gt; To: <a href="mailto:gdal-dev@lists.osgeo.org">gdal-dev@lists.osgeo.org</a><br>
&gt;&gt; Message-ID: &lt;<a href="mailto:BANLkTikNQyhsDkuNFNdEkN3S6GiHL5ihDQ@mail.gmail.com">BANLkTikNQyhsDkuNFNdEkN3S6GiHL5ihDQ@mail.gmail.com</a>&gt;<br>
&gt;&gt; Content-Type: text/plain; charset=ISO-8859-1<br>
&gt;&gt;<br>
&gt;&gt; OKAY, found it, and it&#39;s an odd one. It has nothing to do with the<br>
&gt;&gt; shape buffers or the transit into PostGIS... I just wrote a small<br>
&gt;&gt; program that uses the FGDB API almost exclusively, it only uses OGR to<br>
&gt;&gt; write the shape buffer.<br>
&gt;&gt;<br>
&gt;&gt; And the difference is in the declaration of the SRS... when I declare<br>
&gt;&gt; a UTM srs with the following extra XML<br>
&gt;&gt;<br>
&gt;&gt;                                    &lt;XOrigin&gt;-5120900&lt;/XOrigin&gt;<br>
&gt;&gt;                                    &lt;YOrigin&gt;-9998100&lt;/YOrigin&gt;<br>
&gt;&gt;                                    &lt;XYScale&gt;10000&lt;/XYScale&gt;<br>
&gt;&gt;                                    &lt;ZOrigin&gt;-100000&lt;/ZOrigin&gt;<br>
&gt;&gt;                                    &lt;ZScale&gt;10000&lt;/ZScale&gt;<br>
&gt;&gt;                                    &lt;MOrigin&gt;-100000&lt;/MOrigin&gt;<br>
&gt;&gt;                                    &lt;MScale&gt;10000&lt;/MScale&gt;<br>
&gt;&gt;                                    &lt;XYTolerance&gt;0.001&lt;/XYTolerance&gt;<br>
&gt;&gt;                                    &lt;ZTolerance&gt;0.001&lt;/ZTolerance&gt;<br>
&gt;&gt;                                    &lt;MTolerance&gt;0.001&lt;/MTolerance&gt;<br>
&gt;&gt;                                    &lt;HighPrecision&gt;true&lt;/HighPrecision&gt;<br>
&gt;&gt;<br>
&gt;&gt; Then writing the POINT(1 2 3) and reading back with ogrinfo I get<br>
&gt;&gt;<br>
&gt;&gt; FID Column = OBJECTID<br>
&gt;&gt; Geometry Column = SHAPE<br>
&gt;&gt; OGRFeature(test):1<br>
&gt;&gt;  POINT (1 2 3)<br>
&gt;&gt;<br>
&gt;&gt; But if I omit those lines, I get:<br>
&gt;&gt;<br>
&gt;&gt; FID Column = OBJECTID<br>
&gt;&gt; Geometry Column = SHAPE<br>
&gt;&gt; OGRFeature(test):1<br>
&gt;&gt;  POINT (1.000001729731139 1.999981429457875 0.0)<br>
&gt;&gt;<br>
&gt;&gt; Weird precision changes and my Z is gone! So those things matter...<br>
&gt;&gt; but what do they do...<br>
&gt;&gt;<br>
&gt;&gt; P.<br>
&gt;&gt;<br>
</div></div></blockquote></div><br>