def run(target_folder, coordinate_table, coordinate_column_x, coordinate_column_y, source_proj4, target_proj4): target_path = join(target_folder, 'converted_coordinate_table.csv') try: transform_x_y = get_transformPoint(source_proj4, target_proj4) except GeometryError: try: get_spatialReference(source_proj4) except GeometryError: exit(SPATIAL_REFERENCE_INVALID % ('source', source_proj4)) try: get_spatialReference(target_proj4) except GeometryError: exit(SPATIAL_REFERENCE_INVALID % ('target', target_proj4)) columns = list(coordinate_table.columns) column_x_index = _get_column_index(columns, coordinate_column_x, 'x') column_y_index = _get_column_index(columns, coordinate_column_y, 'y') columns, order_x_y = _prepare_columns(columns, target_proj4) csv_writer = csv.writer(open(target_path, 'w')) csv_writer.writerow(columns) for index, row in enumerate(coordinate_table.values): row = list(row) old_x, old_y = row[column_x_index], row[column_y_index] try: new_x, new_y = transform_x_y(old_x, old_y) except RuntimeError: print_error(COORDINATES_NOT_TRANSFORMED, index, old_x, old_y) csv_writer.writerow(row + ['', '']) continue csv_writer.writerow(row + order_x_y(new_x, new_y)) return [ ('converted_coordinate_table_path', target_path), ]
def run( target_folder, coordinate_table, coordinate_column_x, coordinate_column_y, source_proj4, target_proj4): target_path = join(target_folder, 'converted_coordinate_table.csv') try: transform_x_y = get_transformPoint(source_proj4, target_proj4) except GeometryError: try: get_spatialReference(source_proj4) except GeometryError: exit(SPATIAL_REFERENCE_INVALID % ('source', source_proj4)) try: get_spatialReference(target_proj4) except GeometryError: exit(SPATIAL_REFERENCE_INVALID % ('target', target_proj4)) columns = list(coordinate_table.columns) column_x_index = _get_column_index(columns, coordinate_column_x, 'x') column_y_index = _get_column_index(columns, coordinate_column_y, 'y') columns, order_x_y = _prepare_columns(columns, target_proj4) csv_writer = csv.writer(open(target_path, 'w')) csv_writer.writerow(columns) for index, row in enumerate(coordinate_table.values): row = list(row) old_x, old_y = row[column_x_index], row[column_y_index] try: new_x, new_y = transform_x_y(old_x, old_y) except RuntimeError: print_error(COORDINATES_NOT_TRANSFORMED, index, old_x, old_y) csv_writer.writerow(row + ['', '']) continue csv_writer.writerow(row + order_x_y(new_x, new_y)) return [ ('converted_coordinate_table_path', target_path), ]
def test_get_spatialReference_runs(self): get_spatialReference(proj4LL) with self.assertRaises(GeometryError): get_spatialReference('')
def _normalize_proj4(proj4): return get_spatialReference(proj4).ExportToProj4()