mirror of
https://gitlab.astro-wise.org/micado/atmosphericmodel.git
synced 2026-10-29 20:51:05 +00:00
Updated documentation, descriptions for v1.0 release.
This commit is contained in:
1 parent
56051bb6a5
commit
8d50899db6
31 files changed
+17833
-192
No files matched your search
@@ -0,0 +1,21 @@
|
||||
NARR data provided by the NOAA/OAR/ESRL PSL, Boulder, Colorado, USA, from their Web
|
||||
site at https://psl.noaa.gov/
|
||||
|
||||
The original "air.201806.nc" datafile was downloaded from
|
||||
https://psl.noaa.gov/data/gridded/data.narr.pressure.html
|
||||
|
||||
Specific download link (~650 MB):
|
||||
ftp://ftp.cdc.noaa.gov/Datasets/NARR/pressure/air.201806.nc [Last accessed on
|
||||
2020-06-17]
|
||||
|
||||
|
||||
The following files are a direct slice of this data:
|
||||
- export_dist.txt
|
||||
- export_heights.txt
|
||||
- export_press_atmosphere.txt
|
||||
- export_temp_atmosphere.txt
|
||||
|
||||
|
||||
This data file was not included here, because it has a very niche use for the
|
||||
AstroAtmosphere package and is a large file. The tradeoff seems to me to not very
|
||||
favourable, and therefore it is omitted.
|
||||
@@ -0,0 +1,97 @@
|
||||
NCEP North American Regional Reanalysis (NARR) gridded weather data.
|
||||
|
||||
Data from https://www.esrl.noaa.gov/psd/data/gridded/data.narr.pressure.html
|
||||
|
||||
|
||||
|
||||
###############
|
||||
# Header info #
|
||||
###############
|
||||
$ ncdump -h air.201806.nc
|
||||
netcdf air.201806 {
|
||||
dimensions:
|
||||
time = UNLIMITED ; // (240 currently)
|
||||
level = 29 ;
|
||||
y = 277 ;
|
||||
x = 349 ;
|
||||
variables:
|
||||
double time(time) ;
|
||||
time:axis = "T" ;
|
||||
time:coordinate_defines = "point" ;
|
||||
time:delta_t = "0000-00-00 03:00:00" ;
|
||||
time:long_name = "Time" ;
|
||||
time:standard_name = "time" ;
|
||||
time:units = "hours since 1800-1-1 00:00:0.0" ;
|
||||
time:actual_range = 1914576., 1915293. ;
|
||||
float level(level) ;
|
||||
level:GRIB_id = 100s ;
|
||||
level:GRIB_name = "hPa" ;
|
||||
level:actual_range = 1000.f, 100.f ;
|
||||
level:axis = "Z" ;
|
||||
level:coordinate_defines = "point" ;
|
||||
level:long_name = "Level" ;
|
||||
level:positive = "down" ;
|
||||
level:standard_name = "level" ;
|
||||
level:units = "millibar" ;
|
||||
float lat(y, x) ;
|
||||
lat:axis = "Y" ;
|
||||
lat:coordinate_defines = "point" ;
|
||||
lat:long_name = "Latitude" ;
|
||||
lat:standard_name = "latitude" ;
|
||||
lat:units = "degrees_north" ;
|
||||
float lon(y, x) ;
|
||||
lon:axis = "X" ;
|
||||
lon:coordinate_defines = "point" ;
|
||||
lon:long_name = "Longitude" ;
|
||||
lon:standard_name = "longitude" ;
|
||||
lon:units = "degrees_east" ;
|
||||
float y(y) ;
|
||||
y:long_name = "northward distance from southwest corner of domain in projection coordinates" ;
|
||||
y:standard_name = "projection_y_coordinate" ;
|
||||
y:units = "m" ;
|
||||
float x(x) ;
|
||||
x:long_name = "eastward distance from southwest corner of domain in projection coordinates" ;
|
||||
x:standard_name = "projection_x_coordinate" ;
|
||||
x:units = "m" ;
|
||||
int Lambert_Conformal ;
|
||||
Lambert_Conformal:false_easting = 5632642.22547 ;
|
||||
Lambert_Conformal:false_northing = 4612545.65137 ;
|
||||
Lambert_Conformal:grid_mapping_name = "lambert_conformal_conic" ;
|
||||
Lambert_Conformal:latitude_of_projection_origin = 50. ;
|
||||
Lambert_Conformal:longitude_of_central_meridian = -107. ;
|
||||
Lambert_Conformal:standard_parallel = 50., 50. ;
|
||||
float air(time, level, y, x) ;
|
||||
air:GRIB_id = 11s ;
|
||||
air:GRIB_name = "TMP" ;
|
||||
air:_FillValue = 9.96921e+36f ;
|
||||
air:coordinates = "lat lon" ;
|
||||
air:dataset = "NARR 3-hourly" ;
|
||||
air:grid_mapping = "Lambert_Conformal" ;
|
||||
air:level_desc = "Pressure Levels" ;
|
||||
air:long_name = "3-hourly Air Temperature on Pressure Levels" ;
|
||||
air:parent_stat = "Other" ;
|
||||
air:standard_name = "air_temperature" ;
|
||||
air:statistic = "Individual Obs" ;
|
||||
air:units = "degK" ;
|
||||
air:valid_range = 137.5f, 362.5f ;
|
||||
air:var_desc = "Air temperature" ;
|
||||
air:missing_value = -9.96921e+36f ;
|
||||
air:actual_range = 187.1279f, 320.1487f ;
|
||||
|
||||
// global attributes:
|
||||
:Conventions = "CF-1.2" ;
|
||||
:centerlat = 50. ;
|
||||
:centerlon = -107. ;
|
||||
:comments = "" ;
|
||||
:institution = "National Centers for Environmental Prediction" ;
|
||||
:latcorners = 1.000001f, 0.897945f, 46.3544f, 46.63433f ;
|
||||
:loncorners = -145.5f, -68.32005f, -2.569891f, 148.6418f ;
|
||||
:platform = "Model" ;
|
||||
:standardpar1 = 50. ;
|
||||
:standardpar2 = 50.000001 ;
|
||||
:title = "8x Daily NARR" ;
|
||||
:history = "created Mon Jul 18 21:01:07 MDT 2016 by NOAA/ESRL/PSD" ;
|
||||
:dataset_title = "NCEP North American Regional Reanalysis (NARR)" ;
|
||||
:references = "https://www.esrl.noaa.gov/psd/data/gridded/data.narr.html" ;
|
||||
:source = "http://www.emc.ncep.noaa.gov/mmb/rreanl/index.html" ;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
[0.0, 0.23179527183433432, 0.46359054366866864, 0.6953858155030029, 0.9271810873373373, 1.1589763591716715, 1.3907716310060059, 1.6225669028403402, 1.8543621746746746, 2.086157446509009, 2.317952718343343, 2.5497479901776776, 2.7815432620120117, 3.0133385338463463, 3.2451338056806804, 3.476929077515015, 3.708724349349349, 3.9405196211836833, 4.172314893018018, 4.404110164852352, 4.635905436686686, 4.867700708521021, 5.099495980355355, 5.33129125218969, 5.5630865240240235, 5.794881795858358, 6.026677067692693, 6.258472339527026, 6.490267611361361, 6.7220628831956954, 6.95385815503003, 7.185653426864364, 7.417448698698698, 7.649243970533033, 7.8810392423673665, 8.112834514201701, 8.344629786036036, 8.57642505787037, 8.808220329704705, 9.04001560153904, 9.271810873373372, 9.503606145207707, 9.735401417042041, 9.967196688876376, 10.19899196071071, 10.430787232545045, 10.66258250437938, 10.894377776213712, 11.126173048048047, 11.357968319882382, 11.589763591716716, 11.82155886355105, 12.053354135385385, 12.28514940721972, 12.516944679054053, 12.748739950888387, 12.980535222722722, 13.212330494557056, 13.444125766391391, 13.675921038225725, 13.90771631006006, 14.139511581894393, 14.371306853728727, 14.603102125563062, 14.834897397397397, 15.066692669231731, 15.298487941066066, 15.5302832129004, 15.762078484734733, 15.993873756569068, 16.225669028403402, 16.45746430023774, 16.68925957207207, 16.921054843906404, 17.15285011574074, 17.384645387575073, 17.61644065940941, 17.848235931243742, 18.08003120307808, 18.31182647491241, 18.543621746746744, 18.77541701858108, 19.007212290415413, 19.23900756224975, 19.470802834084083, 19.70259810591842, 19.93439337775275, 20.166188649587085, 20.39798392142142, 20.629779193255754, 20.86157446509009, 21.093369736924423, 21.32516500875876, 21.556960280593092, 21.788755552427425, 22.02055082426176, 22.252346096096094, 22.48414136793043, 22.715936639764763, 22.9477319115991, 23.179527183433432, 23.411322455267765, 23.6431177271021, 23.874912998936434, 24.10670827077077, 24.338503542605103, 24.57029881443944, 24.802094086273772, 25.033889358108105, 25.26568462994244, 25.497479901776774, 25.72927517361111, 25.961070445445444, 26.19286571727978, 26.424660989114113, 26.656456260948445, 26.888251532782782, 27.120046804617115, 27.35184207645145, 27.583637348285784, 27.81543262012012, 28.047227891954453, 28.279023163788786, 28.510818435623122, 28.742613707457455, 28.97440897929179, 29.206204251126124, 29.43799952296046, 29.669794794794793, 29.901590066629126, 30.133385338463462, 30.365180610297795, 30.59697588213213, 30.828771153966464, 31.0605664258008, 31.292361697635133, 31.524156969469466, 31.755952241303802, 31.987747513138135, 32.21954278497247, 32.451338056806804, 32.68313332864114, 32.91492860047548, 33.146723872309806, 33.37851914414414, 33.61031441597848, 33.84210968781281, 34.073904959647145, 34.30570023148148, 34.53749550331582, 34.76929077515015, 35.00108604698448, 35.23288131881882, 35.46467659065315, 35.696471862487485, 35.92826713432182, 36.16006240615616, 36.39185767799049, 36.62365294982482, 36.85544822165916, 37.08724349349349, 37.319038765327825, 37.55083403716216, 37.7826293089965, 38.01442458083083, 38.24621985266516, 38.4780151244995, 38.70981039633383, 38.941605668168165, 39.1734009400025, 39.40519621183684, 39.63699148367117, 39.8687867555055, 40.10058202733984, 40.33237729917417, 40.564172571008505, 40.79596784284284, 41.02776311467718, 41.25955838651151, 41.491353658345844, 41.72314893018018, 41.95494420201451, 42.186739473848846, 42.41853474568318, 42.65033001751752, 42.88212528935185, 43.113920561186184, 43.34571583302052, 43.57751110485485, 43.809306376689186, 44.04110164852352, 44.27289692035786, 44.50469219219219, 44.736487464026524, 44.96828273586086, 45.20007800769519, 45.431873279529526, 45.66366855136386, 45.8954638231982, 46.12725909503253, 46.359054366866864, 46.5908496387012, 46.82264491053553, 47.054440182369866, 47.2862354542042, 47.51803072603854, 47.74982599787287, 47.981621269707205, 48.21341654154154, 48.44521181337587, 48.67700708521021, 48.90880235704454, 49.14059762887888, 49.37239290071321, 49.604188172547545, 49.83598344438188, 50.06777871621621, 50.29957398805055, 50.53136925988488, 50.76316453171922, 50.99495980355355, 51.226755075387885, 51.45855034722222, 51.69034561905655, 51.92214089089089, 52.15393616272522, 52.38573143455956, 52.61752670639389, 52.849321978228225, 53.08111725006256, 53.31291252189689, 53.54470779373123, 53.776503065565564, 54.0082983373999, 54.24009360923423, 54.471888881068566, 54.7036841529029, 54.93547942473723, 55.16727469657157, 55.399069968405904, 55.63086524024024, 55.86266051207457, 56.094455783908906, 56.32625105574324, 56.55804632757757, 56.78984159941191, 57.021636871246244, 57.25343214308058, 57.48522741491491, 57.717022686749246, 57.94881795858358, 58.18061323041791, 58.41240850225225, 58.644203774086584, 58.87599904592092, 59.10779431775525, 59.339589589589586, 59.57138486142392, 59.80318013325825, 60Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
[0.0, 0.21553884711779447, 0.43107769423558895, 0.6466165413533834, 0.8621553884711779, 1.0776942355889725, 1.2932330827067668, 1.5087719298245612, 1.7243107769423558, 1.9398496240601504, 2.155388471177945, 2.370927318295739, 2.5864661654135337, 2.8020050125313283, 3.0175438596491224, 3.233082706766917, 3.4486215538847116, 3.664160401002506, 3.8796992481203008, 4.095238095238095, 4.31077694235589, 4.526315789473684, 4.741854636591478, 4.957393483709273, 5.172932330827067, 5.3884711779448615, 5.6040100250626566, 5.819548872180451, 6.035087719298245, 6.25062656641604, 6.466165413533834, 6.681704260651629, 6.897243107769423, 7.112781954887217, 7.328320802005012, 7.5438596491228065, 7.7593984962406015, 7.974937343358396, 8.19047619047619, 8.406015037593985, 8.62155388471178, 8.837092731829573, 9.052631578947368, 9.268170426065163, 9.483709273182956, 9.699248120300751, 9.914786967418546, 10.13032581453634, 10.345864661654135, 10.56140350877193, 10.776942355889723, 10.992481203007518, 11.208020050125313, 11.423558897243106, 11.639097744360901, 11.854636591478696, 12.07017543859649, 12.285714285714285, 12.50125313283208, 12.716791979949875, 12.932330827067668, 13.147869674185463, 13.363408521303258, 13.578947368421051, 13.794486215538846, 14.010025062656641, 14.225563909774435, 14.44110275689223, 14.656641604010025, 14.872180451127818, 15.087719298245613, 15.303258145363408, 15.518796992481203, 15.734335839598996, 15.949874686716791, 16.165413533834585, 16.38095238095238, 16.596491228070175, 16.81203007518797, 17.027568922305765, 17.24310776942356, 17.45864661654135, 17.674185463659146, 17.88972431077694, 18.105263157894736, 18.32080200501253, 18.536340852130326, 18.751879699248118, 18.967418546365913, 19.182957393483708, 19.398496240601503, 19.614035087719298, 19.829573934837093, 20.045112781954884, 20.26065162907268, 20.476190476190474, 20.69172932330827, 20.907268170426065, 21.12280701754386, 21.338345864661655, 21.553884711779446, 21.76942355889724, 21.984962406015036, 22.20050125313283, 22.416040100250626, 22.63157894736842, 22.847117794486213, 23.062656641604008, 23.278195488721803, 23.493734335839598, 23.709273182957393, 23.924812030075188, 24.14035087719298, 24.355889724310774, 24.57142857142857, 24.786967418546364, 25.00250626566416, 25.218045112781954, 25.43358395989975, 25.64912280701754, 25.864661654135336, 26.08020050125313, 26.295739348370926, 26.51127819548872, 26.726817042606516, 26.942355889724308, 27.157894736842103, 27.373433583959898, 27.588972431077693, 27.804511278195488, 28.020050125313283, 28.235588972431078, 28.45112781954887, 28.666666666666664, 28.88220551378446, 29.097744360902254, 29.31328320802005, 29.528822055137844, 29.744360902255636, 29.95989974937343, 30.175438596491226, 30.39097744360902, 30.606516290726816, 30.82205513784461, 31.037593984962406, 31.253132832080198, 31.468671679197993, 31.684210526315788, 31.899749373433583, 32.11528822055138, 32.33082706766917, 32.54636591478697, 32.76190476190476, 32.97744360902256, 33.19298245614035, 33.40852130325814, 33.62406015037594, 33.83959899749373, 34.05513784461153, 34.27067669172932, 34.48621553884712, 34.70175438596491, 34.9172932330827, 35.1328320802005, 35.34837092731829, 35.56390977443609, 35.77944862155388, 35.994987468671674, 36.21052631578947, 36.426065162907264, 36.64160401002506, 36.857142857142854, 37.07268170426065, 37.288220551378444, 37.503759398496236, 37.719298245614034, 37.934837092731826, 38.150375939849624, 38.365914786967416, 38.581453634085214, 38.796992481203006, 39.0125313283208, 39.228070175438596, 39.44360902255639, 39.659147869674186, 39.87468671679198, 40.09022556390977, 40.30576441102757, 40.52130325814536, 40.73684210526316, 40.95238095238095, 41.16791979949875, 41.38345864661654, 41.59899749373433, 41.81453634085213, 42.03007518796992, 42.24561403508772, 42.46115288220551, 42.67669172932331, 42.8922305764411, 43.10776942355889, 43.32330827067669, 43.53884711779448, 43.75438596491228, 43.96992481203007, 44.185463659147864, 44.40100250626566, 44.616541353383454, 44.83208020050125, 45.047619047619044, 45.26315789473684, 45.478696741854634, 45.694235588972425, 45.909774436090224, 46.125313283208015, 46.340852130325814, 46.556390977443606, 46.771929824561404, 46.987468671679196, 47.20300751879699, 47.418546365914786, 47.63408521303258, 47.849624060150376, 48.06516290726817, 48.28070175438596, 48.49624060150376, 48.71177944862155, 48.92731829573935, 49.14285714285714, 49.35839598997494, 49.57393483709273, 49.78947368421052, 50.00501253132832, 50.22055137844611, 50.43609022556391, 50.6516290726817, 50.8671679197995, 51.08270676691729, 51.29824561403508, 51.51378446115288, 51.72932330827067, 51.94486215538847, 52.16040100250626, 52.37593984962406, 52.59147869674185, 52.807017543859644, 53.02255639097744, 53.238095238095234, 53.45363408521303, 53.669172932330824, 53.884711779448615, 54.100250626566414, 54.315789473684205, 54.531328320802004, 54.746867167919795, 54.962406015037594, 55.177944862155385, 55.39348370Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
[[100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.00000000001, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 99999.99999999999, 99999.99999999999, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.00000000001, 99999.99999999999, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.00000000001, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.00000000001, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.00000000001, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.00000000001, 100000.00000000001, 100000.00000000001, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.00000000001, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 99999.99999999999, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100000.0, 100Line truncated
|
||||
@@ -0,0 +1 @@
|
||||
[[284.050537109375, 284.05081584207153, 284.0510945747681, 284.0513733074647, 284.0516520401612, 284.0519307728577, 284.0522095055543, 284.05248823825076, 284.05276697094735, 284.05304570364393, 284.05332443634046, 284.053603169037, 284.0538819017336, 284.05416063443016, 284.0544393671267, 284.05471809982316, 284.05499683251975, 284.0552755652163, 284.0555542979128, 284.05583303060934, 284.0561117633059, 284.05639049600245, 284.05666922869904, 284.0569479613956, 284.05722669409215, 284.0575054267887, 284.0577841594852, 284.05806289218174, 284.05834162487827, 284.0586203575748, 284.0588990902713, 284.05917782296797, 284.0594565556645, 284.059735288361, 284.06001402105755, 284.06029275375414, 284.06057148645067, 284.06085021914726, 284.0611289518438, 284.0614076845403, 284.06168641723684, 284.06196514993337, 284.06224388262996, 284.0625226153265, 284.062801348023, 284.0630800807196, 284.06335881341613, 284.0636375461127, 284.06391627880924, 284.0641950115058, 284.06447374420236, 284.06475247689883, 284.0650312095954, 284.06530994229195, 284.06558867498853, 284.06586740768506, 284.0661461403816, 284.0664248730782, 284.0667036057747, 284.06698233847123, 284.0672610711678, 284.06753980386435, 284.0678185365609, 284.0680972692574, 284.06837600195394, 284.0686547346505, 284.06893346734705, 284.06921220004364, 284.06949093274017, 284.0697696654367, 284.0700483981333, 284.0703271308298, 284.0706058635264, 284.07088459622287, 284.0711633289194, 284.071442061616, 284.0717207943125, 284.0719995270091, 284.0722782597056, 284.07255699240216, 284.0728357250987, 284.07311445779527, 284.07339319049186, 284.0736719231884, 284.0739506558849, 284.07422938858144, 284.07450812127803, 284.0747868539745, 284.0750655866711, 284.0753443193677, 284.0756230520642, 284.07590178476073, 284.07618051745726, 284.0764592501538, 284.0767379828504, 284.0770167155469, 284.0772954482435, 284.07757418094, 284.07785291363655, 284.0781316463331, 284.07841037902966, 284.0786891117262, 284.0789678444228, 284.0792465771193, 284.07952530981584, 284.07980404251236, 284.08008277520895, 284.0803615079055, 284.080640240602, 284.0809189732986, 284.0811977059951, 284.08147643869165, 284.0817551713882, 284.08203390408477, 284.0823126367813, 284.0825913694779, 284.08287010217435, 284.08314883487094, 284.08342756756747, 284.08370630026405, 284.0839850329606, 284.0842637656571, 284.0845424983537, 284.0848212310502, 284.08509996374676, 284.08537869644334, 284.0856574291398, 284.0859361618364, 284.08621489453293, 284.0864936272295, 284.08677235992604, 284.0870510926226, 284.08732982531916, 284.0876085580157, 284.0878872907122, 284.0881660234088, 284.08844475610533, 284.08872348880186, 284.0890022214984, 284.089280954195, 284.0895596868915, 284.08983841958803, 284.0901171522846, 284.09039588498115, 284.0906746176777, 284.09095335037426, 284.0912320830708, 284.0915108157673, 284.09178954846385, 284.09206828116044, 284.09234701385697, 284.0926257465535, 284.0929044792501, 284.0931832119466, 284.09346194464314, 284.0937406773397, 284.09401941003625, 284.09429814273284, 284.0945768754293, 284.0948556081259, 284.0951343408224, 284.095413073519, 284.09569180621554, 284.09597053891207, 284.0962492716086, 284.0965280043052, 284.0968067370017, 284.0970854696983, 284.09736420239483, 284.106526646489, 284.1175328703515, 284.1285390942141, 284.13954531807667, 284.15055154193925, 284.1615577658018, 284.17256398966435, 284.1835702135269, 284.19457643738946, 284.205582661252, 284.21658888511456, 284.22759510897714, 284.23860133283966, 284.24960755670224, 284.2606137805648, 284.2716200044274, 284.2826262282899, 284.2936324521525, 284.3046386760151, 284.31564489987767, 284.3266511237402, 284.33765734760277, 284.3486635714653, 284.35966979532793, 284.37067601919046, 284.38168224305304, 284.39268846691556, 284.40369469077814, 284.4147009146407, 284.4257071385033, 284.4367133623658, 284.4477195862284, 284.458725810091, 284.4697320339535, 284.4807382578161, 284.49174448167867, 284.5027507055412, 284.51375692940377, 284.52476315326635, 284.53576937712893, 284.54677560099145, 284.55778182485403, 284.5687880487166, 284.5797942725792, 284.5908004964417, 284.6018067203043, 284.6128129441669, 284.6238191680294, 284.634825391892, 284.64583161575456, 284.6568378396171, 284.66784406347966, 284.67885028734224, 284.68985651120477, 284.70086273506735, 284.7118689589299, 284.7228751827925, 284.73388140665503, 284.7448876305176, 284.7558938543802, 284.76690007824277, 284.7779063021053, 284.7889125259679, 284.7999187498304, 284.810924973693, 284.82193119755556, 284.8329374214181, 284.84394364528066, 284.8549498691432, 284.86595609300576, 284.87696231686834, 284.8879685407309, 284.89897476459345, 284.909980988456, 284.9209872123186, 284.9319934361812, 284.9429996600437, 284.9540058839063, 284.96501210776887, 284.9760183316314, 284.987024555494, 284.99803077935655, 285.0090370032191, 285.0200432270817, 285.03104945094424, 285.04205567480676, 285.05306189866934, 285.0640681225319, 285.07507434639444, Line truncated
|
||||
@@ -0,0 +1,168 @@
|
||||
#!/usr/bin/env Python3
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from matplotlib.lines import Line2D
|
||||
from matplotlib import cm
|
||||
from matplotlib.colors import LogNorm
|
||||
from AstroAtmosphere import *
|
||||
from scipy import interpolate
|
||||
import json
|
||||
|
||||
|
||||
'''
|
||||
@ Author: Joost van den Born
|
||||
@ Contact: born@astron.nl
|
||||
@ Description: This script uses the NCEP NARR data to model a real structured atmosphere
|
||||
from data with a resolution of 2.5 km per data point. We interpolate this
|
||||
data to a higher resolution.
|
||||
Then a full integration over this atmosphere is done and compared to the
|
||||
values for the refraction and dispersion if we had only taken the atmospheric
|
||||
conditions directly at the observatory.
|
||||
'''
|
||||
|
||||
|
||||
# Load a variable from a json text file.
|
||||
def loadVariableFromTXT(filename):
|
||||
variableFile = open(filename, 'r')
|
||||
variable = json.load(variableFile)
|
||||
variableFile.close()
|
||||
return np.asarray(variable)
|
||||
|
||||
|
||||
plt.rc('font', family='serif')
|
||||
plt.rc('axes', labelsize='large')
|
||||
|
||||
# h, _, _, _, Temp, Press, Dens, vSound, _,_ = np.genfromtxt('si1py_modified.txt', unpack=True, skip_header=6)
|
||||
|
||||
dist = loadVariableFromTXT('export_dist.txt')
|
||||
heights = loadVariableFromTXT('export_heights.txt')
|
||||
press = loadVariableFromTXT('export_press_atmosphere.txt')
|
||||
temp = loadVariableFromTXT('export_temp_atmosphere.txt')
|
||||
print("Loading complete!")
|
||||
|
||||
# Conditions at Cerro Armazones
|
||||
T = temp[0,0] # k
|
||||
P = press[0,0]# Pa
|
||||
H = 0.0
|
||||
xc = 314 # ppm
|
||||
lat = -24.5983 # degrees
|
||||
h0 = 0 # m
|
||||
l1 = 1.49 # micron
|
||||
l2 = 1.78 # micron
|
||||
zenith = 60 # degrees
|
||||
|
||||
# Calculate the index of refraction
|
||||
at = Observatory()
|
||||
n1 = at.n_tph(l=l1, T=T, p=P, RH=H, xc=xc)
|
||||
n2 = at.n_tph(l=l2, T=T, p=P, RH=H, xc=xc)
|
||||
rho = at.rho(p=P, T=T, RH=H, xc=xc)
|
||||
|
||||
RHlist = np.asarray([H]*len(press[:,0]))
|
||||
xclist = np.asarray([xc]*len(press[:,0]))
|
||||
Dens = at.rho(p=press[:,0], T=temp[:,0], RH=RHlist, xc=xclist)
|
||||
|
||||
refr = refraction(lat, h0)
|
||||
refr.setReducedHeight(P, rho)
|
||||
disp = dispersion(lat, h0)
|
||||
disp.setReducedHeight(P, rho)
|
||||
|
||||
|
||||
# We must create a cube of weather data:
|
||||
# We assume a flat atmosphere for now, so that h does not need to be adjusted
|
||||
# x_max = 200 km, gives zenith_max = ~66.7 degrees
|
||||
# Every 20 km in horizontal direction a new perturbation and interpolation
|
||||
# for every 500 m.
|
||||
x_max = dist[-1] # km
|
||||
|
||||
Temp_cube_n = []
|
||||
Press_cube_n = []
|
||||
|
||||
for x in range(len(dist)):
|
||||
Temp_cube_n.append(temp[:,0])
|
||||
Press_cube_n.append(press[:,0])
|
||||
|
||||
Temp_cube_n = np.asarray(Temp_cube_n).T
|
||||
Press_cube_n = np.asarray(Press_cube_n).T
|
||||
|
||||
|
||||
|
||||
fig = plt.figure()
|
||||
ax1 = fig.add_subplot(211)
|
||||
im = ax1.pcolormesh(dist,heights, temp, cmap=cm.coolwarm)
|
||||
fig.colorbar(im, ax=ax1, label='Temperature (K)')
|
||||
ax1.set_aspect(1)
|
||||
ax1.set_ylabel('Height (km)')
|
||||
|
||||
ax2 = fig.add_subplot(212)
|
||||
im2 = ax2.pcolormesh(dist, heights, press, cmap=cm.coolwarm, norm=LogNorm())
|
||||
ax2.set_aspect(1)
|
||||
ax2.set_xlabel('Horizontal distance (km)')
|
||||
ax2.set_ylabel('Height (km)')
|
||||
fig.colorbar(im2, ax=ax2, label='Pressure (Pa)')
|
||||
plt.tight_layout()
|
||||
plt.show(block=False)
|
||||
|
||||
# Now for a given zenith angle we need to find the temp and press along the line of sight
|
||||
f_Temp_2d = interpolate.interp2d(dist, heights, temp, kind='linear')
|
||||
f_Press_2d = interpolate.interp2d(dist, heights, press, kind='linear')
|
||||
f_Temp_2d_n = interpolate.interp2d(dist, heights, Temp_cube_n, kind='linear')
|
||||
f_Press_2d_n = interpolate.interp2d(dist, heights, Press_cube_n, kind='linear')
|
||||
print('Interpolation complete!')
|
||||
|
||||
|
||||
|
||||
zenithRange = np.linspace(30,65,10)
|
||||
refrDiff, dispDiff = [], []
|
||||
|
||||
for zenith in zenithRange:
|
||||
z = np.deg2rad(zenith)
|
||||
y_los = heights
|
||||
x_los = np.linspace(0, heights.max()*np.tan(z), len(heights))
|
||||
|
||||
Temp_los, Press_los = [], []
|
||||
Temp_los_n, Press_los_n = [], []
|
||||
for i in range(len(heights)):
|
||||
Temp_los.append(f_Temp_2d(x_los[i], y_los[i])[0])
|
||||
Press_los.append(f_Press_2d(x_los[i], y_los[i])[0])
|
||||
Temp_los_n.append(f_Temp_2d_n(x_los[i], y_los[i])[0])
|
||||
Press_los_n.append(f_Press_2d_n(x_los[i], y_los[i])[0])
|
||||
|
||||
Temp_los = np.asarray(Temp_los)
|
||||
Press_los = np.asarray(Press_los)
|
||||
Temp_los_n = np.asarray(Temp_los_n)
|
||||
Press_los_n = np.asarray(Press_los_n)
|
||||
rho_los = at.rho(p=Press_los, T=Temp_los, RH=H, xc=xc)
|
||||
rho_los_n = at.rho(p=Press_los_n, T=Temp_los_n, RH=H, xc=xc)
|
||||
|
||||
refrInt = refr.refractionIntegral(n1, z, useStandardAtmosphere=False, heightData=heights, rhoData=rho_los_n)*3600*1000
|
||||
refrInt_pert = refr.refractionIntegral(n1, z, useStandardAtmosphere=False, heightData=heights, rhoData=rho_los)*3600*1000
|
||||
refrDiff.append(refrInt_pert - refrInt)
|
||||
|
||||
dispInt = disp.refractionIntegral(n1, n2, z, useStandardAtmosphere=False, heightData=heights, rhoData=rho_los_n)*3.6e6
|
||||
dispInt_pert = disp.refractionIntegral(n1, n2, z, useStandardAtmosphere=False, heightData=heights, rhoData=rho_los)*3.6e6
|
||||
dispDiff.append(dispInt_pert - dispInt)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
fig3 = plt.figure(figsize=(9,7))
|
||||
ax1 = fig3.add_subplot(211)
|
||||
ax2 = fig3.add_subplot(212)
|
||||
ax1.tick_params(axis ='both', direction='in', which='both', labelsize=16)
|
||||
ax2.tick_params(axis ='both', direction='in', which='both', labelsize=16)
|
||||
ax1.grid(True, alpha=0.3)#, which='major')
|
||||
ax2.grid(True, alpha=0.3)#, which='major')
|
||||
|
||||
|
||||
ax1.plot(zenithRange, np.log10(np.abs(refrDiff)), 'k-', linewidth=2)
|
||||
ax2.plot(zenithRange, np.log10(np.abs(dispDiff)), 'k-', linewidth=2)
|
||||
ax1.set_xlabel('Zenith (degrees)', fontsize=18)
|
||||
ax2.set_xlabel('Zenith (degrees)', fontsize=18)
|
||||
ax1.set_ylabel('$\log_{10}($|$R - R_{o}$|$)$ (mas)', fontsize=18)
|
||||
ax2.set_ylabel('$\log_{10}($|$\Delta R - \Delta R_{o}$|$)$ (mas)', fontsize=18)
|
||||
plt.tight_layout()
|
||||
plt.show()
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,251 @@
|
||||
#!/usr/bin/env Python3
|
||||
import numpy as np
|
||||
import sys
|
||||
from AstroAtmosphere import *
|
||||
import matplotlib.pyplot as plt
|
||||
from netCDF4 import Dataset
|
||||
from pdb import set_trace
|
||||
from matplotlib import cm
|
||||
from scipy.interpolate import interp1d, interp2d
|
||||
from matplotlib.colors import LogNorm
|
||||
import json
|
||||
|
||||
# Saves a variable, preferably a list or string to json text file.
|
||||
# Useful for long simulations, where you're making a plot
|
||||
def saveVariableToTXT(variable, filename):
|
||||
variableFile = open(filename, 'w')
|
||||
|
||||
if type(variable) == np.ndarray:
|
||||
json.dump(variable.tolist(), variableFile)
|
||||
elif type(variable) in [list, str, float]:
|
||||
json.dump(variable, variableFile)
|
||||
else:
|
||||
print('Not a list, array or string. Check variable type.')
|
||||
|
||||
variableFile.close()
|
||||
return
|
||||
|
||||
# Load a variable from a json text file.
|
||||
def loadVariableFromTXT(filename):
|
||||
variableFile = open(filename, 'r')
|
||||
variable = json.load(variableFile)
|
||||
variableFile.close()
|
||||
return variable
|
||||
|
||||
|
||||
def calculateDistanceResolution(lat, lon):
|
||||
# Calculate local radius of the earth
|
||||
_A = 6378.137 # km
|
||||
_B = 6356.752 # km
|
||||
_phi = np.deg2rad(lat)
|
||||
_rc0 = (_A*_B)**2 / (_A**2 * np.cos(_phi)**2 + _B**2 * np.sin(_phi)**2)**(3/2)
|
||||
|
||||
# Calculate circumference of the earth at constant latitude.
|
||||
latR = 2 * np.pi * np.cos(_phi) * _rc0
|
||||
distRes = latR/360 * lon
|
||||
return distRes
|
||||
|
||||
def H_isotherm(T, lat):
|
||||
'''
|
||||
Calculates the reduced height of the atmosphere, assuming an isotherm distribution.
|
||||
'''
|
||||
_kb = 1.38064852e-23 # kg m2 s-2 K-1
|
||||
_m = 4.809651698e-26 # kg (weight per molecule of air, assuming dry air)
|
||||
|
||||
_phi = np.deg2rad(lat)
|
||||
_c1 = 5.2790414e-3
|
||||
_c2 = 2.32718e-5
|
||||
_c3 = 1.262e-7
|
||||
_c4 = 7e-10
|
||||
_g0 = 9.780327 # m/s^2
|
||||
_g0_local = _g0 * (1 + _c1 * np.sin(_phi)**2 + _c2 * np.sin(_phi)**4 + _c3 * np.sin(_phi)**6 + _c4 * np.sin(_phi)**8)
|
||||
return (_kb*T) / (_m * _g0_local)
|
||||
|
||||
|
||||
def calculatePressure(Th, P0, h, lat):
|
||||
redH = H_isotherm(Th, lat)
|
||||
Ph = P0 * np.exp(-h/redH)
|
||||
return Ph
|
||||
|
||||
plt.rc('font', family='serif')
|
||||
plt.rc('axes', labelsize='large')
|
||||
|
||||
# Import the real data
|
||||
nc = Dataset('air.201806.nc', 'r')
|
||||
latitudes = np.asarray(nc.variables['lat'][:])
|
||||
longitudes = np.asarray(nc.variables['lon'][:])
|
||||
air_temp = nc.variables['air']
|
||||
air_press = np.asarray(nc.variables['level'])
|
||||
|
||||
|
||||
|
||||
|
||||
at = Observatory()
|
||||
|
||||
# Parameters at Cerro Armazones
|
||||
T = air_temp[0,:,0,0][0] # k
|
||||
P = air_press[0] # Pa
|
||||
H = 0
|
||||
xc = 450 # ppm
|
||||
lat = 24.44768
|
||||
h = 0 # m
|
||||
l1 = 1.49 # micron
|
||||
l2 = 1.78 # micron
|
||||
|
||||
rho = at.rho(p=P, T=T, RH=H, xc=xc)
|
||||
disp = dispersion(lat, h)
|
||||
disp.setReducedHeight(P, rho)
|
||||
|
||||
air_dens = at.rho(p=air_press, T=air_temp[0,:,0,0], RH=np.asarray([0]*len(air_press)), xc=np.asarray([0]*len(air_press)))
|
||||
|
||||
heights = disp.calcHeight(air_press, air_temp[0,:,0,0], RH=np.asarray([0]*len(air_press)), xc=np.asarray([0]*len(air_press)), P0=air_press[0]) / 1e3
|
||||
distance_lat = calculateDistanceResolution(latitudes[100], longitudes[100,:]) - calculateDistanceResolution(latitudes[100,0], longitudes[100,0])
|
||||
temp_selection_ground = air_temp[0,0,100,:]
|
||||
temp_selection_upper = air_temp[0,-1,100,:]
|
||||
print(distance_lat[1])
|
||||
|
||||
|
||||
#########################################################
|
||||
# Extrapolating using the U.S. Standard Atmosphere 1976.
|
||||
# The end point of the real data is used to shift the USSA data accordingly (linearly)
|
||||
h_ussa1976, _, _, _, air_temp_ussa1976, air_press_ussa1976,_,_,_,_ = np.genfromtxt('../US1976 Standard Atmosphere/si1py_modified.txt', unpack=True, skip_header=6)
|
||||
temp_ip = interp1d(h_ussa1976, air_temp_ussa1976)
|
||||
press_ip = interp1d(h_ussa1976, air_press_ussa1976)
|
||||
|
||||
ussa1976_start = temp_ip(heights[-1])
|
||||
diff_temp_list = temp_selection_upper - ussa1976_start
|
||||
start_i = np.argmax(h_ussa1976 > heights[-1])
|
||||
ussa1976_temp_array = np.tile(air_temp_ussa1976[start_i:], (len(temp_selection_upper),1))
|
||||
ussa1976_temp_array = np.asarray([ussa1976_temp_array[i] + diff_temp_list[i] for i in range(len(diff_temp_list))]).T
|
||||
|
||||
# Combining the (masked) arrays
|
||||
new_heights = np.append(heights, h_ussa1976[start_i:])
|
||||
tempData = np.append(air_temp[0,:,100,:], ussa1976_temp_array, axis=0)
|
||||
tempData_mask = np.append(air_temp[0,:,100,:].mask, np.zeros(ussa1976_temp_array.shape), axis=0)
|
||||
tempData = np.ma.masked_array(tempData, mask=tempData_mask)
|
||||
|
||||
# Now the same for the pressure data
|
||||
# Combining the (masked) arrays
|
||||
start_i = np.argmax(h_ussa1976 > heights[-1])
|
||||
new_heights = np.append(heights, h_ussa1976[start_i:])
|
||||
pressData = []
|
||||
for i in range(len(temp_selection_upper)):
|
||||
calc_press_data = calculatePressure(Th=ussa1976_temp_array[:,i], P0=air_press[0], h=h_ussa1976[start_i:]*1000, lat=lat)
|
||||
pressData_i = np.append(air_press*100, calc_press_data*100, axis=0)
|
||||
pressData.append(pressData_i)
|
||||
pressData = np.asarray(pressData).T
|
||||
#########################################################
|
||||
|
||||
# We'd now like to export a subset of the atmospheric data for a distance of ~200 km.
|
||||
# Let's use interpolation to create a uniform gridded dataset
|
||||
export_heights = np.linspace(0,new_heights.max(),400)
|
||||
export_dist = np.linspace(0,distance_lat[136]-distance_lat[130],1000)
|
||||
atmosphere_temp_func = interp2d(distance_lat[130:136]-distance_lat[130], new_heights, tempData[:,130:136], kind='linear')
|
||||
export_temp_atmosphere = atmosphere_temp_func(export_dist, export_heights)
|
||||
|
||||
atmosphere_press_func = interp2d(distance_lat[130:136]-distance_lat[130], new_heights, pressData[:,130:136], kind='linear')
|
||||
export_press_atmosphere = atmosphere_press_func(export_dist, export_heights)
|
||||
|
||||
# saveVariableToTXT(export_heights, 'export_heights.txt')
|
||||
# saveVariableToTXT(export_dist, 'export_dist.txt')
|
||||
# saveVariableToTXT(export_temp_atmosphere, 'export_temp_atmosphere.txt')
|
||||
# saveVariableToTXT(export_press_atmosphere, 'export_press_atmosphere.txt')
|
||||
|
||||
|
||||
# Plot the real data + extrapolated standard atmosphere.
|
||||
# fig = plt.figure()
|
||||
# ax = fig.add_subplot(211)
|
||||
# ax2 = fig.add_subplot(212)
|
||||
# im1 = ax.pcolormesh(export_dist, export_heights, export_temp_atmosphere, cmap=cm.coolwarm)
|
||||
# im2 = ax2.pcolormesh(export_dist, export_heights, export_press_atmosphere, cmap=cm.coolwarm, norm=LogNorm())
|
||||
# ax2.set_xlabel('Lateral distance (km)')
|
||||
# ax.set_ylabel('Height (km)')
|
||||
# ax2.set_ylabel('Height (km)')
|
||||
# cbar = fig.colorbar(im1, ax=ax, label='Temperature (K)')
|
||||
# lbls = cbar.get_ticks()
|
||||
# cbar.ax.invert_yaxis()
|
||||
# cbar.set_ticks(lbls[::-1])
|
||||
# cbar2 = fig.colorbar(im2, ax=ax2, label='Pressure (Pa)')
|
||||
# lbls = cbar2.get_ticks()
|
||||
# cbar2.ax.invert_yaxis()
|
||||
# cbar2.set_ticks(lbls[::-1])
|
||||
# plt.tight_layout()
|
||||
# plt.show(block=False)
|
||||
# set_trace()
|
||||
|
||||
|
||||
|
||||
|
||||
# # Plot the real data + extrapolated standard atmosphere.
|
||||
# fig = plt.figure()
|
||||
# ax = fig.add_subplot(211)
|
||||
# ax2 = fig.add_subplot(212)
|
||||
# im1 = ax.imshow(tempData[:,130:137], cmap=cm.coolwarm, interpolation= 'bicubic', aspect='auto', origin='lower')
|
||||
# # im1 = ax.pcolormesh(distance_lat[130:137], new_heights, tempData[:,130:137], cmap=cm.coolwarm)
|
||||
# im2 = ax2.pcolormesh(distance_lat, new_heights, pressData, cmap=cm.coolwarm, norm=LogNorm())
|
||||
# ax2.set_xlabel('Lateral distance (km)')
|
||||
# ax.set_ylabel('Height (km)')
|
||||
# ax2.set_ylabel('Height (km)')
|
||||
# cbar = fig.colorbar(im1, ax=ax, label='Temperature (K)')
|
||||
# lbls = cbar.get_ticks()
|
||||
# cbar.ax.invert_yaxis()
|
||||
# cbar.set_ticks(lbls[::-1])
|
||||
# cbar2 = fig.colorbar(im2, ax=ax2, label='Pressure (Pa)')
|
||||
# lbls = cbar2.get_ticks()
|
||||
# cbar2.ax.invert_yaxis()
|
||||
# cbar2.set_ticks(lbls[::-1])
|
||||
# plt.tight_layout()
|
||||
# plt.show(block=False)
|
||||
|
||||
|
||||
# Plot the real data and properties
|
||||
fig = plt.figure(figsize=(9,4))
|
||||
fig2 = plt.figure()
|
||||
ax1 = fig2.add_subplot(221)
|
||||
ax2 = fig2.add_subplot(222)
|
||||
ax3 = fig2.add_subplot(223)
|
||||
ax4 = fig.add_subplot(121)
|
||||
ax5 = fig2.add_subplot(224)
|
||||
ax6 = fig.add_subplot(122)
|
||||
|
||||
ax1.grid(alpha=0.3)
|
||||
ax2.grid(alpha=0.3)
|
||||
ax3.grid(alpha=0.3)
|
||||
ax5.grid(alpha=0.3)
|
||||
|
||||
ax1.plot(air_temp[0,:,0,0], heights)
|
||||
ax1.set_xlabel('Temperature (K)')
|
||||
ax1.set_ylabel('Height (km)')
|
||||
|
||||
ax2.plot(air_press, heights)
|
||||
ax2.set_xlabel('Pressure (Pa)')
|
||||
ax2.set_ylabel('Height (km)')
|
||||
|
||||
ax3.plot(air_dens, heights)
|
||||
ax3.set_xlabel('Density (g cm$^{-3}$)')
|
||||
ax3.set_ylabel('Height (km)')
|
||||
|
||||
im = ax4.imshow(np.rot90(air_temp[0,0,:,:].T), aspect=1, cmap='jet')
|
||||
ax4.set_yticks([])
|
||||
ax4.set_xticks([])
|
||||
# fig.colorbar(im, ax=ax4, label='Temperature (K)')
|
||||
|
||||
ax5.plot(distance_lat, temp_selection_ground, 'b-', label='ground')
|
||||
ax5.plot(distance_lat, temp_selection_upper, 'r-', label='upper atmosphere')
|
||||
ax5.legend()
|
||||
ax5.set_ylabel('Temperature (K)')
|
||||
ax5.set_xlabel('Distance (km)')
|
||||
|
||||
im2 = ax6.imshow(air_temp[0,:,100,:], aspect='auto', origin='lower', interpolation='bilinear', extent=[0,distance_lat[-1],0,heights[-1] ], cmap='jet')
|
||||
ax6.set_xlabel('Distance (km)', fontsize=18)
|
||||
ax6.set_ylabel('Height (km)', fontsize=18)
|
||||
cbar = fig.colorbar(im2, ax=ax6)#, label='Temperature (K)')
|
||||
cbar.ax.tick_params(labelsize=16)
|
||||
cbar.set_label('Temperature (K)', size=18)
|
||||
lbls = cbar.get_ticks()
|
||||
cbar.ax.invert_yaxis()
|
||||
cbar.set_ticks(lbls[::-1])
|
||||
ax6.tick_params(axis ='both', direction='in', labelsize=16)
|
||||
|
||||
plt.tight_layout()
|
||||
plt.show()
|
||||
Reference in new issue
Block a user