ArchiveOrangemail archive

OpenStreetMap developer discusssion


dev.openstreetmap.org
(List home) (Recent threads) (78 other OpenStreetMap lists)

Subscription Options

  • RSS or Atom: Read-only subscription using a browser or aggregator. This is the recommended way if you don't need to send messages to the list. You can learn more about feed syndication and clients here.
  • Conventional: All messages are delivered to your mail address, and you can reply. To subscribe, send an email to the list's subscribe address with "subscribe" in the subject line, or visit the list's homepage here.
  • Low traffic list: less than 3 messages per day
  • This list contains about 28,139 messages, beginning Feb 2006
  • 1 messages added yesterday
Report the Spam
This button sends a spam report to the moderator. Please use it sparingly. For other removal requests, read this.
Are you sure? yes no

Trouble with osm2pgsql and Postgres 8.4, Postgis 1.4

Ad
Tom Taylor 1254651587Sun, 04 Oct 2009 10:19:47 +0000 (UTC)
Hi all,

I'm trying to get an environment up and running for Mapnik on OS X 10.6.

I'm using Postgres 8.4 and Postgis 1.4. I've compiled osm2pgsql, but  
whenever I attempt to import data I get the following:

	mu:~ tom$ osm2pgsql -m -d osm Downloads/great_britain.osm.bz2
	osm2pgsql SVN version 0.67-exported

	Projection code failed to initialise

This is a bit confusing, because I've installed the projection  
correctly, and I can see it when I do:

	osm=# SELECT * from spatial_ref_sys WHERE srid=900913;

The database was created with the following commands:

	$ createdb osm
	$ createlang plpgsql osm
	$ psql -d osm -f /usr/local/Cellar/postgresql/8.4.0/share/contrib/ 
postgis.sql
	$ psql -d osm -f /usr/local/Cellar/postgresql/8.4.0/share/contrib/ 
spatial_ref_sys.sql

If I define the projection on the command line, I get:

	$ osm2pgsql -E 900913 -d osm Downloads/great_britain.osm.bz2
	osm2pgsql SVN version 0.67-exported

	Couldn't read EPSG definition (do you have /usr/share/proj/epsg?)

I don't - my proj projections are in /usr/local/share/proj. And 900913  
is in esri.extra.

If I set it to 4326 (which *is* in /usr/local/share/proj/epsg), I get  
"Projection code failed to initialise".

I know I've got a bit of a weird setup - I'm using Homebrew (http://github.com/mxcl/homebrew/ 
) - but has anyone got any suggestions of what to do next?

Thanks a lot,

Tom
Jon Burgess 1254655188Sun, 04 Oct 2009 11:19:48 +0000 (UTC)
On Sun, 2009-10-04 at 11:19 +0100, Tom Taylor wrote:
> Hi all,
> 
> I'm trying to get an environment up and running for Mapnik on OS X 10.6.
> 
> I'm using Postgres 8.4 and Postgis 1.4. I've compiled osm2pgsql, but  
> whenever I attempt to import data I get the following:
> 
> 	mu:~ tom$ osm2pgsql -m -d osm Downloads/great_britain.osm.bz2
> 	osm2pgsql SVN version 0.67-exported
> 
> 	Projection code failed to initialise
> 
> This is a bit confusing, because I've installed the projection  
> correctly, and I can see it when I do:
> 
> 	osm=# SELECT * from spatial_ref_sys WHERE srid=900913;
> 
> The database was created with the following commands:
> 
> 	$ createdb osm
> 	$ createlang plpgsql osm
> 	$ psql -d osm -f /usr/local/Cellar/postgresql/8.4.0/share/contrib/ 
> postgis.sql
> 	$ psql -d osm -f /usr/local/Cellar/postgresql/8.4.0/share/contrib/ 
> spatial_ref_sys.sql
> 
> If I define the projection on the command line, I get:
> 
> 	$ osm2pgsql -E 900913 -d osm Downloads/great_britain.osm.bz2
> 	osm2pgsql SVN version 0.67-exported
> 
> 	Couldn't read EPSG definition (do you have /usr/share/proj/epsg?)
> 
> I don't - my proj projections are in /usr/local/share/proj. And 900913  
> is in esri.extra.
> 
> If I set it to 4326 (which *is* in /usr/local/share/proj/epsg), I get  
> "Projection code failed to initialise".
> 
> I know I've got a bit of a weird setup - I'm using Homebrew (http://github.com/mxcl/homebrew/ 
> ) - but has anyone got any suggestions of what to do next?Those error messages all come from reprojection.c which is trying to
initialise the projection using the proj library. This should have
nothing to do with postgres & postgis. What version of proj are you
using?

