def gen_geotiff2(new_string_json,uid,f_name,f_tiff_name): return from osgeo import gdal from osgeo import osr import numpy as np import os,sys import cv2 import csv f_name= uid+'/'+f_name+'.png' f_tiff_name = uid+'/'+f_tiff_name print(f_name) print(f_tiff_name) n_file = cv2.imread(f_name) orig_h,orig_w,orig_rgb = n_file.shape w_new = orig_w h_new = orig_h w = round(400*w_new/h_new) w_new = w h_new = 400 print('new_wh') print(w_new) print(h_new) n_file = cv2.resize(n_file,(w_new,h_new)) image_size = (w_new,h_new) newfieldminlat =new_string_json["FieldMinLat"] newfieldmaxlat =new_string_json["FieldMaxLat"] newfieldminlong =new_string_json["FieldMinLong"] newfieldmaxlong =new_string_json["FieldMaxLong"] lat = [newfieldminlat, newfieldmaxlat] lon = [newfieldminlong, newfieldmaxlong] b_pixels,g_pixels,r_pixels = cv2.split(n_file) nx = image_size[1] ny = image_size[0] xmin,ymin,xmax,ymax = [newfieldminlong, newfieldminlat, newfieldmaxlong, newfieldmaxlat] xres = (float(xmax)-float(xmin))/float(ny) yres = (float(ymax)-float(ymin))/float(nx) xmin = float(xmin) ymin = float(ymin) xmax = float(xmax) ymax = float(ymax) xres = float(xres) yres = float(yres) geotransform = (xmin,xres,0,ymax,0,-yres) dst_ds = gdal.GetDriverByName('GTiff').Create(f_tiff_name,ny,nx,3,gdal.GDT_Byte) dst_ds.SetGeoTransform(geotransform) srs = osr.SpatialReference() srs.ImportFromEPSG(4326) dst_ds.SetProjection(srs.ExportToWkt()) dst_ds.GetRasterBand(1).WriteArray(r_pixels) dst_ds.GetRasterBand(2).WriteArray(g_pixels) dst_ds.GetRasterBand(3).WriteArray(b_pixels) dst_ds.FlushCache() dst_ds=None