From a3bc1b0c59c475755b29c9c550240d500237645e Mon Sep 17 00:00:00 2001 From: Marco Dalla Tiezza Date: Thu, 27 Jun 2024 01:08:43 +0200 Subject: [PATCH] Complete the UV imagers part with Atmospheric Imagery Assembly --- CHANGELOG.md | 2 +- artemis/resources.py | 231 ++++++++++------------------------ ui/SpaceWeatherSunImagers.qml | 21 ++-- 3 files changed, 82 insertions(+), 172 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 12d2132..76aa243 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ - Sun Synoptic Analysis (SAS) - GOES Solar Ultraviolet Imager (SUVI), all wavelenght (94 Å, 131 Å, 171 Å, 195 Å, 284 Å, 304 Å) - GOES Thematic Map (from SUVI) - - Large Angle and Spectrometric Coronagraph (LASCO), both C2/C3 optical imaging of the Sun’s corona + - Large Angle and Spectrometric Coronagraph (LASCO), both C2/C3 range for optical imaging of the Sun’s corona - Helioseismic and Magnetic Imager (HMI): Magnetogram, Intensitygram, Dopplergram (TODO) ### Fixed diff --git a/artemis/resources.py b/artemis/resources.py index 5317984..0a897b2 100644 --- a/artemis/resources.py +++ b/artemis/resources.py @@ -6406,158 +6406,63 @@ Mode: Image.Pres\ erveAspectFit\x0d\x0a \ }\x0d\x0a }\x0d\ \x0a}\x0d\x0a\ -\x00\x00\x09W\ -i\ -mport QtQuick\x0d\x0ai\ -mport QtQuick.Wi\ -ndow\x0d\x0aimport QtQ\ -uick.Controls\x0d\x0ai\ -mport QtQuick.Co\ -ntrols.Material\x0d\ -\x0aimport QtQuick.\ -Layouts\x0d\x0a\x0d\x0a\x0d\x0aPag\ -e {\x0d\x0a id: spa\ -ceWeatherSunImag\ -ers\x0d\x0a anchors\ -.fill: parent\x0d\x0a\x0d\ -\x0a objectName:\ - \x22spaceWeatherSu\ -nImagers\x22\x0d\x0a\x0d\x0a \ - property var po\ -seidon_json\x0d\x0a\x0d\x0a \ - function load\ -DrapReport(posei\ -don_data) {\x0d\x0a \ - poseidon_js\ -on = poseidon_da\ -ta\x0d\x0a load\ -Image(poseidon_j\ -son['URL'][combo\ -BoxImageProduct.\ -currentValue.val\ -ue])\x0d\x0a }\x0d\x0a\x0d\x0a \ - function load\ -Image(url) {\x0d\x0a \ - checkUrlEx\ -ists(url, functi\ -on(exists) {\x0d\x0a \ - if (ex\ -ists) {\x0d\x0a \ - imageBo\ -x.source = url\x0d\x0a\ - } el\ -se {\x0d\x0a \ - imageBox.s\ -ource = \x22qrc:///\ -images/artemis_n\ -ot_available.svg\ -\x22\x0d\x0a }\ -\x0d\x0a })\x0d\x0a \ - }\x0d\x0a\x0d\x0a funct\ -ion checkUrlExis\ -ts(url, callback\ -) {\x0d\x0a var\ - xhr = new XMLHt\ -tpRequest()\x0d\x0a \ - xhr.onready\ -statechange = fu\ -nction() {\x0d\x0a \ - if (xhr.\ -readyState === X\ -MLHttpRequest.DO\ -NE) {\x0d\x0a \ - callback(\ -xhr.status === 2\ -00)\x0d\x0a \ - }\x0d\x0a }\x0d\x0a \ - xhr.open(\ -\x22HEAD\x22, url, tru\ -e)\x0d\x0a xhr.\ -send()\x0d\x0a }\x0d\x0a\x0d\ -\x0a ColumnLayou\ -t {\x0d\x0a anc\ -hors.fill: paren\ -t\x0d\x0a ancho\ -rs.rightMargin: \ -10\x0d\x0a anch\ -ors.leftMargin: \ -10\x0d\x0a anch\ -ors.bottomMargin\ -: 10\x0d\x0a an\ -chors.topMargin:\ - 10\x0d\x0a\x0d\x0a C\ -omboBox {\x0d\x0a \ - id: combo\ -BoxImageProduct\x0d\ -\x0a tex\ -tRole: 'text'\x0d\x0a \ - Layou\ -t.fillWidth: tru\ -e\x0d\x0a m\ -odel: ListModel\ - {\x0d\x0a \ - ListElement \ -{ text: \x22SUVI 94\ - \xc3\x85\x22; value: \x22SU\ -VI_094\x22 }\x0d\x0a \ - ListE\ -lement { text: \x22\ -SUVI 131 \xc3\x85\x22; va\ -lue: \x22SUVI_131\x22 \ -}\x0d\x0a \ - ListElement {\ - text: \x22SUVI 171\ - \xc3\x85\x22; value: \x22SU\ -VI_171\x22 }\x0d\x0a \ - ListE\ -lement { text: \x22\ -SUVI 195 \xc3\x85\x22; va\ -lue: \x22SUVI_195\x22 \ -}\x0d\x0a \ - ListElement {\ - text: \x22SUVI 284\ - \xc3\x85\x22; value: \x22SU\ -VI_284\x22 }\x0d\x0a \ - ListE\ -lement { text: \x22\ -SUVI 304 \xc3\x85\x22; va\ -lue: \x22SUVI_304\x22 \ -}\x0d\x0a \ - ListElement {\ - text: \x22LASCO C2\ -\x22; value: \x22LASCO\ -_C2\x22 }\x0d\x0a \ - ListElem\ -ent { text: \x22LAS\ -CO C3\x22; value: \x22\ -LASCO_C3\x22 }\x0d\x0a \ - Lis\ -tElement { text:\ - \x22Thematic Map\x22;\ - value: \x22SUVI_TH\ -EMATIC\x22 }\x0d\x0a \ - }\x0d\x0a \ - onActivate\ -d: {\x0d\x0a \ - loadImage(\ -poseidon_json['U\ -RL'][comboBoxIma\ -geProduct.curren\ -tValue.value])\x0d\x0a\ - }\x0d\x0a \ - }\x0d\x0a\x0d\x0a \ - Image {\x0d\x0a \ - id: ima\ -geBox\x0d\x0a \ - Layout.fillHe\ -ight: true\x0d\x0a \ - Layout.f\ -illWidth: true\x0d\x0a\ - fill\ -Mode: Image.Pres\ -erveAspectFit\x0d\x0a\x0d\ -\x0a }\x0d\x0a \ -}\x0d\x0a}\x0d\x0a\ +\x00\x00\x03p\ +\x00\ +\x00\x0cNx\xda\xadVmo\xda0\x10\xfe>i\xff\ +\xc1\xe2K\xa9\xd4\xa5\xb4\xd9V\x95\xa9\x1f2`\x03\x09\ +ZV\xdau\xd24!\x93\x5c\x89W\xc7\x97\xd9\x0e+\ +\xaa\xfaq\xbfl\x7fl\xb6\x19/\x81P\x91n\x80P\ +\x9c{\xee\x9e{\xb1\xef\xcc\x92\x14\xa5&\x9f\xf4\xa7\x8c\ +\x85w/_\xb0\xdc\xda\xbba\x22\xc2\x9f\x1b\xaf\x1b(\ +\xb4D\xae\xb6\x0a\xbc\x1e\xd5 \x19\xe5\x1b\x88.\x9db\ +\xa6\x8d\xa6\xfd\xf6\xe9\x18\xc8\xc3\xcb\x17\xc4|XT'\ +*\xa5!\xdc\x00\xd51\xc8A&:\x89\x91K5\x93\ +S\x11\xc6(\x95w\xcb8\xaf\x93\x94J\x10\xda\xda\xb0\ +2\x1c}\x87P\x9f\xd3\x04\xea\xa4Rl\xa42\xc7\xa6\ +\x12S\x90zJ&T\x92\x14\x15\xb0\x08\xc5\xf0\xbbB\ +1G\xdcf\x22\xd4\x0c\x05\xe1H\xa3\xa6\xa4\xe9%\xd8\ +\x10\xaa\x0bpD5\xdd\x9f\xfb\xedl\xae\x9a!g$\ +\x87\x5c\xc2\xac=\xe7N5\xa7\xf0u\xef\xfa\xb2\xbb\xf7\ +\xedk\x88\xc9\x08\xdf\xe3\xbd\x83\xf4%FY\xa8\xbd0\ +\x936\xd2\xcf\x94g\xe0M\xec\xff\xb7\xfd\x99\xc5\xc7B\ +\x7fg\xf63\xc9s\x0e\x861\x84w\xd7\x92\xb7\xee\x99\ +\xd2\xca\x8a\x0f\x16jUp/sxW\x90[\xb2M\ +\xe4\xc4\x96\xc8x\xeb)\xccd\x08&jc5\x0f{\ +$\xc0\x15\xec\xa6\x5c\xf9!\xc3\xfa\xe1\xe1\xa1\x93\xa8C\ +*5$L\x0d\x05\xea!\x9dP\xc6\xe9\x88\x83\xa7&\ +\xe3\xca\x1a\xc5r\xf9\xb85/E\xd1\x87\x94\xf3\x11\x0d\ +\xefr\xb1\xd9-q\x1fK\xe3\x8e\x80\x9f\xe4K\xaf\xdb\ +\xd6\xdaT\xffG\x06JW\xf7\x978\x83\xf1PH\xa0\ +\xd1Ti\xb3\xd3\xc3\x98\x8a\xb1\x8db\x91\xd3\xc2lZ\ +5\xa74\xb0J\xe4\xec\xecl\x8d\xc3k^\x9c\xb7\x0a\ +\xb3=w\xd7\xd9\xb0\x9c\x99r\xfa\xc7\xb5\xda\xfe\xf6\x8c\ +\xacy\x9c\x82\xa8V\xda\xad\xa0Y9 .\x09Zf\ +\xb0\x16\x96\x02\x11U\xd73\xd9@\x9e%bvtW\ +\xbd+>\x93\xebR\xc9\xc6\xb1\xeeQ9f\xa2N\x8e\ +j\x9b\x00\x0e\xb7O\xcaG\xa85&O!4\xa6\xab\ +\xe2%\xa0\xf1\xf7Lm\x94\xc3t\x9b\xa2\xf3\x96Gi\ +\xb8\xd7\x97\xc8MW\xd9\xb3\x8f{y\xe9,\x1f.\xf8\ +\x1b\x16\xe9\xb8\xee\xf2\x99\xc7$\x18\x81I\x0d\xe9\x9a\x9d\ +\xd7\xb3\xcfE\xc5\xb5\xc2\x16\x87\xc4d\x8f<8R\xd3\ +\xc6N_\x93\xdf\xbf\xc8+\x12\xe8\x04Ujz\x19\x0b\ +\xc9\xac\x97MI\xa0\x14$#>\xad\xbc#\xae%\x18\ +x\xd0\x09\x86\xb5\xd3\xd7\x95\xd5\xa2?i\xff\xc8?*\ +M`tJ\x10\x9c<\x83\xe0\xa4\x0c\xc1\xa9_\x9e\xe0\ +\xd4\xdf\x9d\xc0\xaf\x95'\xf0k%j\xe0\xfbo\xca\x13\ +\xf8oJ\xa4\xe8m\xadV>GF\xa9L\x99\x9fC\ +qR\x86\xa2G\xc7\x024\x8e%M\x0cM\x1b8\xb3\ +\xe3S%\x86\x87\x8a\x88\xcc\xc4\x0b\xd25\xaa^\xf0\xf1\ +|w\xaa\x8e\xd0 \x14\xd3\xd3\xe7\x91u\xce\xafZ\xbb\ +\x9351M9\xc8\xe7Q5/\xfa\xfd\xdd\xa9\xba\xc1\ +\xa0qA\x1a\xc7\x86\xa7k\x1a%\x90@\x8c98\x9a\ +Aj\xeeN\x12\x13\xd0\xb6p\x0d\x94(\xa8q)\x8d\ +W\x08\x9d\xfa\xb0q\x5c\x9a\xd0\xff7\xc2\x12\x87\xf5*\ +\x86\x84\xdal\xf5h\xbabhp\xfd\xb93\xbcj\xb7\ +z\xc1U\xa7\xb1amm\x89\x220\xe3{b\x86\xb3\ +\x19\x0f\x05\x8d\xfa\xff^\xe0\x8a'\xf6r\xe1\xcc\x14\x0d\ +\xae\xf9\xedi\xeb8j\x83\x1d\xb9E\xf3h\x97\x99e\ +\x85vV\xd5g\x1ex}\x09\x0a\xe4\x04\x02e\x0b\xf7\ +\x81\xe9U'\x1f\x17W\x05\xf3\xfb\x03\x08\xd3\x8c|\ \x00\x00\x04[\ \x00\ \x00\x12\x85x\xda\xddX_o\xdb6\x10\x7f/\xd0\xef\ @@ -7596,21 +7501,21 @@ qt_resource_struct = b"\ \x00\x00\x01\x8f\xff^8P\ \x00\x00\x036\x00\x01\x00\x00\x00\x01\x00\x01>\x85\ \x00\x00\x01\x90\x13\xddn\xea\ -\x00\x00\x05:\x00\x00\x00\x00\x00\x01\x00\x01\x8b>\ -\x00\x00\x01\x90LRx\x5c\ -\x00\x00\x06\x08\x00\x00\x00\x00\x00\x01\x00\x01\xb0\x0d\ +\x00\x00\x05:\x00\x01\x00\x00\x00\x01\x00\x01\x8b>\ +\x00\x00\x01\x90V\xcd\xfaZ\ +\x00\x00\x06\x08\x00\x00\x00\x00\x00\x01\x00\x01\xaa&\ \x00\x00\x01\x8f\xff^8P\ \x00\x00\x03l\x00\x01\x00\x00\x00\x01\x00\x01I\x06\ \x00\x00\x01\x8f\xff^8_\ -\x00\x00\x05\x98\x00\x00\x00\x00\x00\x01\x00\x01\x98\xf8\ +\x00\x00\x05\x98\x00\x00\x00\x00\x00\x01\x00\x01\x93\x11\ \x00\x00\x01\x90LO8\x08\ -\x00\x00\x05\xe6\x00\x00\x00\x00\x00\x01\x00\x01\xa8\x19\ +\x00\x00\x05\xe6\x00\x00\x00\x00\x00\x01\x00\x01\xa22\ \x00\x00\x01\x90K\xe3\xbe\xa0\ \x00\x00\x03R\x00\x02\x00\x00\x00\x04\x00\x00\x00-\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x04\xbe\x00\x01\x00\x00\x00\x01\x00\x01v+\ \x00\x00\x01\x90\x13\xdd\x17\xd4\ -\x00\x00\x05\xc4\x00\x01\x00\x00\x00\x01\x00\x01\x9d\xfd\ +\x00\x00\x05\xc4\x00\x01\x00\x00\x00\x01\x00\x01\x98\x16\ \x00\x00\x01\x90\x01\x93J\xb0\ \x00\x00\x04\xe0\x00\x01\x00\x00\x00\x01\x00\x01\x7f\x1d\ \x00\x00\x01\x90\x18\xf5\x014\ @@ -7620,17 +7525,17 @@ qt_resource_struct = b"\ \x00\x00\x01\x8f\xff^8P\ \x00\x00\x04\x98\x00\x01\x00\x00\x00\x01\x00\x01s\xda\ \x00\x00\x01\x90LRh&\ -\x00\x00\x05t\x00\x01\x00\x00\x00\x01\x00\x01\x94\x99\ +\x00\x00\x05t\x00\x01\x00\x00\x00\x01\x00\x01\x8e\xb2\ \x00\x00\x01\x90\x1b[j\x99\ \x00\x00\x05\x00\x00\x00\x00\x00\x00\x01\x00\x01\x86\x15\ \x00\x00\x01\x8f\xff^8P\ -\x00\x00\x06<\x00\x01\x00\x00\x00\x01\x00\x01\xb8\xc0\ +\x00\x00\x06<\x00\x01\x00\x00\x00\x01\x00\x01\xb2\xd9\ \x00\x00\x01\x8f\xff^8_\ -\x00\x00\x06\x84\x00\x01\x00\x00\x00\x01\x00\x01\xc0\xd8\ +\x00\x00\x06\x84\x00\x01\x00\x00\x00\x01\x00\x01\xba\xf1\ \x00\x00\x01\x8f\xff^8_\ -\x00\x00\x06 \x00\x01\x00\x00\x00\x01\x00\x01\xb5\xbd\ +\x00\x00\x06 \x00\x01\x00\x00\x00\x01\x00\x01\xaf\xd6\ \x00\x00\x01\x8f\xff^8_\ -\x00\x00\x06`\x00\x01\x00\x00\x00\x01\x00\x01\xbb\x83\ +\x00\x00\x06`\x00\x01\x00\x00\x00\x01\x00\x01\xb5\x9c\ \x00\x00\x01\x90K\xe3\xbe\xa0\ " diff --git a/ui/SpaceWeatherSunImagers.qml b/ui/SpaceWeatherSunImagers.qml index eb546b2..f18b8e2 100644 --- a/ui/SpaceWeatherSunImagers.qml +++ b/ui/SpaceWeatherSunImagers.qml @@ -51,14 +51,19 @@ Page { textRole: 'text' Layout.fillWidth: true model: ListModel { - ListElement { text: "SUVI 94 Å"; value: "SUVI_094" } - ListElement { text: "SUVI 131 Å"; value: "SUVI_131" } - ListElement { text: "SUVI 171 Å"; value: "SUVI_171" } - ListElement { text: "SUVI 195 Å"; value: "SUVI_195" } - ListElement { text: "SUVI 284 Å"; value: "SUVI_284" } - ListElement { text: "SUVI 304 Å"; value: "SUVI_304" } - ListElement { text: "LASCO C2"; value: "LASCO_C2" } - ListElement { text: "LASCO C3"; value: "LASCO_C3" } + ListElement { text: "94 Å - Atmospheric Imagery Assembly"; value: "AIA_094" } + ListElement { text: "131 Å - Atmospheric Imagery Assembly"; value: "AIA_131" } + ListElement { text: "171 Å - Atmospheric Imagery Assembly"; value: "AIA_171" } + ListElement { text: "193 Å - Atmospheric Imagery Assembly"; value: "AIA_193" } + ListElement { text: "303 Å - Atmospheric Imagery Assembly"; value: "AIA_304" } + ListElement { text: "335 Å - Atmospheric Imagery Assembly"; value: "AIA_335" } + ListElement { text: "1600 Å - Atmospheric Imagery Assembly"; value: "AIA_1600" } + ListElement { text: "1700 Å - Atmospheric Imagery Assembly"; value: "AIA_1700" } + ListElement { text: "Magnetogram - Helioseismic and Magnetic Imager"; value: "AIA_MAGN" } + ListElement { text: "Intensitygram - Helioseismic and Magnetic Imager"; value: "AIA_INTE" } + ListElement { text: "Dopplergram - Helioseismic and Magnetic Imager"; value: "AIA_DOPP" } + ListElement { text: "LASCO C2 - Large Angle and Spectrometric Coronagraph"; value: "LASCO_C2" } + ListElement { text: "LASCO C3 - Large Angle and Spectrometric Coronagraph"; value: "LASCO_C3" } ListElement { text: "Thematic Map"; value: "SUVI_THEMATIC" } } onActivated: {