Brilliant! I will take a closer look at the PDF after I finish some things I need to take care of. The python code would be nice, but the truth is that this geocoding is a small part of the project (it is my UNIGIS Master&#39;s thesis as well :-), and if I can get decent geocoding through Google, then I would prefer not to get too caught up in that. I am looking at heat and mortality in Barcelona, and I need to generate a lot of interpolated temperature maps, so I would like to spend more time on that.<div>
<br></div><div>From the images in the paper (figure 35) it looks like Google is better at locating the position of the address, but then in Table 12 it shows that Google&#39;s positional accuracy was slightly worse than Bing&#39;s. Do you know why that is? </div>
<div><br></div><div>I&#39;m geocoding addresses of people who died, so positional accuracy is important with regard to heat exposure. Which would you recommend? </div><div><br></div><div>Actually, after reading some of that, maybe I should take a look at your code. It looks like I am going to need to do more to make sure these are correct. The difficult thing is that the addresses I have are abbreviated (like &quot;CL/ LLEO, 12&quot; which is really &quot;Carrer del Lleó 12&quot;), so it will be hard to check accuracy automatically.</div>
<div><br></div><div>i am definitely citing your paper.</div><div><br></div><div>Cheers,</div><div>JP</div><div><div><br><div class="gmail_quote">On Sat, Feb 5, 2011 at 5:53 PM, Stark Hans-Jörg <span dir="ltr">&lt;<a href="mailto:hansjoerg.stark@fhnw.ch">hansjoerg.stark@fhnw.ch</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div lang="DE-CH" link="blue" vlink="purple"><div><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;color:#1F497D">Hi JP</span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;color:#1F497D"> </span></p><p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;color:#1F497D">Hope this helps: </span><a href="http://www.unigis.ac.at/club/bibliothek/pdf/40138.pdf" target="_blank"><span lang="EN-GB">http://www.unigis.ac.at/club/bibliothek/pdf/40138.pdf</span></a></p>
<p class="MsoNormal"> </p><p class="MsoNormal"><span lang="EN-GB">In OA we are currently running a test-phase where we check all user-digitised addresses versus open Geocoding engines like Bing, Google and Yahoo. The comparison results shall then be an indicator of the quality of the user entered address. Cf. </span><a href="http://geolin01.cti.ac.at/openaddresses/" target="_blank"><span lang="EN-GB">http://geolin01.cti.ac.at/openaddresses/</span></a><span lang="EN-GB"> (to digitise) and </span><a href="http://geolin01.cti.ac.at/openaddresses/qa/qareport" target="_blank"><span lang="EN-GB">http://geolin01.cti.ac.at/openaddresses/qa/qareport</span></a><span lang="EN-GB"> to get the report (and </span><a href="http://code.google.com/p/openaddresses/wiki/qa" target="_blank"><span lang="EN-GB">http://code.google.com/p/openaddresses/wiki/qa</span></a><span lang="EN-GB"> for a description).</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p><p class="MsoNormal"><span lang="EN-GB">I run the yahoo geocoding in python. If you want to see the code I could provide it (it is not yet in the wiki) and perhaps you can take parts of it for your purpose to avoid starting from scratch.</span></p>
<p class="MsoNormal"><span lang="EN-GB"> </span></p><p class="MsoNormal"><span lang="EN-GB">Best,</span></p><p class="MsoNormal"><span lang="EN-GB">hj</span><span lang="EN-GB" style="font-size:11.0pt;color:#1F497D"></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:11.0pt;color:#1F497D"> </span></p><p class="MsoNormal" style="margin-left:35.4pt"><b><span lang="DE" style="font-size:10.0pt">Von:</span></b><span lang="DE" style="font-size:10.0pt"> <a href="mailto:discuss-bounces@lists.osgeo.org" target="_blank">discuss-bounces@lists.osgeo.org</a> [mailto:<a href="mailto:discuss-bounces@lists.osgeo.org" target="_blank">discuss-bounces@lists.osgeo.org</a>] <b>Im Auftrag von </b>JP Glutting<br>
<b>Gesendet:</b> Samstag, 5. Februar 2011 17:42</span></p><div><div></div><div class="h5"><br><b>An:</b> OSGeo Discussions<br><b>Betreff:</b> Re: [OSGeo-Discuss] Batch geocoding</div></div><p></p><div><div></div><div class="h5">
<p class="MsoNormal" style="margin-left:35.4pt"> </p><p class="MsoNormal" style="margin-left:35.4pt">Hi HJ,</p><div><p class="MsoNormal" style="margin-left:35.4pt"> </p></div><div><p class="MsoNormal" style="margin-left:35.4pt">
Yes, thanks, it is relevant. I was going to go looking for a reference just like that. It looks excellent. Is there a PDF available? From the image, it looks like Google is much better, but I can&#39;t read the table online (and I don&#39;t seem to get GeoInformatics in the mail anymore, not sure why).</p>
</div><div><p class="MsoNormal" style="margin-left:35.4pt"> </p></div><div><p class="MsoNormal" style="margin-left:35.4pt">At this point, I am not sure I have much choice in the matter. I can geocode the addresses in Google using fusion tables, but Yahoo seems to start returning errors after a few thousand lookups per day via geopy.</p>
</div><div><p class="MsoNormal" style="margin-left:35.4pt"> </p></div><div><p class="MsoNormal" style="margin-right:0cm;margin-bottom:12.0pt;margin-left:35.4pt">After spending some time fixing geocoding errors in fusion tables, I think I am going to go back and edit the addresses in the source table and re-export them to Fusion. It is putting addresses like &quot;CL/ LLEO, 12, Barcelona, Spain&quot; in León. Adjusting that to &quot;Carrer del Lleó, 12, Barcelona, Spain&quot; does a much better job, so I am going to go back and make abbreviations like &quot;CL/&quot;, &quot;PA/&quot;, &quot;RBLA&quot;, etc. explicit and try the geocoding again. On the whole, it did a very good job, but there are a lot of addresses that I need to fix. It would probably work better if I could specify fields for City and Country (some of the addresses were encoded in Bermuda, despite all having &quot;Barcelona, Spain&quot; appended to them). </p>
</div><div><p class="MsoNormal" style="margin-left:35.4pt">Cheers,</p></div><div><p class="MsoNormal" style="margin-right:0cm;margin-bottom:12.0pt;margin-left:35.4pt">JP</p><div><p class="MsoNormal" style="margin-left:35.4pt">
On Sat, Feb 5, 2011 at 4:54 PM, Stark Hans-Jörg &lt;<a href="mailto:hansjoerg.stark@fhnw.ch" target="_blank">hansjoerg.stark@fhnw.ch</a>&gt; wrote:</p><div><div><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;color:#1F497D">BTW: the geocoding engines of Yahoo and Google provide different spatial accuracy (cf. </span><a href="http://www.geoinformatics.com/blog/in-the-spotlight/quality-assessment-of-volunteered-geographic-information-vgi" target="_blank"><span lang="EN-GB">http://www.geoinformatics.com/blog/in-the-spotlight/quality-assessment-of-volunteered-geographic-information-vgi</span></a><span lang="EN-GB">) </span></p>
<p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;color:#1F497D">But I do not know whether that is relevant for your task.</span></p><p class="MsoNormal" style="margin-left:35.4pt">
<span lang="EN-GB" style="font-size:11.0pt;color:#1F497D"> </span></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;color:#1F497D">Cheers,</span></p><p class="MsoNormal" style="margin-left:35.4pt">
<span lang="EN-GB" style="font-size:11.0pt;color:#1F497D">hj</span></p><p class="MsoNormal" style="margin-left:35.4pt"><span lang="EN-GB" style="font-size:11.0pt;color:#1F497D"> </span></p><p class="MsoNormal" style="margin-left:70.8pt">
<b><span lang="DE" style="font-size:10.0pt">Von:</span></b><span lang="DE" style="font-size:10.0pt"> <a href="mailto:discuss-bounces@lists.osgeo.org" target="_blank">discuss-bounces@lists.osgeo.org</a> [mailto:<a href="mailto:discuss-bounces@lists.osgeo.org" target="_blank">discuss-bounces@lists.osgeo.org</a>] <b>Im Auftrag von </b>JP Glutting<br>
<b>Gesendet:</b> Samstag, 5. Februar 2011 16:37</span></p><div><p class="MsoNormal" style="margin-left:35.4pt"><br><b>An:</b> OSGeo Discussions<br><b>Betreff:</b> Re: [OSGeo-Discuss] Batch geocoding</p></div><p class="MsoNormal" style="margin-left:70.8pt">
 </p><p class="MsoNormal" style="margin-left:70.8pt">For anyone who is considering using Fusion Tables, it has a very nice feature that allows you to select a point that has been badly geocoded, and find the right location searching in a small pop-up map, and then select from a set of alternate locations. Your choice modifies the coordinates of the geocoding, but not the address itself. A very nice and quite easy way to fix problems.</p>
<div><div><div><p class="MsoNormal" style="margin-left:70.8pt"> </p></div><div><p class="MsoNormal" style="margin-left:70.8pt">Cheers,</p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt;margin-left:70.8pt">JP</p>
<div><p class="MsoNormal" style="margin-left:70.8pt">On Sat, Feb 5, 2011 at 12:37 AM, JP Glutting &lt;<a href="mailto:jpglutting@gmail.com" target="_blank">jpglutting@gmail.com</a>&gt; wrote:</p><p class="MsoNormal" style="margin-left:70.8pt">
It is pretty slick, but I just started using it about an hour ago, so I haven&#39;t thought much about what to do with it. I did see a comment where someone from Google said that reverse geocoding is not possible yet. </p>
<div><p class="MsoNormal" style="margin-left:70.8pt"> </p></div><div><p class="MsoNormal" style="margin-left:70.8pt">I am going to have to get up to speed with PostGIS, but this is a pretty simple operation. I didn&#39;t number the addresses, but each event has a real address and a &quot;cleaned&quot; address column in a table. The CSV that I uploaded to Fusion was just a &quot;select distinct...&quot; of the cleaned addresses, so it will serve as a lookup table for all the addresses in the original table. I&#39;m not sure how I am going to reorganize the tables afterward, but I want to interpolate temperatures for each data point based on other data that I have, and I think PostGIS only does simpler operations right now, so I might  have to export the points into shapefiles for each day an event occurs and do splines in another package, then copy the interpolated values back into the database. I am sure there is a more elegant way to do that, I really need to think about it some more. </p>
</div><div><p class="MsoNormal" style="margin-left:70.8pt"> </p></div><div><p class="MsoNormal" style="margin-left:70.8pt">(Oh, hey, I just saw that you can compile R into Postgres. That is pretty crazy, but potentially totally awesome: <a href="http://postgis.refractions.net/pipermail/postgis-users/2009-March/022894.html" target="_blank">http://postgis.refractions.net/pipermail/postgis-users/2009-March/022894.html</a>)</p>
</div><div><p class="MsoNormal" style="margin-left:70.8pt"> </p></div><div><p class="MsoNormal" style="margin-left:70.8pt">Cheers,</p></div><div><p class="MsoNormal" style="margin-left:70.8pt">JP</p><div><div><p class="MsoNormal" style="margin-bottom:12.0pt;margin-left:70.8pt">
 </p><div><p class="MsoNormal" style="margin-left:70.8pt">On Sat, Feb 5, 2011 at 12:17 AM, Dan Putler &lt;<a href="mailto:dan.putler@sauder.ubc.ca" target="_blank">dan.putler@sauder.ubc.ca</a>&gt; wrote:</p><p class="MsoNormal" style="margin-left:70.8pt">
Glad to be of help, I&#39;m just curious about what the licensing / terms of use on the KML files that come out of fusion tables. Plus I want to know if it will reverse geocode. It is very slick, but I can imagine violating the terms of use almost instantly.<br>
<br>In terms of your next problem (which seems like one for the PostGIS user list), did you create a unique address ID? if you did, can&#39;t you put it in the data you created the fusion table from and then just do the appropriate table join in Postgres/PostGIS?<br>
<br>Dan</p><div><p class="MsoNormal" style="margin-left:70.8pt"><br><br>On 02/04/2011 03:08 PM, JP Glutting wrote:</p></div><blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
<div><p class="MsoNormal" style="margin-bottom:12.0pt;margin-left:70.8pt">That is a nice trick, I will remember that. I really just need the coordinates, since each coordinate needs to go back into a database in a register of a location-time that needs more data added later. These are the &quot;generic&quot; addresses, with the apartment numbers stripped, so each address will provide coordinates for multiples DB entries on different dates, and I won&#39;t really be using them on the same layer. But I am sure I can figure out a way to get the data back out with PostGIS (the original data is in Postgres anyway).<br>
<br>Cheers,<br>JP</p></div><div><p class="MsoNormal" style="margin-left:70.8pt">On Fri, Feb 4, 2011 at 11:59 PM, Dan Putler &lt;<a href="mailto:dan.putler@sauder.ubc.ca" target="_blank">dan.putler@sauder.ubc.ca</a> &lt;mailto:<a href="mailto:dan.putler@sauder.ubc.ca" target="_blank">dan.putler@sauder.ubc.ca</a>&gt;&gt; wrote:<br>
<br>   JP,<br><br>   If you export the KML, and then feed it into QGIS you can then<br>   save the resulting layer as a shapefile, which is probably what<br>   you are really hoping to have since you can then easily feed it to<br>
   R, PostGIS, or a number of other tools to pull the coordinates.<br><br>   Dan<br><br><br>   On 02/04/2011 02:20 PM, JP Glutting wrote:<br><br>       Hi Bernie,<br><br>       You can&#39;t actually get the lat-lng back out of a Fusion table.<br>
       It will geocode all the addresses, but you can&#39;t get the<br>       numbers back, you can just make a map or layer or something.<br><br>       <a href="http://groups.google.com/group/fusion-tables-users-group/browse_thread/thread/91c43c73107164eb" target="_blank">http://groups.google.com/group/fusion-tables-users-group/browse_thread/thread/91c43c73107164eb</a><br>
<br>       Unless I export it to KML and pull it back out of there?<br><br>       That seems like a lot of work. But it sure geocodes like<br>       gangbusters.<br><br>       Cheers,<br>       JP<br><br>       Public Health - GIS - Bioinformatics<br>
       <a href="http://www.bmeisis.com" target="_blank">http://www.bmeisis.com</a> &lt;<a href="http://www.bmeisis.com/" target="_blank">http://www.bmeisis.com/</a>&gt;<br>       <a href="http://www.jpglutting.com" target="_blank">http://www.jpglutting.com</a><br>
<br><br><br><br><br>       On Fri, Feb 4, 2011 at 7:42 PM, Connors, Bernie (SNB)<br>       &lt;<a href="mailto:Bernie.Connors@snb.ca" target="_blank">Bernie.Connors@snb.ca</a> &lt;mailto:<a href="mailto:Bernie.Connors@snb.ca" target="_blank">Bernie.Connors@snb.ca</a>&gt;</p>
</div><p class="MsoNormal" style="margin-left:70.8pt">       &lt;mailto:<a href="mailto:Bernie.Connors@snb.ca" target="_blank">Bernie.Connors@snb.ca</a> &lt;mailto:<a href="mailto:Bernie.Connors@snb.ca" target="_blank">Bernie.Connors@snb.ca</a>&gt;&gt;&gt;</p>
<div><p class="MsoNormal" style="margin-left:70.8pt"><br>       wrote:<br><br>          Try Google Fusion Tables.  All you have to do is put all of the<br>          address components in one field and it should be recognized and<br>
          geocoded.<br><br>          --<br><br>          *Bernie Connors, P.Eng*<br><br>          Service New Brunswick<br><br>          (506) 444-2077<br><br>          45°56&#39;25.21&quot;N, 66°38&#39;53.65&quot;W<br><br>
       <a href="http://www.snb.ca/geonb/" target="_blank">www.snb.ca/geonb/</a> &lt;<a href="http://www.snb.ca/geonb/" target="_blank">http://www.snb.ca/geonb/</a>&gt;<br>       &lt;<a href="http://www.snb.ca/geonb/" target="_blank">http://www.snb.ca/geonb/</a>&gt;<br>
<br><br>          *From:*<a href="mailto:discuss-bounces@lists.osgeo.org" target="_blank">discuss-bounces@lists.osgeo.org</a><br>       &lt;mailto:<a href="mailto:discuss-bounces@lists.osgeo.org" target="_blank">discuss-bounces@lists.osgeo.org</a>&gt;<br>
       &lt;mailto:<a href="mailto:discuss-bounces@lists.osgeo.org" target="_blank">discuss-bounces@lists.osgeo.org</a><br>       &lt;mailto:<a href="mailto:discuss-bounces@lists.osgeo.org" target="_blank">discuss-bounces@lists.osgeo.org</a>&gt;&gt;</p>
</div><p class="MsoNormal" style="margin-left:70.8pt">          [mailto:<a href="mailto:discuss-bounces@lists.osgeo.org" target="_blank">discuss-bounces@lists.osgeo.org</a></p><div><p class="MsoNormal" style="margin-left:70.8pt">
<br>       &lt;mailto:<a href="mailto:discuss-bounces@lists.osgeo.org" target="_blank">discuss-bounces@lists.osgeo.org</a>&gt;<br>       &lt;mailto:<a href="mailto:discuss-bounces@lists.osgeo.org" target="_blank">discuss-bounces@lists.osgeo.org</a><br>
       &lt;mailto:<a href="mailto:discuss-bounces@lists.osgeo.org" target="_blank">discuss-bounces@lists.osgeo.org</a>&gt;&gt;] *On Behalf Of *JP<br>       Glutting<br>          *Sent:* Friday, 2011-02-04 09:34<br>          *To:* <a href="mailto:discuss@lists.osgeo.org" target="_blank">discuss@lists.osgeo.org</a><br>
       &lt;mailto:<a href="mailto:discuss@lists.osgeo.org" target="_blank">discuss@lists.osgeo.org</a>&gt;</p></div><p class="MsoNormal" style="margin-left:70.8pt">       &lt;mailto:<a href="mailto:discuss@lists.osgeo.org" target="_blank">discuss@lists.osgeo.org</a> &lt;mailto:<a href="mailto:discuss@lists.osgeo.org" target="_blank">discuss@lists.osgeo.org</a>&gt;&gt;</p>
<div><div><p class="MsoNormal" style="margin-left:70.8pt"><br><br>          *Subject:* [OSGeo-Discuss] Batch geocoding<br><br>          Hello,<br><br>          I have a large set of addresses (around 150k) that I need to<br>
          geocode for a study (my Masters thesis on heat-related<br>       mortality).<br>          I am looking into different solutions, but I can&#39;t find<br>       anything<br>          that seems like it would work properly.<br>
<br>          I could script a solution using Google&#39;s map API, but there<br>       is a<br>          limit of 2,500 addreses per day (I can get around them with a<br>          little patience).<br><br>          Right now the best solution I am looking at geopy for geocoding<br>
          addresses (<a href="http://code.google.com/p/geopy/" target="_blank">http://code.google.com/p/geopy/</a>). It seems like<br>       a good<br>          system, I think I can use it to pull addresses out of my<br>
       database<br>          and write back coordinates. There is one thing that I am<br>       not sure,<br>          about, though, is whether I am actually allowed to use the<br>       Google<br>          API without my use being liked to a specific web page. The<br>
       terms<br>          of service and form for getting a Google API key require a URL<br>          linked to a Google account. In fact, it looks like the API can<br>          only be used through a web site:<br><br>              &quot;5.2 _Account Key_. After supplying Google with your<br>
       account<br>              information and the URL of your Maps API<br>       Implementation, and<br>              accepting the Terms, you will be issued an alphanumeric key<br>              assigned to you by Google that is uniquely associated with<br>
              your Google Account and the URL of your Maps API<br>              Implementation. Your Maps API Implementation must<br>       import the<br>              Google Maps APIs using this key as described in the<br>
       Maps APIs<br>              Documentation<br>       &lt;<a href="http://code.google.com/apis/maps/documentation/" target="_blank">http://code.google.com/apis/maps/documentation/</a>&gt;, and Google<br><br>              will block requests with an invalid key or invalid URL. You<br>
              may only obtain and use a key in accordance with these<br>       Terms<br>              and the Maps APIs Documentation<br>       &lt;<a href="http://code.google.com/apis/maps/documentation/" target="_blank">http://code.google.com/apis/maps/documentation/</a>&gt;.&quot;<br>
<br><br>          So it looks like I can&#39;t even get it to work without a URL.<br><br>          I can always write a script that loops through results<br>       extracted<br>          from the database, creates URLs and parses the XML results<br>
       one at<br>          a time, but that seems like a fairly inelegant solution.<br><br>          Does anyone have any good ideas about how to geocode a few<br>          thousand addresses?<br><br>          Many thanks,<br>
<br>          JP<br><br><br>          _______________________________________________<br>          Discuss mailing list<br>       <a href="mailto:Discuss@lists.osgeo.org" target="_blank">Discuss@lists.osgeo.org</a> &lt;mailto:<a href="mailto:Discuss@lists.osgeo.org" target="_blank">Discuss@lists.osgeo.org</a>&gt;</p>
</div></div><p class="MsoNormal" style="margin-left:70.8pt">       &lt;mailto:<a href="mailto:Discuss@lists.osgeo.org" target="_blank">Discuss@lists.osgeo.org</a> &lt;mailto:<a href="mailto:Discuss@lists.osgeo.org" target="_blank">Discuss@lists.osgeo.org</a>&gt;&gt;</p>
<div><p class="MsoNormal" style="margin-bottom:12.0pt;margin-left:70.8pt"><br><br>       <a href="http://lists.osgeo.org/mailman/listinfo/discuss" target="_blank">http://lists.osgeo.org/mailman/listinfo/discuss</a><br><br>
<br><br>   _______________________________________________<br>   Discuss mailing list<br>   <a href="mailto:Discuss@lists.osgeo.org" target="_blank">Discuss@lists.osgeo.org</a> &lt;mailto:<a href="mailto:Discuss@lists.osgeo.org" target="_blank">Discuss@lists.osgeo.org</a>&gt;<br>
   <a href="http://lists.osgeo.org/mailman/listinfo/discuss" target="_blank">http://lists.osgeo.org/mailman/listinfo/discuss</a></p></div></blockquote><div><div><p class="MsoNormal" style="margin-left:70.8pt"><br>_______________________________________________<br>
Discuss mailing list<br><a href="mailto:Discuss@lists.osgeo.org" target="_blank">Discuss@lists.osgeo.org</a><br><a href="http://lists.osgeo.org/mailman/listinfo/discuss" target="_blank">http://lists.osgeo.org/mailman/listinfo/discuss</a></p>
</div></div></div><p class="MsoNormal" style="margin-left:70.8pt"> </p></div></div></div></div><p class="MsoNormal" style="margin-left:70.8pt"> </p></div></div></div></div></div><p class="MsoNormal" style="margin-right:0cm;margin-bottom:12.0pt;margin-left:35.4pt">
<br>_______________________________________________<br>Discuss mailing list<br><a href="mailto:Discuss@lists.osgeo.org" target="_blank">Discuss@lists.osgeo.org</a><br><a href="http://lists.osgeo.org/mailman/listinfo/discuss" target="_blank">http://lists.osgeo.org/mailman/listinfo/discuss</a></p>
</div><p class="MsoNormal" style="margin-left:35.4pt"> </p></div></div></div></div></div><br>_______________________________________________<br>
Discuss mailing list<br>
<a href="mailto:Discuss@lists.osgeo.org">Discuss@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/discuss" target="_blank">http://lists.osgeo.org/mailman/listinfo/discuss</a><br>
<br></blockquote></div><br></div></div>