[fiona] 02/19: Imported Upstream version 1.4.8

Johan Van de Wauw johanvdw-guest at moszumanska.debian.org
Fri Nov 28 23:54:18 UTC 2014


This is an automated email from the git hooks/post-receive script.

johanvdw-guest pushed a commit to branch master
in repository fiona.

commit d9dc8486c70fec1ff16d69d7d8440facb6d2b408
Author: Johan Van de Wauw <johan.vandewauw at gmail.com>
Date:   Wed Nov 5 18:18:53 2014 +0100

    Imported Upstream version 1.4.8
---
 CHANGES.txt              |  4 ++++
 fiona/__init__.py        |  2 +-
 fiona/collection.py      |  8 ++++++++
 fiona/ogrext.pyx         | 15 +++++++++++++++
 tests/test_collection.py |  4 ++++
 5 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 45a5159..0b5bb86 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,6 +1,10 @@
 Changes
 =======
 
+1.4.8 (2014-11-02)
+------------------
+- Add missing crs_wkt property as in Rasterio (#182).
+
 1.4.7 (2014-10-28)
 ------------------
 - Fix setting of CRS from EPSG codes (#149).
diff --git a/fiona/__init__.py b/fiona/__init__.py
index 20ea1c2..2bd2552 100644
--- a/fiona/__init__.py
+++ b/fiona/__init__.py
@@ -63,7 +63,7 @@ writing modes) flush contents to disk when their ``with`` blocks end.
 """
 
 __all__ = ['bounds', 'listlayers', 'open', 'prop_type', 'prop_width']
-__version__ = "1.4.7"
+__version__ = "1.4.8"
 
 import logging
 import os
diff --git a/fiona/collection.py b/fiona/collection.py
index 64c1a29..02a0e61 100644
--- a/fiona/collection.py
+++ b/fiona/collection.py
@@ -72,6 +72,7 @@ class Collection(object):
         self._driver = None
         self._schema = None
         self._crs = None
+        self._crs_wkt = None
         self.env = None
         
         self.path = vsi_path(path, vsi, archive)
@@ -187,6 +188,13 @@ class Collection(object):
         return self._crs
 
     @property
+    def crs_wkt(self):
+        """Returns a WKT string."""
+        if self._crs_wkt is None and self.mode in ("a", "r") and self.session:
+            self._crs_wkt = self.session.get_crs_wkt()
+        return self._crs_wkt
+
+    @property
     def meta(self):
         """Returns a mapping with the driver, schema, and crs properties."""
         return {
diff --git a/fiona/ogrext.pyx b/fiona/ogrext.pyx
index f7e1ab1..769c636 100644
--- a/fiona/ogrext.pyx
+++ b/fiona/ogrext.pyx
@@ -541,6 +541,21 @@ cdef class Session:
             log.debug("Projection not found (cogr_crs was NULL)")
         return crs
 
+    def get_crs_wkt(self):
+        cdef char *proj_c = NULL
+        if self.cogr_layer == NULL:
+            raise ValueError("Null layer")
+        cogr_crs = ograpi.OGR_L_GetSpatialRef(self.cogr_layer)
+        if cogr_crs is not NULL:
+            log.debug("Got coordinate system")
+        ograpi.OSRExportToWkt(cogr_crs, &proj_c)
+        if proj_c == NULL:
+            raise ValueError("Null projection")
+        proj_b = proj_c
+        crs_wkt = proj_b.decode('utf-8')
+        ograpi.CPLFree(proj_c)
+        return crs_wkt
+
     def get_extent(self):
         if self.cogr_layer == NULL:
             raise ValueError("Null layer")
diff --git a/tests/test_collection.py b/tests/test_collection.py
index 3fff4d0..128bcec 100644
--- a/tests/test_collection.py
+++ b/tests/test_collection.py
@@ -156,6 +156,10 @@ class ReadingTest(unittest.TestCase):
         crs = self.c.crs
         self.failUnlessEqual(crs['init'], 'epsg:4326')
 
+    def test_crs_wkt(self):
+        crs = self.c.crs_wkt
+        self.failUnless(crs.startswith('GEOGCS["GCS_WGS_1984"'))
+
     def test_closed_crs(self):
         # Crs is lazy too, never computed in this case. TODO?
         self.c.close()

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/fiona.git



More information about the Pkg-grass-devel mailing list