Changeset 1406


Ignore:
Timestamp:
May 17, 2005, 11:43:14 AM (20 years ago)
Author:
duncan
Message:

increase flexibility

Location:
inundation/ga/storm_surge/pyvolution/coordinate_transforms
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • inundation/ga/storm_surge/pyvolution/coordinate_transforms/geo_reference.py

    r1176 r1406  
    66
    77DEFAULT_ZONE = 56
     8TITLE = '#geo reference' + "\n" #this title is referred to in the .xya format
    89
    910class Geo_reference:
     
    1718                 xllcorner=None,
    1819                 yllcorner=None,
    19                  NetCDFObject = None,
    20                  ASCIIFile = None):
     20                 NetCDFObject=None,
     21                 ASCIIFile=None,
     22                 read_title=None):
     23        """
     24        input:
     25        NetCDFObject - a handle to the netCDF file
     26        ASCIIFile - a handle to the text file
     27        read_title - the title of the georeference text, if it was read in.
     28        """
    2129        if not xllcorner == None:
    2230            self.xllcorner = xllcorner #Easting of lower left corner
     
    2836        if not NetCDFObject == None:
    2937            self.read_NetCDF(NetCDFObject)
    30 
    31         #FIXME think if this should be here   
     38 
    3239        if not ASCIIFile == None:
    33             self.read_ASCII(ASCIIFile)
     40            self.read_ASCII(ASCIIFile,read_title=read_title)
    3441
    3542    def get_xllcorner(self):
     
    6774       
    6875    def write_ASCII(self, fd):
    69         fd.write('# Geo reference' + "\n")
     76        fd.write(TITLE)
    7077        fd.write(str(self.zone) + "\n")
    7178        fd.write(str(self.xllcorner) + "\n")
    7279        fd.write(str(self.yllcorner) + "\n")
    7380
    74     def read_ASCII(self, fd):
    75         fd.readline() # remove the title line
     81    def read_ASCII(self, fd,read_title=None):
     82        if read_title == None:
     83            read_title = fd.readline() # remove the title line
     84        if read_title[0:2] != TITLE[0:2]:
     85            raise IOError
    7686        self.zone = int(fd.readline())
    7787        self.xllcorner = float(fd.readline())
     
    8595        #false_easting = infile.false_easting[0]
    8696        #false_northing = infile.false_northing[0]
    87 
     97       
    8898    def change_points_geo_ref(self, points,
    8999                       points_geo_ref=None):
  • inundation/ga/storm_surge/pyvolution/coordinate_transforms/test_geo_reference.py

    r1176 r1406  
    5757        self.failUnless(g == new_g, 'test_read_write_ASCII failed') 
    5858   
     59    def test_read_write_ASCII2(self):
     60        from Scientific.IO.NetCDF import NetCDFFile
     61        g = Geo_reference(56,1.9,1.9)
     62        file_name = tempfile.mktemp(".geo_referenceTest")
     63        fd = open(file_name,'w')
     64        g.write_ASCII(fd)
     65        fd.close()       
     66        fd = open(file_name,'r')
     67        line = fd.readline()
     68        new_g = Geo_reference(ASCIIFile=fd, read_title=line)
     69        fd.close()
     70        os.remove(file_name)
     71
     72        self.failUnless(g == new_g, 'test_read_write_ASCII failed')
     73       
     74    def test_read_write_ASCII2(self):
     75        from Scientific.IO.NetCDF import NetCDFFile
     76        g = Geo_reference(56,1.9,1.9)
     77        file_name = tempfile.mktemp(".geo_referenceTest")
     78        fd = open(file_name,'w')
     79        g.write_ASCII(fd)
     80        fd.close()       
     81        fd = open(file_name,'r')
     82        line = fd.readline()
     83        line = "fail !!"
     84        try:
     85            new_g = Geo_reference(ASCIIFile=fd, read_title=line)
     86            fd.close()
     87            os.remove(file_name)
     88        except IOError:
     89            fd.close()
     90            os.remove(file_name)
     91        else:
     92            self.failUnless(0 ==1,
     93                        'bad text file did not raise error!')
     94           
    5995    def test_change_points_geo_ref(self):
    6096        x = 3.0
Note: See TracChangeset for help on using the changeset viewer.