#36001: error GDAL_ERROR 1: b'PROJ: proj_create_from_database: crs not found' 
with
custom CRS in spatial_ref_sys
-------------------------------------+-------------------------------------
     Reporter:  Alex                 |                    Owner:  (none)
         Type:  Bug                  |                   Status:  new
    Component:  GIS                  |                  Version:  4.2
     Severity:  Normal               |               Resolution:
     Keywords:  gdal, proj4,         |             Triage Stage:
  postgis                            |  Unreviewed
    Has patch:  0                    |      Needs documentation:  0
  Needs tests:  0                    |  Patch needs improvement:  0
Easy pickings:  0                    |                    UI/UX:  0
-------------------------------------+-------------------------------------
Description changed by Alex:

Old description:

> Hi
> situation with custom CRS in geodjango.
>
> context: Debian GNU/Linux 12 (bookworm), Postgresql 16.6, Python 3.11.2,
> Postgis 3.4.2, GDAL 3.6.2, PROJ 9.1.1, Django 4.2.11, DRF 3.5.11, [DRF-
> GIS]https://github.com/openwisp/django-rest-framework-gis 1.0
>
> Objects with geometry in DB creates with no problem with this class
> {{{#!python
> from django.contrib.gis.db import models
>
> class Location(models.Model):
>    ...
>     c_geom = models.GeometryCollectionField(srid=300001)
>    ...
> }}}
> gdalsrsinfo  works as expected
> {{{
> gdalsrsinfo 'USER:300001'
> PROJ.4 : +proj=tmerc ...
> }}}
> projinfo also works fine
> {{{
> projinfo 'USER:300001'
> PROJ.4 : +proj=tmerc ...
> }}}
> python manage.py shell `is correct`
> {{{#!python
> from osgeo import osr
> sk = osr.SpatialReference()
> sk.SetFromUserInput('USER:300001')
> 0
> print(sk)
> PROJCS...
> }}}
>
> but app always throws errors when fetch and create objects via API (in
> admin.site - ok)
>
> {{{#!python
> def create(self, validated_data):
>         if "SRID=300001;" in str(self.validated_data["geom"]):
>             logger.info("*"*60)
>             logger.info(f"validated_data geom with USER:300001:
> {self.validated_data['geom']}")
>             logger.info(f"geom srid: {self.validated_data['geom'].srid}")
>             from osgeo import osr
>             sk = osr.SpatialReference()
>             sk.SetFromUserInput('USER:300001') # <- here same error:
> GDAL_ERROR 1: b'PROJ: proj_create_from_database: crs not found'
>             logger.info(f"SpatialReference: {sk}")
>             logger.info("*"*60)
> }}}
>
> error.log
> {{{
> ************************************************************
> validated_data geom with USER:300001: SRID=300001;GEOMETRYCOLLECTION Z
> (POINT Z (83721.138 59266.787 101.09))
> geom srid: 300001
> GDAL_ERROR 1: b'PROJ: proj_create_from_database: crs not found'
> SpatialReference:
> ************************************************************
> GDAL_ERROR 1: b'PROJ: proj_create_from_database: crs not found'
> GDAL_ERROR 1: b'PROJ: proj_create_from_database: crs not found'
> ...
> }}}
> if request one object via API, Django send 8 email with this error. odd

New description:

 Hi
 situation with custom CRS in geodjango.

 context: Debian GNU/Linux 12 (bookworm), Postgresql 16.6, Python 3.11.2,
 Postgis 3.4.2, GDAL 3.6.2, PROJ 9.1.1, Django 4.2.11, DRF 3.5.11, [DRF-
 GIS]https://github.com/openwisp/django-rest-framework-gis 1.0

 Objects with geometry in DB creates with no problem with this class
 {{{#!python
 from django.contrib.gis.db import models

 class Location(models.Model):
    ...
     c_geom = models.GeometryCollectionField(srid=300001)
    ...
 }}}
 gdalsrsinfo  works as expected
 {{{
 gdalsrsinfo 'USER:300001'
 PROJ.4 : +proj=tmerc ...
 }}}
 projinfo also works fine
 {{{
 projinfo 'USER:300001'
 PROJ.4 : +proj=tmerc ...
 }}}
 python manage.py shell `is correct`
 {{{#!python
 from osgeo import osr
 sk = osr.SpatialReference()
 sk.SetFromUserInput('USER:300001')
 0
 print(sk)
 PROJCS...
 }}}

 but app always throws errors when fetch and create objects via API (in
 admin.site - ok, no errors)

 {{{#!python
 def create(self, validated_data):
         if "SRID=300001;" in str(self.validated_data["geom"]):
             logger.info("*"*60)
             logger.info(f"validated_data geom with USER:300001:
 {self.validated_data['geom']}")
             logger.info(f"geom srid: {self.validated_data['geom'].srid}")
             from osgeo import osr
             sk = osr.SpatialReference()
             sk.SetFromUserInput('USER:300001') # <- here same error:
 GDAL_ERROR 1: b'PROJ: proj_create_from_database: crs not found'
             logger.info(f"SpatialReference: {sk}")
             logger.info("*"*60)
 }}}

 error.log
 {{{
 ************************************************************
 validated_data geom with USER:300001: SRID=300001;GEOMETRYCOLLECTION Z
 (POINT Z (83721.138 59266.787 101.09))
 geom srid: 300001
 GDAL_ERROR 1: b'PROJ: proj_create_from_database: crs not found'
 SpatialReference:
 ************************************************************
 GDAL_ERROR 1: b'PROJ: proj_create_from_database: crs not found'
 GDAL_ERROR 1: b'PROJ: proj_create_from_database: crs not found'
 ...
 }}}
 if request one object via API, Django send 8 email with this error. odd

--
-- 
Ticket URL: <https://code.djangoproject.com/ticket/36001#comment:3>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-updates+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/django-updates/01070193b70d57bb-ef12b3e2-9e69-44d4-92b4-b716396663c4-000000%40eu-central-1.amazonses.com.

Reply via email to