예제 #1
0
    def _create_flt_file(self, current_year, flt_directory_in, flt_directory_out):

        logger.log_status("Convert output data for ", str(current_year))
        
        flt_directory_out = os.path.join(flt_directory_out, 'land_covers')    
        
        if not os.path.exists(flt_directory_out):
            os.makedirs(flt_directory_out)

        lc =  LandCoverDataset(in_storage = StorageFactory().get_storage('flt_storage', storage_location = flt_directory_in))
        relative_x = lc.get_attribute("relative_x")
        relative_y = lc.get_attribute("relative_y")
        flat_indices = relative_x * self.ncols * 1.0 + relative_y
        
        if flat_indices[5*self.ncols:] is None or len(flat_indices[5*self.ncols:]) == 0:
            offset = 0
        else:
            offset = 5*self.ncols
        
        logger.start_block("Converting")
        try:    
            for attr_name in lc.get_primary_attribute_names():
                if attr_name not in ["relative_x", "relative_y"]:
                    attr_name = "lct" #-------------- only output lct now
                    logger.log_status("    ", attr_name)
                    attr = ma.filled(lc.get_attribute(attr_name), self.nodata_values).astype(float32)
                    self._create_flt_file2(os.path.join(flt_directory_out, attr_name+".lf4"), attr, flat_indices, offset)
                    self._create_header(os.path.join(flt_directory_out, attr_name+".hdr")) #<-- added 26 may 09 by mm
                    del attr
                    break #-------------- only output lct now
                    
            lc.load_dataset(attributes='*')
            if lc.get_computed_attribute_names() is not None:        
                flt_directory_out = os.path.join(flt_directory_out, "computed")
                if not os.path.exists(flt_directory_out):
                    os.makedirs(flt_directory_out)
                for attr_name in lc.get_computed_attribute_names():
                    if attr_name not in ["_hidden_id_"]:
                      if attr_name[0:5] == "probs":
                        logger.log_status("    ", attr_name)
                        attr = ma.filled(lc.get_attribute(attr_name), self.nodata_values).astype(float32)
                        self._create_flt_file2(os.path.join(flt_directory_out, attr_name+".lf4"), attr, flat_indices, offset)
                        self._create_header(os.path.join(flt_directory_out, attr_name+".hdr")) #<-- added 26 may 09 by mm
                        del attr
        finally:
#            lc.flush_dataset() # added 23 jun 2009 - not tested...
            logger.end_block()
예제 #2
0
 #    os.remove("indices.lf4")
 #flat_indices.tofile("indices.lf4")
 
 logger.start_block("Converting")
 try:    
     for attr_name in lc.get_primary_attribute_names():
         if attr_name not in ["relative_x", "relative_y"]:
             #attr_name = "lct" #-------------- only output lct now
             logger.log_status("    ", attr_name)
             attr = ma.filled(lc.get_attribute(attr_name), nodata_values).astype(float32)
 #            print attr.size
             _create_flt_file(os.path.join(flt_directory_out, attr_name+".lf4"), attr, flat_indices, offset)
             _create_header(os.path.join(flt_directory_out, attr_name+".hdr")) #<-- added 26 may 09 by mm
             del attr
             #break #-------------- only output lct now
             
     lc.load_dataset(attributes='*')
     if lc.get_computed_attribute_names() is not None:        
         flt_directory_out = os.path.join(flt_directory_out, "computed")
         if not os.path.exists(flt_directory_out):
             os.makedirs(flt_directory_out)
         for attr_name in lc.get_computed_attribute_names():
             if attr_name not in ["_hidden_id_"]:
                 logger.log_status("    ", attr_name)
                 attr = ma.filled(lc.get_attribute(attr_name), nodata_values).astype(float32)
 #                print attr.size
                 _create_flt_file(os.path.join(flt_directory_out, attr_name+".lf4"), attr, flat_indices, offset)
                 _create_header(os.path.join(flt_directory_out, attr_name+".hdr")) #<-- added 26 may 09 by mm
                 del attr
 finally:
     logger.end_block()
