From 3bf1c91740c41fa64c7668295eb6daad9acc70aa Mon Sep 17 00:00:00 2001 From: Dan Lipsa Date: Mon, 5 Feb 2018 11:39:19 -0500 Subject: [PATCH] Fix empty dirname and empty data.crs.get('init') --- gaia/inputs.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/gaia/inputs.py b/gaia/inputs.py index 4321573..220b31a 100644 --- a/gaia/inputs.py +++ b/gaia/inputs.py @@ -88,7 +88,8 @@ def create_output_dir(self, filepath): :param filepath: Directory to create """ - if not os.path.exists(os.path.dirname(filepath)): + dirname = os.path.dirname(filepath) + if dirname and not os.path.exists(dirname): try: os.makedirs(os.path.dirname(filepath)) except OSError as exc: @@ -109,25 +110,30 @@ def get_epsg(self): minx = min(self.data.geometry.bounds['minx']) maxx = max(self.data.geometry.bounds['maxx']) if minx >= -180.0 and maxx <= 180.0: - self.data.crs = fiona_crs.from_epsg(4326) self.epsg = 4326 + self.data.crs = fiona_crs.from_epsg(self.epsg) elif minx >= -20026376.39 and maxx <= 20026376.39: - self.data.crs = fiona_crs.from_epsg(3857) self.epsg = 3857 + self.data.crs = fiona_crs.from_epsg(self.epsg) else: raise GaiaException('Could not determine data projection.') return self.epsg else: crs = self.data.crs.get('init', None) - if crs and ':' in crs: - crs = crs.split(':')[1] - if crs.isdigit(): - self.epsg = int(crs) + if crs: + if ':' in crs: + crs = crs.split(':')[1] + if crs.isdigit(): + self.epsg = int(crs) + return self.epsg + # Assume EPSG:4326 + self.epsg = 4326 + self.data.crs = fiona_crs.from_epsg(self.epsg) return self.epsg else: # Assume EPSG:4326 self.epsg = 4326 - self.data.crs = fiona_crs.from_epsg(4326) + self.data.crs = fiona_crs.from_epsg(self.epsg) return self.epsg elif self.data.__class__.__name__ == 'Dataset': projection = self.data.GetProjection()