The proj library gave an error when trying to parse one of these
projection strings:

"+proj=latlong +ellps=GRS80 +no_defs"

"+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0
+k=1.0 +units=m +nadgrids=@null +no_defs +over"


Can you try the following command which should project a point using a
command line proj tool:

$ echo 45 45 | cs2cs +proj=latlong +ellps=GRS80 +no_defs +to +proj=merc
+a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0
+units=m +nadgrids=@null +no_defs +over

The answer should come back as:
5009377.09      5621521.49 0.00

	Jon
Tom Taylor 1254655632Sun, 04 Oct 2009 11:27:12 +0000 (UTC)
On 4 Oct 2009, at 12:19, Jon Burgess wrote:

> Those error messages all come from reprojection.c which is trying to
> initialise the projection using the proj library. This should have
> nothing to do with postgres & postgis. What version of proj are you
> using?Jon, thanks for helping out.

I'm using 4.7.1.> Can you try the following command which should project a point using a
> command line proj tool:
>
> $ echo 45 45 | cs2cs +proj=latlong +ellps=GRS80 +no_defs +to  
> +proj=merc
> +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0
> +units=m +nadgrids=@null +no_defs +over
>
> The answer should come back as:
> 5009377.09      5621521.49 0.00Erk!

$ echo 45 45 | cs2cs +proj=latlong +ellps=GRS80 +no_defs +to  
+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0  
+y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over
Using from definition: proj=latlong ellps=GRS80 no_defs
Rel. 4.7.1, 23 September 2009
<cs2cs>:
projection initialization failure
cause: major axis or radius = 0 or not given
program abnormally terminated
Jon Burgess 1254658602Sun, 04 Oct 2009 12:16:42 +0000 (UTC)
On Sun, 2009-10-04 at 12:27 +0100, Tom Taylor wrote:
> On 4 Oct 2009, at 12:19, Jon Burgess wrote:
> 
> > Those error messages all come from reprojection.c which is trying to
> > initialise the projection using the proj library. This should have
> > nothing to do with postgres & postgis. What version of proj are you
> > using?
> 
> 
> Jon, thanks for helping out.
> 
> I'm using 4.7.1.4.7.1 does not exist @ http://download.osgeo.org/proj/
do you mean an SVN version?> > Can you try the following command which should project a point using a
> > command line proj tool:
> >
> > $ echo 45 45 | cs2cs +proj=latlong +ellps=GRS80 +no_defs +to  
> > +proj=merc
> > +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0
> > +units=m +nadgrids=@null +no_defs +over
> >
> > The answer should come back as:
> > 5009377.09      5621521.49 0.00
> 
> Erk!
> 
> $ echo 45 45 | cs2cs +proj=latlong +ellps=GRS80 +no_defs +to  
> +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0  
> +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs +over
> Using from definition: proj=latlong ellps=GRS80 no_defs
> Rel. 4.7.1, 23 September 2009
> <cs2cs>:
> projection initialization failure
> cause: major axis or radius = 0 or not given
> program abnormally terminatedVery odd. I just downloaded the proj SVN code, rebuilt & installed and
it still works for me.

How about if you use all the definitions provided with proj:

$ echo 45 45 | cs2cs +init=epsg:4326 +to +init=esri.extra:900913
5009377.09      5621521.49 0.00

