Beispiel #1
0
    def build_map_from_ascii(self, ascii_file):
        map = Map()
        map.n_cols = int(ascii_file.readline().replace('ncols',
                                                       '').replace('\n', ''))
        map.n_rows = int(ascii_file.readline().replace('nrows',
                                                       '').replace('\n', ''))
        map.xll_corner = float(ascii_file.readline().replace('xllcorner',
                                                             '').replace(
                                                                 '\n', ''))
        map.yll_corner = float(ascii_file.readline().replace('yllcorner',
                                                             '').replace(
                                                                 '\n', ''))
        map.cell_size = int(ascii_file.readline().replace('cellsize',
                                                          '').replace(
                                                              '\n', ''))
        map.no_data_value = int(ascii_file.readline().replace(
            'NODATA_value', '').replace('\n', ''))
        #
        map.matrix = []
        for i in range(map.n_rows):
            line_str = ascii_file.readline()
            line_list = line_str.split(' ')
            line_list = line_list[:len(line_list) - 1]

            for j in range(len(line_list)):
                line_list[j] = float(line_list[j])
            if len(line_list) > map.n_cols:
                line_list = line_list[:map.n_cols]
            elif len(line_list) < map.n_cols:
                for j in range(map.n_cols - len(line_list)):
                    line_list.append(map.no_data_value)
            map.matrix.append(line_list)
        return map