Ignore:
Timestamp:
Jan 31, 2006, 5:41:13 PM (18 years ago)
Author:
ole
Message:

Deployed geo_spatial stuff

File:
1 edited

Legend:

Unmodified
Added
Removed
  • inundation/pyvolution/quantity.py

    r2262 r2309  
    167167                   quantity = None,   # Another quantity
    168168                   function = None,   # Callable object: f(x,y)
    169                    points = None, values = None, data_georef = None, #Input for least squares
     169                   geospatial_data = None, #Arbitrary dataset
     170                   points = None, values = None, data_georef = None, #Input for least squares (obsoleted by use of geo_spatial object)
    170171                   filename = None, attribute_name = None, #Input from file
    171172                   alpha = None,
     
    181182          If callable it will treated as a function (see below)
    182183          If instance of another Quantity it will be treated as such.
     184          If geo_spatial object it will be treated as such
    183185
    184186        quantity:
     
    191193          The function will be evaluated at points determined by
    192194          location and indices in the underlying mesh.
     195
     196        geospatial_data:
     197          Arbitrary geo spatial dataset in the form of the class
     198          Geospatial_data. Mesh points are populated using least squares
     199          fitting           
    193200
    194201        points:
     
    208215          Name of a .pts file containing data points and attributes for
    209216          use with least squares.
    210           If attribute_name is specified, any array matching that name
    211           will be used. Otherwise the first available one will be used.
     217         
     218        attribute_name:
     219          If specified, any array matching that name
     220          will be used. from file or geospatial_data.
     221          Otherwise a default will be used.
    212222
    213223        alpha:
     
    255265        """
    256266
     267        from geospatial_data.geospatial_data import Geospatial_data
    257268        from types import FloatType, IntType, LongType, ListType, NoneType
    258269        from Numeric import ArrayType
    259270
    260271        #General input checks
    261         L = [numeric, quantity, function, points, filename]
     272        L = [numeric, quantity, function, geospatial_data, points, filename]
    262273        msg = 'Exactly one of the arguments '+\
    263               'numeric, quantity, function, points, or filename '+\
     274              'numeric, quantity, function, geospatial_data, points, or filename '+\
    264275              'must be present.'
    265276        assert L.count(None) == len(L)-1, msg
     
    292303                self.set_values_from_quantity(numeric,
    293304                                              location, indices, verbose)
     305            elif isinstance(numeric, Geospatial_data):
     306                self.set_values_from_geospatial_data(numeric,               
     307                                                     alpha,
     308                                                     location, indices,
     309                                                     verbose = verbose,
     310                                                     use_cache = use_cache)
    294311            else:
    295312                msg = 'Illegal type for argument numeric: %s' %str(numeric)
     
    304321            self.set_values_from_function(function,
    305322                                          location, indices, verbose)
     323        elif geospatial_data is not None:
     324                self.set_values_from_geospatial_data(geospatial_data,
     325                                                     alpha,
     326                                                     location, indices,
     327                                                     verbose = verbose,
     328                                                     use_cache = use_cache)
    306329        elif points is not None:
     330            print 'The usage of points in set_values will be deprecated.' +\
     331                  'Please use the geospatial_data object.'
     332           
    307333            msg = 'When points are specified, associated values must also be.'
    308334            assert values is not None, msg
     
    552578
    553579
     580       
     581    def set_values_from_geospatial_data(self, geospatial_data, alpha,
     582                                        location, indices,
     583                                        verbose = False,
     584                                        use_cache = False):
     585
     586        #FIXME: Use this function for the time being. Later move code in here
     587
     588        points = geospatial_data.get_data_points()
     589        values = geospatial_data.get_attributes()
     590        data_georef = geospatial_data.get_geo_reference()
     591
     592
     593        self.set_values_from_points(points, values, alpha,
     594                                    location, indices,
     595                                    data_georef = data_georef,
     596                                    verbose = verbose,
     597                                    use_cache = use_cache)                                   
     598
     599                               
    554600
    555601    def set_values_from_points(self, points, values, alpha,
     
    571617
    572618        if location != 'vertices':
    573             msg = 'set_values_from_points is only defined for'+\
     619            msg = 'set_values_from_points is only defined for '+\
    574620                  'location=\'vertices\''
    575621            raise msg
     
    622668
    623669
    624 
    625 
    626670    def set_values_from_file(self, filename, attribute_name, alpha,
    627671                             location, indices,
     
    635679
    636680        from load_mesh.loadASCII import import_points_file
     681        from geospatial_data.geospatial_data import points_dictionary2geospatial_data
    637682
    638683        from types import StringType
     
    658703            print 'Available attributes: %s' %(names)
    659704
    660         try:
    661             z = attributes[attribute_name]
    662         except:
    663             msg = 'Could not extract attribute %s from file %s'\
    664                   %(attribute_name, filename)
    665             raise msg
     705        #try:
     706        #    z = attributes[attribute_name]
     707        #except:
     708        #    msg = 'Could not extract attribute %s from file %s'\
     709        #          %(attribute_name, filename)
     710        #    raise msg
    666711
    667712
     
    674719
    675720
     721
     722        #Call underlying method for geospatial data
     723        geospatial_data = points_dictionary2geospatial_data(points_dict)
     724        geospatial_data.set_default_attribute_name(attribute_name)
     725           
     726        self.set_values_from_geospatial_data(geospatial_data,
     727                                             alpha,
     728                                             location, indices,
     729                                             verbose = verbose,
     730                                             use_cache = use_cache)
     731       
    676732        #Call underlying method for points
    677         self.set_values_from_points(points, z, alpha,
    678                                     location, indices,
    679                                     data_georef = data_georef,
    680                                     verbose = verbose,
    681                                     use_cache = use_cache)
     733        #self.set_values_from_points(points, z, alpha,
     734        #                            location, indices,
     735        #                            data_georef = data_georef,
     736        #                            verbose = verbose,
     737        #                            use_cache = use_cache)
    682738
    683739
Note: See TracChangeset for help on using the changeset viewer.