$ cs2cs
Rel. 4.7.1, 23 September 2009
usage: cs2cs [ -eEfIlrstvwW [args] ] [ +opts[=arg] ]
                   [+to [+opts[=arg] [ files ]



	Jon
Tom Taylor 1254659307Sun, 04 Oct 2009 12:28:27 +0000 (UTC)
On 4 Oct 2009, at 13:16, Jon Burgess wrote:

> 4.7.1 does not exist @ http://download.osgeo.org/proj/
> do you mean an SVN version?Sorry, yes, I downloaded proj-4.7.0.tar.gz, it just seems to identify  
itself as 4.7.1 in the version info in executable.> $ echo 45 45 | cs2cs +init=epsg:4326 +to +init=esri.extra:900913
> 5009377.09      5621521.49 0.00That works.> $ cs2cs
> Rel. 4.7.1, 23 September 2009
> usage: cs2cs [ -eEfIlrstvwW [args] ] [ +opts[=arg] ]
>                   [+to [+opts[=arg] [ files ]
>As does that.
Jon Burgess 1254660570Sun, 04 Oct 2009 12:49:30 +0000 (UTC)
On Sun, 2009-10-04 at 13:28 +0100, Tom Taylor wrote:
> 
> On 4 Oct 2009, at 13:16, Jon Burgess wrote:
> 
> > 4.7.1 does not exist @ http://download.osgeo.org/proj/
> > do you mean an SVN version?
> 
> Sorry, yes, I downloaded proj-4.7.0.tar.gz, it just seems to
> identify  
> itself as 4.7.1 in the version info in executable.
> 
> > $ echo 45 45 | cs2cs +init=epsg:4326 +to +init=esri.extra:900913
> > 5009377.09      5621521.49 0.00
> 
> That works.I updated the proj strings to match those in the 4.7.1 definition files
in r17981. Can you see if those work for you now?

	Jon
Tom Taylor 1254661458Sun, 04 Oct 2009 13:04:18 +0000 (UTC)
On 4 Oct 2009, at 13:49, Jon Burgess wrote:

> I updated the proj strings to match those in the 4.7.1 definition  
> files
> in r17981. Can you see if those work for you now?Jon, I'm afraid not:

$ ./osm2pgsql -d osm ~/Downloads/great_britain.osm.bz2
osm2pgsql SVN version 0.67-17981

Projection code failed to initialise
Jon Burgess 1254663106Sun, 04 Oct 2009 13:31:46 +0000 (UTC)
On Sun, 2009-10-04 at 14:04 +0100, Tom Taylor wrote:
> On 4 Oct 2009, at 13:49, Jon Burgess wrote:
> 
> > I updated the proj strings to match those in the 4.7.1 definition  
> > files
> > in r17981. Can you see if those work for you now?
> 
> Jon, I'm afraid not:
> 
> $ ./osm2pgsql -d osm ~/Downloads/great_britain.osm.bz2
> osm2pgsql SVN version 0.67-17981
> 
> Projection code failed to initialiseI can only think that something is inconsistent in your proj setup, e.g.
maybe mixing a custom proj library with the system projection or datum
definitions.

Can you see which proj library cs2cs & osm2pgsql are using?
Something like this:

$ ldd osm2pgsql | grep proj
        libproj.so.0 => /usr/lib64/libproj.so.0 (0x00007fd198360000)

$ type cs2cs
cs2cs is hashed (/usr/bin/cs2cs)
[jburgess at shark osm2pgsql]$ ldd /usr/bin/cs2cs | grep proj
        libproj.so.0 => /usr/lib64/libproj.so.0 (0x00007ff3a4468000)

Then if you feel like digging deeper to see what the code for each
program does when asked to initialize the projections then collect the
strace output:

$ strace -o /tmp/osm2pgsql.txt -f osm2pgsql great_britain.osm.bz2
$ strace -o /tmp/cs2cs.txt     -f cs2cs +init=epsg:4326 +to +init=esri.extra:900913

Then compares the output in cs2cs.txt vs osm2pgsql.txt. There will be a
lot of information in there. Towards the end you should see it opening
and reading various proj data files from /usr/share/proj (or similar).

If you get stuck, try attaching them to an email and send direct to me.
They will be too big for the email list.

	Jon
Tom Taylor 1254665674Sun, 04 Oct 2009 14:14:34 +0000 (UTC)
On 4 Oct 2009, at 14:31, Jon Burgess wrote:

> Can you see which proj library cs2cs & osm2pgsql are using?
> Something like this:This seems to be the equivalent tool on OS X:

$ otool -l /usr/local/bin/cs2cs |grep proj
          name /usr/local/Cellar/proj/4.7.0/lib/libproj.0.dylib  
(offset 24)
$ otool -l ./osm2pgsql |grep proj
          name /usr/local/Cellar/proj/4.7.0/lib/libproj.0.dylib  
(offset 24)> Then if you feel like digging deeper to see what the code for each
> program does when asked to initialize the projections then collect the
> strace output:
>
> $ strace -o /tmp/osm2pgsql.txt -f osm2pgsql great_britain.osm.bz2
> $ strace -o /tmp/cs2cs.txt     -f cs2cs +init=epsg:4326 +to  
> +init=esri.extra:900913
>
> Then compares the output in cs2cs.txt vs osm2pgsql.txt. There will  
> be a
> lot of information in there. Towards the end you should see it opening
> and reading various proj data files from /usr/share/proj (or similar).Using dtruss, which is pretty much the same, to trace the execution -  
they both just refer to the same library: /usr/local/Cellar/proj/4.7.0/ 
lib/libproj.0.dylib.

I guess I'll give up on it on OS X for the time being. I've got an  
Ubuntu Virtual Machine here which is probably going to be a lot easier!

Thanks for your help Jon - much appreciated.
Dane Springmeyer 1254669167Sun, 04 Oct 2009 15:12:47 +0000 (UTC)
Tom,

There are 10.6 ready binaries of the latest stable release of proj.4  
available here:

http://www.kyngchaos.com/software:frameworks

I use this proj distribution on OSX frequently and have not had a  
problem. If you try this approach, just patch your osm2pgsql Makefile  
like so:

Index: Makefile
=================================--- Makefile	(revision 17981)
+++ Makefile	(working copy)
@@ -7,6 +7,7 @@

  CFLAGS += -g -O2 -Wall -Wextra
  CFLAGS += $(shell xml2-config --cflags)
+CFLAGS += -I/Library/Frameworks/PROJ.framework/unix/include
  CFLAGS += $(shell geos-config --cflags)
  CFLAGS += -I$(shell pg_config --includedir)
  CFLAGS += -DVERSION=\"$(VERSION)-$(SVN)\"
@@ -19,7 +20,8 @@
  LDFLAGS += $(shell geos-config --libs)
  LDFLAGS += -L$(shell pg_config --libdir) -lpq
  LDFLAGS += -lbz2 -lz
-LDFLAGS += -g -lproj
+#LDFLAGS += -g -lproj
+LDFLAGS += -L/Library/Frameworks/PROJ.framework/unix/lib -lproj
  LDFLAGS += -lstdc++
  LDFLAGS += -lpthread


DaneOn Oct 4, 2009, at 7:14 AM, Tom Taylor wrote:

>
> On 4 Oct 2009, at 14:31, Jon Burgess wrote:
>
>> Can you see which proj library cs2cs & osm2pgsql are using?
>> Something like this:
>
> This seems to be the equivalent tool on OS X:
>
> $ otool -l /usr/local/bin/cs2cs |grep proj
>          name /usr/local/Cellar/proj/4.7.0/lib/libproj.0.dylib
> (offset 24)
> $ otool -l ./osm2pgsql |grep proj
>          name /usr/local/Cellar/proj/4.7.0/lib/libproj.0.dylib
> (offset 24)
>
>> Then if you feel like digging deeper to see what the code for each
>> program does when asked to initialize the projections then collect  
>> the
>> strace output:
>>
>> $ strace -o /tmp/osm2pgsql.txt -f osm2pgsql great_britain.osm.bz2
>> $ strace -o /tmp/cs2cs.txt     -f cs2cs +init=epsg:4326 +to
>> +init=esri.extra:900913
>>
>> Then compares the output in cs2cs.txt vs osm2pgsql.txt. There will
>> be a
>> lot of information in there. Towards the end you should see it  
>> opening
>> and reading various proj data files from /usr/share/proj (or  
>> similar).
>
> Using dtruss, which is pretty much the same, to trace the execution -
> they both just refer to the same library: /usr/local/Cellar/proj/ 
> 4.7.0/
> lib/libproj.0.dylib.
>
> I guess I'll give up on it on OS X for the time being. I've got an
> Ubuntu Virtual Machine here which is probably going to be a lot  
> easier!
>
> Thanks for your help Jon - much appreciated.
>
> _______________________________________________
> dev mailing list
> dev at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/dev
Tom Taylor 1254674778Sun, 04 Oct 2009 16:46:18 +0000 (UTC)
On 4 Oct 2009, at 16:12, Dane Springmeyer wrote:

> There are 10.6 ready binaries of the latest stable release of proj.4  
> available here:
>
> http://www.kyngchaos.com/software:frameworksThanks Dane, that did the trick. Not sure what was wrong with my proj. 
4 installation. I'm importing Great Britain as we speak. Lovely.
Tom Hughes 1254656049Sun, 04 Oct 2009 11:34:09 +0000 (UTC)
On 04/10/09 12:19, Jon Burgess wrote:

> Can you try the following command which should project a point using a
> command line proj tool:
>
> $ echo 45 45 | cs2cs +proj=latlong +ellps=GRS80 +no_defs +to +proj=merc
> +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0
> +units=m +nadgrids=@null +no_defs +over
>
> The answer should come back as:
> 5009377.09      5621521.49 0.00Well that certainly fails for me:

Rel. 4.6.1, 21 August 2008
<cs2cs>:
projection initialization failure
cause: squared eccentricity < 0
program abnormally terminated

Tom
Lennard 1254657328Sun, 04 Oct 2009 11:55:28 +0000 (UTC)
Tom Hughes wrote:

> Well that certainly fails for me:
> 
> Rel. 4.6.1, 21 August 2008Worksforme

Rel. 4.7.1, 23 September 2009
Greg Troxel 1254688953Sun, 04 Oct 2009 20:42:33 +0000 (UTC)
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 193 bytes
Desc: not available
Url : http://lists.openstreetmap.org/pipermail/dev/...
Ad
Home | About | Privacy