Source code for src.functions.SOLWEIGpython.WriteMetadataSOLWEIG

from builtins import str
# This file prints out run information used for each specific run
from time import strftime
from osgeo import osr


[docs] def writeRunInfo(folderPath, filepath_dsm, gdal_dsm, usevegdem, filePath_cdsm, trunkfile, filePath_tdsm, lat, lon, UTC, landcover, filePath_lc, metfileexist, filePath_metfile, metdata, absK, absL, albedo_b, albedo_g, ewall, eground, onlyglobal, trunkratio, trans, rows, cols, pos, elvis, cyl, demforbuild, ani): '''Unchanged function to store the model run info for SOLWEIG''' # with open(folderPath + '/RunInfoSOLWEIG.txt', 'w') as file: #FO# #FO# if metdata[0, 2] < 10: XH = '0' else: XH = '' if metdata[0, 3] < 10: XM = '0' else: XM = '' with open(folderPath + '/RunInfoSOLWEIG_' + str(int(metdata[0, 0])) + '_' + str(int(metdata[0, 1])) + '_' + XH + str(int(metdata[0, 2])) + XM + str(int(metdata[0, 3])) + '.txt', 'w') as file: #FO# file.write('This file provides run settings for the SOLWEIG run initiated at: ' + strftime("%a, %d %b %Y %H:%M:%S")) file.write('\n') file.write('Version: ' + 'SOLWEIG v2022a') file.write('\n') file.write('\n') file.write('SURFACE DATA') file.write('\n') file.write('Digital surface model (DSM): ' + filepath_dsm) file.write('\n') file.write('Model domain: rows = ' + str(rows) + ', columns = ' + str(cols)) file.write('\n') # get CRS prj = gdal_dsm.GetProjection() srs = osr.SpatialReference(wkt=prj) if srs.IsProjected: file.write('Projected reference system: ' + srs.GetAttrValue('projcs')) file.write('\n') file.write('Geographical coordinate system: ' + srs.GetAttrValue('geogcs')) file.write('\n') file.write('Latitude: ' + str(lat)) file.write('\n') file.write('Longitude: ' + str(lon)) file.write('\n') file.write('UTC: ' + str(UTC)) file.write('\n') if usevegdem == 1: file.write('Transmissivity of light through vegetation: ' + str(trans)) file.write('\n') file.write('Digital vegetation canopy model (CDSM): ' + filePath_cdsm) file.write('\n') if trunkfile == 1: file.write('Digital vegetation trunk zone model (TDSM): ' + filePath_tdsm) #FO# zrunk -> trunk file.write('\n') else: file.write('Trunkzone estimated from CDSM') file.write('\n') file.write('Trunkzone as percent of canopy height: ' + str(trunkratio)) file.write('\n') else: file.write('Vegetation scheme inactive') file.write('\n') if landcover == 1: file.write('Landcover scheme active. Parameters taken from: /landcoverclasses_2016a.txt') file.write('\n') file.write('Landcover grid: ' + filePath_lc) file.write('\n') else: file.write('Landcover scheme inactive') file.write('\n') file.write('\n') if demforbuild == 1: file.write('DEM used to identify buildings') file.write('\n') else: file.write('Land cover used to identify buildings') file.write('\n') file.write('\n') file.write('METEOROLOGICAL FORCING DATA') file.write('\n') if metfileexist == 1: file.write('Meteorological file: ' + filePath_metfile) file.write('\n') if onlyglobal == 1: file.write('Diffuse and direct shortwave radiation estimated from global radiation') file.write('\n') else: file.write('Meteorological file not used') file.write('\n') #FO# ' ' -> file.write('\n') file.write('Year: ' + str(metdata[0, 0])) file.write('\n') file.write('Day of Year: ' + str(metdata[0, 1])) file.write('\n') file.write('Hour: ' + str(metdata[0, 2])) file.write('\n') file.write('Minute: ' + str(metdata[0, 3])) file.write('\n') file.write('Air temperature: ' + str(metdata[0, 11])) #FO# Ait -> Air file.write('\n') file.write('Relative humidity: ' + str(metdata[0, 10])) file.write('\n') file.write('Global radiation: ' + str(metdata[0, 14])) file.write('\n') file.write('Diffuse radiation: ' + str(metdata[0, 21])) file.write('\n') file.write('Direct radiation: ' + str(metdata[0, 22])) file.write('\n') file.write('\n') file.write('HUMAN EXPOSURE PARAMETERS') file.write('\n') file.write('Absorption, shortwave radiation: ' + str(absK)) file.write('\n') file.write('Absorption, longwave radiation: ' + str(absL)) file.write('\n') if pos == 0: file.write('Posture of human body: Standing') else: file.write('Posture of human body: Sitting') file.write('\n') file.write('ENVIRONMENTAL PARAMETERS') file.write('\n') file.write('Albedo of walls: ' + str(albedo_b)) file.write('\n') file.write('Albedo of ground (not used if land cover scheme is active): ' + str(albedo_g)) file.write('\n') file.write('Emissivity (walls): ' + str(ewall)) file.write('\n') file.write('Emissivity of ground (not used if land cover scheme is active): ' + str(eground)) file.write('\n') file.write('\n') file.write('ADDITIONAL SETTINGS') file.write('\n') if elvis == 1: file.write('Sky emissivity adjusted according to Jonsson et al. (2005)') file.write('\n') if cyl == 1: file.write('Human considered as a standing cylinder') #FO# '' -> standing else: file.write('Human considered as a standing cube') file.write('\n') if ani == 1: file.write('Anisotropic sky diffuse shortwave (Perez et al. 1993) and longwave (Martin & Berdahl, 1984) radiation') else: file.write('Isotropic sky') file.write('\n') file.close()