-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* run conda on pr/push * remove pybind11 submodule * Link gfortran only for Linux builds. Not required for macos * Fix error in cmake that wasn't caught on mac * Test LW solver --------- Co-authored-by: Alex Soklev <[email protected]>
- Loading branch information
1 parent
5a6ec38
commit 75c717b
Showing
4 changed files
with
98 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{"ncol": 8, "nlay": 16, "ngpt": 1, "top_at_1": true, "nmus": 1, "Ds": [1.66, 1.66, 1.66, 1.66, 1.66, 1.66, 1.66, 1.66], "weights": 0.5, "tau": [0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125], "lay_source": [55.262424040190126, 34.223494451559205, 9.723321608024499, 5.034661079536288, 77.35658094313622, 47.90619602161601, 13.610747774297323, 7.047540423437901, 55.83281279792635, 37.59907382111288, 16.365590690049466, 12.302084898693016, 78.15501360100855, 52.63134666902437, 22.9086248546815, 17.22051181727, 56.40320155566256, 40.97465319066656, 23.007859772074433, 19.569508717849743, 78.95344625888087, 57.356497316432716, 32.20650193506568, 27.3934832111021, 56.97359031339879, 44.35023256022022, 29.6501288540994, 26.836932537006472, 79.75187891675321, 62.081647963841064, 41.50437901544986, 37.5664546049342, 57.543979071135, 47.72581192977389, 36.292397936124374, 34.1043563561632, 80.55031157462552, 66.8067986112494, 50.80225609583404, 47.73942599876631, 58.11436782887121, 51.10139129932756, 42.93466701814934, 41.37178017531993, 81.34874423249784, 71.53194925865776, 60.10013317621822, 57.91239739259841, 58.68475658660742, 54.476970668881236, 49.5769361001743, 48.63920399447666, 82.14717689037018, 76.25709990606612, 69.39801025660239, 68.08536878643051, 59.25514534434363, 57.852550038434906, 56.21920518219927, 55.906627813633385, 82.9456095482425, 80.98225055347447, 78.69588733698657, 78.2583401802626, 59.82553410207986, 61.228129407988575, 62.86147426422424, 63.17405163279011, 83.74404220611483, 85.70740120088283, 87.99376441737076, 88.4313115740947, 60.39592285981607, 64.60370877754224, 69.50374334624921, 70.44147545194684, 84.54247486398715, 90.43255184829118, 97.29164149775494, 98.60428296792682, 60.96631161755229, 67.97928814709591, 76.14601242827418, 77.70889927110358, 85.34090752185948, 95.15770249569952, 106.58951857813912, 108.7772543617589, 61.536700375288504, 71.35486751664959, 82.78828151029914, 84.9763230902603, 86.1393401797318, 99.8828531431079, 115.8873956585233, 118.95022575559102, 62.10708913302473, 74.73044688620327, 89.43055059232411, 92.24374690941703, 86.93777283760414, 104.60800379051625, 125.18527273890746, 129.1231971494231, 62.67747789076094, 78.10602625575693, 96.07281967434906, 99.51117072857375, 87.73620549547647, 109.33315443792458, 134.48314981929164, 139.2961685432552, 63.24786664849716, 81.4816056253106, 102.71508875637403, 106.77859454773048, 88.5346381533488, 114.05830508533293, 143.78102689967585, 149.4691399370873, 63.81825540623337, 84.85718499486427, 109.357357838399, 114.04601836688721, 89.33307081122112, 118.7834557327413, 153.07890398006003, 159.64211133091942], "lev_source": [54.97722966132202, 32.535704766782374, 6.402187067012017, 1.4009491699579235, 76.95736461420006, 45.543620697911834, 8.961809234105234, 1.9610547265218508, 55.54761841905824, 35.91128413633604, 13.044456149036982, 8.668372989114651, 77.75579727207239, 50.26877134532019, 18.25968631448941, 12.134026120353951, 56.11800717679446, 39.28686350588972, 19.68672523106195, 15.93579680827138, 78.55422992994471, 54.99392199272854, 27.55756339487359, 22.30699751418605, 56.688395934530675, 42.66244287544339, 26.32899431308692, 23.20322062742811, 79.35266258781704, 59.71907264013689, 36.85544047525777, 32.47996890801815, 57.25878469226689, 46.03802224499706, 32.97126339511188, 30.470644446584835, 80.15109524568938, 64.44422328754524, 46.15331755564195, 42.65294030185025, 57.8291734500031, 49.41360161455072, 39.61353247713686, 37.73806826574157, 80.94952790356167, 69.16937393495358, 55.45119463602613, 52.82591169568236, 58.399562207739315, 52.789180984104405, 46.25580155916182, 45.00549208489829, 81.74796056143401, 73.89452458236195, 64.74907171641031, 62.99888308951446, 58.969950965475526, 56.16476035365807, 52.898070641186784, 52.27291590405502, 82.54639321930634, 78.6196752297703, 74.04694879679448, 73.17185448334655, 59.540339723211744, 59.540339723211744, 59.54033972321175, 59.54033972321175, 83.34482587717866, 83.34482587717866, 83.34482587717866, 83.34482587717866, 60.11072848094796, 62.915919092765414, 66.18260880523673, 66.80776354236848, 84.14325853505099, 88.069976524587, 92.64270295756286, 93.51779727101076, 60.68111723868418, 66.29149846231907, 72.82487788726169, 74.07518736152521, 84.94169119292332, 92.79512717199535, 101.94058003794703, 103.69076866484286, 61.2515059964204, 69.66707783187276, 79.46714696928666, 81.34261118068193, 85.74012385079564, 97.5202778194037, 111.23845711833121, 113.86374005867496, 61.82189475415662, 73.04265720142644, 86.10941605131163, 88.61003499983866, 86.53855650866797, 102.24542846681207, 120.53633419871538, 124.03671145250706, 62.392283511892835, 76.4182365709801, 92.7516851333366, 95.8774588189954, 87.3369891665403, 106.97057911422041, 129.83421127909955, 134.20968284633915, 62.96267226962905, 79.79381594053376, 99.39395421536155, 103.14488263815211, 88.13542182441263, 111.69572976162875, 139.13208835948373, 144.38265424017126, 63.533061027365264, 83.16939531008744, 106.03622329738653, 110.41230645730884, 88.93385448228496, 116.42088040903712, 148.42996543986794, 154.55562563400335, 64.10344978510147, 86.54497467964111, 112.67849237941148, 117.67973027646558, 89.73228714015727, 121.14603105644548, 157.7278425202521, 164.72859702783546], "sfc_emis": [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], "sfc_src": [119.08067944642347, 119.08067944642347, 119.08067944642347, 119.08067944642347, 166.6896517543573, 166.6896517543573, 166.6896517543573, 166.6896517543573], "inc_flux": [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], "flux_up": [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN], "flux_dn": [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN], "do_broadband": true, "broadband_up": [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN], "broadband_dn": [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN], "do_Jacobians": false, "sfc_srcJac": [1.6713077817041893, 1.6713077817041893, 1.6713077817041893, 1.6713077817041893, 2.1508342161852556, 2.1508342161852556, 2.1508342161852556, 2.1508342161852556], "flux_upJac": [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN], "do_rescaling": false, "ssa": [0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125], "g": [0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125, 0.00625, 0.0625, 0.625, 3.125]} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
#!/usr/bin/env python3 | ||
import json | ||
|
||
# This is the code that was used to save the output of the lw_solver_noscat function, you can use it as reference for other functions | ||
# open(1, file = 'asd/asd/asd/fortran_data.txt', status = 'new') | ||
|
||
# ! Write data to the file | ||
# write(1, *) 'ncol: ', ncol | ||
# write(1, *) 'nlay: ', nlay | ||
# write(1, *) 'ngpt: ', ngpt | ||
# write(1, *) 'top_at_1: ', logical(top_at_1, wl) | ||
# write(1, *) 'nmus: ', n_quad_angs | ||
# write(1, *) 'Ds: ', secants | ||
# write(1, *) 'weights: ', gauss_wts(1:n_quad_angs,n_quad_angs) | ||
# write(1, *) 'tau: ', optical_props%tau | ||
# write(1, *) 'lay_source: ', sources%lay_source | ||
# write(1, *) 'lev_source: ', sources%lev_source | ||
# write(1, *) 'sfc_emis: ', sfc_emis_gpt | ||
# write(1, *) 'sfc_src: ', sources%sfc_source | ||
# write(1, *) 'inc_flux: ', inc_flux_diffuse | ||
# write(1, *) 'flux_up: ', gpt_flux_up | ||
# write(1, *) 'flux_dn: ', gpt_flux_dn | ||
# write(1, *) 'do_broadband: ', do_broadband | ||
# write(1, *) 'broadband_up: ', flux_up_loc | ||
# write(1, *) 'broadband_dn: ', flux_dn_loc | ||
# write(1, *) 'do_Jacobians: ', logical(do_Jacobians, wl) | ||
# write(1, *) 'sfc_srcJac: ', sources%sfc_source_Jac | ||
# write(1, *) 'flux_upJac: ', jacobian | ||
# write(1, *) 'do_rescaling: ', logical(.false., wl) | ||
# write(1, *) 'ssa: ', optical_props%tau | ||
# write(1, *) 'g: ', optical_props%tau | ||
|
||
# ! Close the file | ||
# close(1) | ||
|
||
def parse_value(value): | ||
# Handle NaN | ||
if 'NaN' in value: | ||
res = float('nan') | ||
# Handle bool | ||
elif value in ['T', 'F']: | ||
res = True if value == 'T' else False | ||
# Handle float | ||
elif "." in value: | ||
res = float(value) | ||
else: | ||
try: | ||
# Handle int | ||
res = int(value) | ||
except ValueError: | ||
# Keeping as string if not an int | ||
res = value | ||
return res | ||
|
||
def load_data_from_file(file_path): | ||
data = {} | ||
with open(file_path, 'r') as file: | ||
for line in file: | ||
parts = line.split(':') | ||
assert(len(parts) == 2) | ||
key = parts[0].strip() | ||
values = parts[1].strip().split() | ||
if len(values) == 1: | ||
data[key] = parse_value(values[0]) | ||
else: | ||
data[key] = [float(val) for val in values] | ||
return data | ||
|
||
file_path = 'fortran_data.txt' | ||
data = load_data_from_file(file_path) | ||
|
||
with open('lw_solver_input.json', 'w') as f: | ||
json.dump(data, f) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
#!/usr/bin/env python3 | ||
import json | ||
import numpy as np | ||
import pyrte.pyrte as py | ||
import os | ||
|
||
def test_lw_solver(request): | ||
path = os.path.dirname(request.path) | ||
with open(f'{path}/lw_solver_input.json', 'r') as f: | ||
data = json.load(f) | ||
|
||
for key in data: | ||
values = data[key] | ||
if isinstance(values, list): | ||
values = np.array(values) | ||
data[key] = values | ||
|
||
args = list(data.values()) | ||
|
||
py.rte_lw_solver_noscat(*args) | ||
|
||
test_data = np.load(f"{path}/lw_solver_output.npy") | ||
|
||
assert(np.allclose(test_data - data['broadband_up'], 0.)) |
Binary file not shown.