def main(args): start_time = time.time() parameters = SimpleNamespace(**args['parameters']) mdt_key = args['mdt_key'] mdt_filename = os.path.basename(mdt_key) cos = COSBackend( aws_access_key_id=args['cos']['aws_access_key_id'], aws_secret_access_key=args['cos']['aws_secret_access_key'], endpoint_url=args['cos']['private_endpoint']) cos.download_file(parameters.BUCKET, mdt_key, mdt_filename) tiff_file = os.path.splitext(mdt_filename)[0] + '.tif' with rasterio.open(mdt_filename) as src: profile = src.profile # Cloud optimized GeoTiff parameters (No hace falta rio_cogeo) profile.update(driver='GTiff') profile.update(blockxsize=256) profile.update(blockysize=256) profile.update(tiled=True) profile.update(compress='deflate') profile.update(interleave='band') with rasterio.open(tiff_file, "w", **profile) as dest: dest.write(src.read()) cos.upload_file(filename=tiff_file, bucket=parameters.BUCKET, key='tiff/{}'.format(tiff_file)) end_time = time.time() return { 'result': tiff_file, 'start_time': start_time, 'end_time': end_time }
def main(args): start_time = time.time() parameters = SimpleNamespace(**args['parameters']) cos = COSBackend( aws_access_key_id=args['cos']['aws_access_key_id'], aws_secret_access_key=args['cos']['aws_secret_access_key'], endpoint_url=args['cos']['private_endpoint']) url = args['url'] siam_data = requests.get(url) with open('siam_data.csv', 'wb') as siam_file: siam_file.write(siam_data.content) cos.download_file(bucket=parameters.BUCKET, key='siam_locations.csv', filename='siam_locations.csv') columns = { 'Estación': 'COD', 'Tmed <br> (ºC)': 'temp', 'Hrmed <br> (%)': 'hr', 'Vvmed <br> (m/seg)': 'v', 'Eti.': 'dir', 'Radmed <br> (w/m2)': 'rad', 'Dvmed <br> (º)': 'dir_deg' } siam_data = pd.read_csv('siam_data.csv', encoding='iso-8859-1', sep=';', decimal=',', thousands='.', na_values='-') siam_data = siam_data[columns.keys()].rename(columns=columns) siam_locations = pd.read_csv('siam_locations.csv', encoding='iso-8859-1', sep=';', decimal=',', thousands='.') siam = pd.merge(siam_locations, siam_data, on='COD') siam['tdet'] = siam['temp'] + parameters.r * (parameters.zdet - siam['Cota'].to_numpy()) siam = siam[['X', 'Y', 'Cota', 'temp', 'hr', 'tdet', 'v'] + list(columns.values())] # Guess wind direction of undefined values siam['dir_deg'] = siam.apply( lambda row: row['dir_deg'] if not math.isnan(row['dir_deg']) else guess_nearest( row['X'], row['Y'], 'dir_deg', siam), axis=1) # Guess radiation of undefined values siam['rad'] = siam.apply(lambda row: row['rad'] if not math.isnan(row['rad']) else guess_nearest( row['X'], row['Y'], 'rad', siam), axis=1) siam.to_csv('siam_out.csv', index=False) cos.upload_file(filename='siam_out.csv', bucket=parameters.BUCKET, key='siam_out.csv') end_time = time.time() return { 'result': 'siam_out.csv', 'start_time': start_time, 'end_time': end_time }