Commit 56d78060 authored by Jay's avatar Jay Committed by jay
Browse files

Fixes fromfilelist for non cube formats

parent c97476b3
Loading
Loading
Loading
Loading
+25 −12
Original line number Diff line number Diff line
import json
import warnings

import pvl
import os
@@ -202,7 +203,6 @@ class GeoDataset(object):
    @property
    def latlon_extent(self):
        if not getattr(self, '_latlon_extent', None):

            try:
                # If we have a footprint, no need to compute pixel to latlon
                lowerlon, upperlon, lowerlat, upperlat = self.footprint.GetEnvelope()
@@ -210,6 +210,11 @@ class GeoDataset(object):
                xy_extent = self.xy_extent
                lowerlat, lowerlon = self.pixel_to_latlon(xy_extent[0][0], xy_extent[0][1])
                upperlat, upperlon = self.pixel_to_latlon(xy_extent[1][0], xy_extent[1][1])
                geom = {"type": "Polygon", "coordinates": [[[lowerlat, lowerlon],
                                                           [lowerlat, upperlon],
                                                           [upperlat, upperlon],
                                                           [upperlat, lowerlon],
                                                           [lowerlat, lowerlon]]]}
            self._latlon_extent = [(lowerlat, lowerlon), (upperlat, upperlon)]
        return self._latlon_extent

@@ -237,14 +242,18 @@ class GeoDataset(object):
                    stream = str(f.read(num_polygon_bytes))
                    self._footprint = ogr.CreateGeometryFromWkt(stream)
            except:
                # Handle GDAL here
                llat, llon, ulat, ulon = self.latlon_extent
                geom = {"type": "Polygon", "coordinates": [[llat, llon],
                                                           [llat, ulon],
                                                           [ulat, ulon],
                                                           [llon, ulat],
                                                           [llat, llon]]}
                # I dislike that this is copied from latlonext, but am unsure
                # how to avoid the cyclical footprint to latlon_extent property hits.
                xy_extent = self.xy_extent
                lowerlat, lowerlon = self.pixel_to_latlon(xy_extent[0][0], xy_extent[0][1])
                upperlat, upperlon = self.pixel_to_latlon(xy_extent[1][0], xy_extent[1][1])
                geom = {"type": "Polygon", "coordinates": [[[lowerlat, lowerlon],
                                                           [lowerlat, upperlon],
                                                           [upperlat, upperlon],
                                                           [upperlat, lowerlon],
                                                           [lowerlat, lowerlon]]]}
                self._footprint = ogr.CreateGeometryFromJson(json.dumps(geom))

        return self._footprint

    @property
@@ -375,10 +384,14 @@ class GeoDataset(object):
                   (Latitude, Longitude) corresponding to the given (x,y).
        
        """
        try:
            geotransform = self.geotransform
            x = geotransform[0] + (x * geotransform[1]) + (y * geotransform[2])
            y = geotransform[3] + (x * geotransform[4]) + (y * geotransform[5])
            lon, lat, _ = self.coordinate_transformation.TransformPoint(x, y)
        except:
            lat = lon = None
            warnings.warn('Unable to compute pixel to geographic conversion without projection information.')

        return lat, lon

+2 −2
Original line number Diff line number Diff line
@@ -65,7 +65,7 @@ class TestCandidateGraph(unittest.TestCase):
    def tearDown(self):
        pass

'''

class TestFromList(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
@@ -78,7 +78,7 @@ class TestFromList(unittest.TestCase):
        self.assertEqual(self.graph.__len__(), 3)
        self.assertEqual(self.graph.number_of_nodes(), 3)


'''
class TestFromListCubes(unittest.TestCase):
    @classmethod