예제 #3
0
    def _create_flt_file(self, current_year, flt_directory_in,
                         flt_directory_out):

        logger.log_status("Convert output data for ", str(current_year))

        flt_directory_out = os.path.join(flt_directory_out, 'land_covers')

        if not os.path.exists(flt_directory_out):
            os.makedirs(flt_directory_out)

        lc = LandCoverDataset(in_storage=StorageFactory().get_storage(
            'flt_storage', storage_location=flt_directory_in))
        relative_x = lc.get_attribute("relative_x")
        relative_y = lc.get_attribute("relative_y")
        flat_indices = relative_x * self.ncols * 1.0 + relative_y

        if flat_indices[5 * self.ncols:] is None or len(
                flat_indices[5 * self.ncols:]) == 0:
            offset = 0
        else:
            offset = 5 * self.ncols

        logger.start_block("Converting")
        try:
            for attr_name in lc.get_primary_attribute_names():
                if attr_name not in ["relative_x", "relative_y"]:
                    attr_name = "lct"  #-------------- only output lct now
                    logger.log_status("    ", attr_name)
                    attr = ma.filled(lc.get_attribute(attr_name),
                                     self.nodata_values).astype(float32)
                    self._create_flt_file2(
                        os.path.join(flt_directory_out, attr_name + ".lf4"),
                        attr, flat_indices, offset)
                    self._create_header(
                        os.path.join(flt_directory_out, attr_name +
                                     ".hdr"))  #<-- added 26 may 09 by mm
                    del attr
                    break  #-------------- only output lct now

            lc.load_dataset(attributes='*')
            if lc.get_computed_attribute_names() is not None:
                flt_directory_out = os.path.join(flt_directory_out, "computed")
                if not os.path.exists(flt_directory_out):
                    os.makedirs(flt_directory_out)
                for attr_name in lc.get_computed_attribute_names():
                    if attr_name not in ["_hidden_id_"]:
                        if attr_name[0:5] == "probs":
                            logger.log_status("    ", attr_name)
                            attr = ma.filled(
                                lc.get_attribute(attr_name),
                                self.nodata_values).astype(float32)
                            self._create_flt_file2(
                                os.path.join(flt_directory_out,
                                             attr_name + ".lf4"), attr,
                                flat_indices, offset)
                            self._create_header(
                                os.path.join(
                                    flt_directory_out, attr_name +
                                    ".hdr"))  #<-- added 26 may 09 by mm
                            del attr
        finally:
            #            lc.flush_dataset() # added 23 jun 2009 - not tested...
            logger.end_block()
예제 #4
0
                #attr_name = "lct" #-------------- only output lct now
                logger.log_status("    ", attr_name)
                attr = ma.filled(lc.get_attribute(attr_name),
                                 nodata_values).astype(float32)
                #            print attr.size
                _create_flt_file(
                    os.path.join(flt_directory_out, attr_name + ".lf4"), attr,
                    flat_indices, offset)
                _create_header(
                    os.path.join(flt_directory_out, attr_name +
                                 ".hdr"))  #<-- added 26 may 09 by mm
                del attr
                #break #-------------- only output lct now

        lc.load_dataset(attributes='*')
        if lc.get_computed_attribute_names() is not None:
            flt_directory_out = os.path.join(flt_directory_out, "computed")
            if not os.path.exists(flt_directory_out):
                os.makedirs(flt_directory_out)
            for attr_name in lc.get_computed_attribute_names():
                if attr_name not in ["_hidden_id_"]:
                    logger.log_status("    ", attr_name)
                    attr = ma.filled(lc.get_attribute(attr_name),
                                     nodata_values).astype(float32)
                    #                print attr.size
                    _create_flt_file(
                        os.path.join(flt_directory_out, attr_name + ".lf4"),
                        attr, flat_indices, offset)
                    _create_header(
                        os.path.join(flt_directory_out, attr_name +
                                     ".hdr"))  #<-- added 26 may 09 by mm