Advertisement
Guest User

Untitled

a guest
Oct 9th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.04 KB | None | 0 0
  1. #@gui Satellite : fx_satellite, fx_satellite_preview(1)
  2. #@gui : note = note("Converts to grayscale and uses <a href="https://www.ospo.noaa.gov/Organization/FAQ/enhancements.html">image enhancement colour schemes</a> which are used in NOAA satellite weather products.")
  3. #@gui : Enhancement = choice("Aviation","Dvorak","Funktop","JSL2","Shortwave IR2 &#40;Standard and Tropical&#41;","Shortwave IR2 &#40;Fire&#41;","Shortwave IR2 &#40;Summer Fire&#41;","Shortwave IR2 &#40;Winter Fire&#41;","Rainbow &#40;Old&#41;","Rainbow &#40;New&#41;","Water Vapour","Water Vapour &#40;Blue&#41;","IR Window &#40;old&#41")
  4. #@gui : Gamma power = float(0,-5,5)
  5. #@gui : Lower threshold = float(0,0,100)
  6. #@gui : Higher threshold = float(100,0,100)
  7. #@gui : Normalise = bool(1)
  8. #@gui : To sRGB = bool(0)
  9. fx_satellite :
  10. repeat $! l[$>]
  11. to_gray
  12. f "255*((i/255)^(2^-$2))"
  13. c $3%,$4% if $5 n 0,255 fi
  14. to_rgb
  15. # use '{ print("(i<="$2+1")?["$3"+(i-"$1")*"($4-$3)/($2-$1)","$5"+(i-"$1")*"($6-$5)/($2-$1)","$7"+(i-"$1")*"($8-$7)/($2-$1)"]:") }' in awk to get values from text files from the linked NOAA site.
  16. if {$1==0}
  17. f "(i<=48)?[0,0,0]:
  18. (i<=52)?[8,8,8]:
  19. (i<=56)?[20,20,20]:
  20. (i<=60)?[28,28,28]:
  21. (i<=64)?[40,40,40]:
  22. (i<=68)?[52,52,52]:
  23. (i<=72)?[60,60,60]:
  24. (i<=76)?[72,72,72]:
  25. (i<=80)?[84,84,84]:
  26. (i<=84)?[92,92,92]:
  27. (i<=88)?[104,104,104]:
  28. (i<=92)?[112,112,112]:
  29. (i<=96)?[124,124,124]:
  30. (i<=100)?[136,136,136]:
  31. (i<=104)?[144,144,144]:
  32. (i<=108)?[156,156,156]:
  33. (i<=112)?[168,168,168]:
  34. (i<=116)?[176,176,176]:
  35. (i<=120)?[188,188,188]:
  36. (i<=124)?[196,196,196]:
  37. (i<=128)?[208,208,208]:
  38. (i<=132)?[220,220,220]:
  39. (i<=136)?[228,228,228]:
  40. (i<=140)?[240,240,240]:
  41. (i<=144)?[252,252,252]:
  42. (i<=148)?[244,156,0]:
  43. (i<=152)?[236,152,0]:
  44. (i<=156)?[228,148,0]:
  45. (i<=160)?[220,144,0]:
  46. (i<=164)?[212,140,0]:
  47. (i<=168)?[208,136,0]:
  48. (i<=172)?[200,132,0]:
  49. (i<=176)?[192,128,0]:
  50. (i<=180)?[184,124,0]:
  51. (i<=184)?[176,120,0]:
  52. (i<=188)?[0,160,160]:
  53. (i<=192)?[0,188,188]:
  54. (i<=196)?[0,220,220]:
  55. (i<=200)?[0,248,248]:
  56. (i<=204)?[0,180,252]:
  57. (i<=208)?[0,160,232]:
  58. (i<=212)?[0,140,216]:
  59. (i<=216)?[0,120,196]:
  60. (i<=220)?[0,0,232]:
  61. (i<=224)?[0,0,248]:
  62. (i<=250)?[88,88,88]:
  63. (i<=256)?[255,255,255]"
  64. elif {$1==1}
  65. f "(i<=59)?[0+(i-0)*0,0+(i-0)*0,0+(i-0)*0]:
  66. (i<=68)?[6+(i-59)*7,6+(i-59)*7,6+(i-59)*7]:
  67. (i<=97)?[75+(i-68)*6.42857,75+(i-68)*6.42857,75+(i-68)*6.42857]:
  68. (i<=175)?[112+(i-97)*1.19481,112+(i-97)*1.19481,112+(i-97)*1.19481]:
  69. (i<=188)?[64+(i-175)*0,64+(i-175)*0,64+(i-175)*0]:
  70. (i<=199)?[112+(i-188)*0,112+(i-188)*0,112+(i-188)*0]:
  71. (i<=209)?[160+(i-199)*0,160+(i-199)*0,160+(i-199)*0]:
  72. (i<=215)?[0+(i-209)*0,0+(i-209)*0,0+(i-209)*0]:
  73. (i<=221)?[255+(i-215)*0,255+(i-215)*0,255+(i-215)*0]:
  74. (i<=226)?[136+(i-221)*0,136+(i-221)*0,136+(i-221)*0]:
  75. (i<=256)?[88+(i-226)*0,88+(i-226)*0,88+(i-226)*0]"
  76. elif {$1==2}
  77. f "(i<=44)?[0+(i-0)*0,0+(i-0)*0,0+(i-0)*0]:
  78. (i<=152)?[20+(i-44)*1.83178,20+(i-44)*1.83178,20+(i-44)*1.83178]:
  79. (i<=184)?[0+(i-152)*0,100+(i-152)*4.77419,100+(i-152)*4.77419]:
  80. (i<=204)?[120+(i-184)*6.94737,0+(i-184)*13.2632,0+(i-184)*0]:
  81. (i<=216)?[0+(i-204)*0,0+(i-204)*0,84+(i-204)*15.2727]:
  82. (i<=224)?[80+(i-216)*8.57143,80+(i-216)*8.57143,252+(i-216)*0]:
  83. (i<=237)?[0+(i-224)*21,252+(i-224)*0,0+(i-224)*21]:
  84. (i<=253)?[252+(i-237)*0,252+(i-237)*0,252+(i-237)*0]:
  85. (i<=256)?[255+(i-253)*0,255+(i-253)*0,255+(i-253)*0]"
  86. elif {$1==3}
  87. f "(i<=4)?[0+(i-0)*0,0+(i-0)*0,0+(i-0)*0]:
  88. (i<=8)?[28+(i-4)*0,0+(i-4)*0,28+(i-4)*0]:
  89. (i<=12)?[60+(i-8)*0,0+(i-8)*0,60+(i-8)*0]:
  90. (i<=16)?[92+(i-12)*0,0+(i-12)*0,92+(i-12)*0]:
  91. (i<=20)?[124+(i-16)*0,0+(i-16)*0,124+(i-16)*0]:
  92. (i<=24)?[156+(i-20)*0,0+(i-20)*0,156+(i-20)*0]:
  93. (i<=28)?[188+(i-24)*0,0+(i-24)*0,188+(i-24)*0]:
  94. (i<=32)?[220+(i-28)*0,0+(i-28)*0,220+(i-28)*0]:
  95. (i<=36)?[252+(i-32)*0,0+(i-32)*0,252+(i-32)*0]:
  96. (i<=40)?[236+(i-36)*0,0+(i-36)*0,224+(i-36)*0]:
  97. (i<=44)?[220+(i-40)*0,0+(i-40)*0,196+(i-40)*0]:
  98. (i<=48)?[208+(i-44)*0,0+(i-44)*0,168+(i-44)*0]:
  99. (i<=52)?[192+(i-48)*0,0+(i-48)*0,140+(i-48)*0]:
  100. (i<=56)?[180+(i-52)*0,0+(i-52)*0,112+(i-52)*0]:
  101. (i<=60)?[164+(i-56)*0,0+(i-56)*0,84+(i-56)*0]:
  102. (i<=64)?[152+(i-60)*0,0+(i-60)*0,56+(i-60)*0]:
  103. (i<=68)?[136+(i-64)*0,0+(i-64)*0,28+(i-64)*0]:
  104. (i<=72)?[124+(i-68)*0,0+(i-68)*0,0+(i-68)*0]:
  105. (i<=76)?[136+(i-72)*0,28+(i-72)*0,0+(i-72)*0]:
  106. (i<=80)?[152+(i-76)*0,56+(i-76)*0,0+(i-76)*0]:
  107. (i<=84)?[164+(i-80)*0,84+(i-80)*0,0+(i-80)*0]:
  108. (i<=88)?[180+(i-84)*0,112+(i-84)*0,0+(i-84)*0]:
  109. (i<=92)?[192+(i-88)*0,140+(i-88)*0,0+(i-88)*0]:
  110. (i<=96)?[208+(i-92)*0,168+(i-92)*0,0+(i-92)*0]:
  111. (i<=100)?[220+(i-96)*0,196+(i-96)*0,0+(i-96)*0]:
  112. (i<=104)?[236+(i-100)*0,224+(i-100)*0,0+(i-100)*0]:
  113. (i<=108)?[252+(i-104)*0,252+(i-104)*0,0+(i-104)*0]:
  114. (i<=112)?[224+(i-108)*0,236+(i-108)*0,0+(i-108)*0]:
  115. (i<=116)?[196+(i-112)*0,220+(i-112)*0,0+(i-112)*0]:
  116. (i<=132)?[92+(i-116)*0.8,92+(i-116)*0.8,92+(i-116)*0.8]:
  117. (i<=144)?[112+(i-132)*0.727273,112+(i-132)*0.727273,112+(i-132)*0.727273]:
  118. (i<=156)?[128+(i-144)*0.727273,128+(i-144)*0.727273,128+(i-144)*0.727273]:
  119. (i<=168)?[144+(i-156)*0.727273,144+(i-156)*0.727273,144+(i-156)*0.727273]:
  120. (i<=180)?[160+(i-168)*0.727273,160+(i-168)*0.727273,160+(i-168)*0.727273]:
  121. (i<=184)?[176+(i-180)*0,176+(i-180)*0,176+(i-180)*0]:
  122. (i<=188)?[184+(i-184)*0,184+(i-184)*0,184+(i-184)*0]:
  123. (i<=192)?[192+(i-188)*0,192+(i-188)*0,192+(i-188)*0]:
  124. (i<=196)?[200+(i-192)*0,200+(i-192)*0,200+(i-192)*0]:
  125. (i<=200)?[208+(i-196)*0,208+(i-196)*0,208+(i-196)*0]:
  126. (i<=202)?[216+(i-200)*0,216+(i-200)*0,216+(i-200)*0]:
  127. (i<=215)?[0+(i-202)*5,0+(i-202)*5,60+(i-202)*16.25]:
  128. (i<=226)?[71+(i-215)*11.9,71+(i-215)*11.9,255+(i-215)*0]:
  129. (i<=246)?[101+(i-226)*6.36842,0+(i-226)*10.5789,101+(i-226)*6.36842]:
  130. (i<=256)?[0+(i-246)*0,0+(i-246)*0,0+(i-246)*0]"
  131. elif {$1==4}
  132. f "(i<=2)?[0+(i-0)*0,0+(i-0)*0,0+(i-0)*0]:
  133. (i<=26)?[0+(i-2)*0,0+(i-2)*0,235+(i-2)*-10.2174]:
  134. (i<=51)?[0+(i-26)*0,0+(i-26)*0,0+(i-26)*0]:
  135. (i<=62)?[12+(i-51)*0.3,12+(i-51)*0.3,12+(i-51)*0.3]:
  136. (i<=68)?[23+(i-62)*7.6,23+(i-62)*7.6,23+(i-62)*7.6]:
  137. (i<=69)?[75+(i-68)*nan,75+(i-68)*nan,75+(i-68)*nan]:
  138. (i<=81)?[76+(i-69)*7.63636,76+(i-69)*7.63636,76+(i-69)*7.63636]:
  139. (i<=111)?[161+(i-81)*2.72414,161+(i-81)*2.72414,161+(i-81)*2.72414]:
  140. (i<=131)?[226+(i-111)*0.736842,226+(i-111)*0.736842,226+(i-111)*0.736842]:
  141. (i<=171)?[255+(i-131)*-3.46154,255+(i-131)*-3.46154,160+(i-131)*-1.02564]:
  142. (i<=256)?[150+(i-171)*0.833333,50+(i-171)*0.595238,50+(i-171)*0.595238]"
  143. elif {$1==5}
  144. f "(i<=151)?[255+(i-0)*-1.7,255+(i-0)*-1.7,255+(i-0)*-1.7]:
  145. (i<=256)?[0+(i-151)*0,0+(i-151)*0,0+(i-151)*0]"
  146. elif {$1==6}
  147. f "(i<=13)?[255+(i-0)*-2,255+(i-0)*-2,255+(i-0)*-2]:
  148. (i<=126)?[228+(i-13)*-2.03571,228+(i-13)*-2.03571,228+(i-13)*-2.03571]:
  149. (i<=256)?[0+(i-126)*0,0+(i-126)*0,0+(i-126)*0]"
  150. elif {$1==7}
  151. f "(i<=42)?[255+(i-0)*0,255+(i-0)*0,255+(i-0)*0]:
  152. (i<=191)?[253+(i-42)*-1.70946,253+(i-42)*-1.70946,253+(i-42)*-1.70946]:
  153. (i<=256)?[0+(i-191)*0,0+(i-191)*0,0+(i-191)*0]"
  154. elif {$1==8}
  155. f "(i<=4)?[0+(i-0)*0,0+(i-0)*0,0+(i-0)*0]:
  156. (i<=8)?[28+(i-4)*0,0+(i-4)*0,28+(i-4)*0]:
  157. (i<=12)?[60+(i-8)*0,0+(i-8)*0,60+(i-8)*0]:
  158. (i<=16)?[92+(i-12)*0,0+(i-12)*0,92+(i-12)*0]:
  159. (i<=20)?[124+(i-16)*0,0+(i-16)*0,124+(i-16)*0]:
  160. (i<=24)?[156+(i-20)*0,0+(i-20)*0,156+(i-20)*0]:
  161. (i<=28)?[188+(i-24)*0,0+(i-24)*0,188+(i-24)*0]:
  162. (i<=32)?[220+(i-28)*0,0+(i-28)*0,220+(i-28)*0]:
  163. (i<=36)?[252+(i-32)*0,0+(i-32)*0,252+(i-32)*0]:
  164. (i<=40)?[236+(i-36)*0,0+(i-36)*0,224+(i-36)*0]:
  165. (i<=44)?[220+(i-40)*0,0+(i-40)*0,196+(i-40)*0]:
  166. (i<=48)?[208+(i-44)*0,0+(i-44)*0,168+(i-44)*0]:
  167. (i<=52)?[192+(i-48)*0,0+(i-48)*0,140+(i-48)*0]:
  168. (i<=56)?[180+(i-52)*0,0+(i-52)*0,112+(i-52)*0]:
  169. (i<=60)?[164+(i-56)*0,0+(i-56)*0,84+(i-56)*0]:
  170. (i<=64)?[152+(i-60)*0,0+(i-60)*0,56+(i-60)*0]:
  171. (i<=68)?[136+(i-64)*0,0+(i-64)*0,28+(i-64)*0]:
  172. (i<=72)?[124+(i-68)*0,0+(i-68)*0,0+(i-68)*0]:
  173. (i<=76)?[136+(i-72)*0,28+(i-72)*0,0+(i-72)*0]:
  174. (i<=80)?[152+(i-76)*0,56+(i-76)*0,0+(i-76)*0]:
  175. (i<=84)?[164+(i-80)*0,84+(i-80)*0,0+(i-80)*0]:
  176. (i<=88)?[180+(i-84)*0,112+(i-84)*0,0+(i-84)*0]:
  177. (i<=92)?[192+(i-88)*0,140+(i-88)*0,0+(i-88)*0]:
  178. (i<=96)?[208+(i-92)*0,168+(i-92)*0,0+(i-92)*0]:
  179. (i<=100)?[220+(i-96)*0,196+(i-96)*0,0+(i-96)*0]:
  180. (i<=104)?[236+(i-100)*0,224+(i-100)*0,0+(i-100)*0]:
  181. (i<=108)?[252+(i-104)*0,252+(i-104)*0,0+(i-104)*0]:
  182. (i<=112)?[224+(i-108)*0,236+(i-108)*0,0+(i-108)*0]:
  183. (i<=116)?[196+(i-112)*0,220+(i-112)*0,0+(i-112)*0]:
  184. (i<=120)?[168+(i-116)*0,208+(i-116)*0,0+(i-116)*0]:
  185. (i<=124)?[140+(i-120)*0,192+(i-120)*0,0+(i-120)*0]:
  186. (i<=128)?[112+(i-124)*0,180+(i-124)*0,0+(i-124)*0]:
  187. (i<=132)?[84+(i-128)*0,164+(i-128)*0,0+(i-128)*0]:
  188. (i<=136)?[56+(i-132)*0,152+(i-132)*0,0+(i-132)*0]:
  189. (i<=140)?[28+(i-136)*0,136+(i-136)*0,0+(i-136)*0]:
  190. (i<=144)?[0+(i-140)*0,124+(i-140)*0,0+(i-140)*0]:
  191. (i<=148)?[0+(i-144)*0,136+(i-144)*0,28+(i-144)*0]:
  192. (i<=152)?[0+(i-148)*0,152+(i-148)*0,56+(i-148)*0]:
  193. (i<=156)?[0+(i-152)*0,164+(i-152)*0,84+(i-152)*0]:
  194. (i<=160)?[0+(i-156)*0,180+(i-156)*0,112+(i-156)*0]:
  195. (i<=164)?[0+(i-160)*0,192+(i-160)*0,140+(i-160)*0]:
  196. (i<=168)?[0+(i-164)*0,208+(i-164)*0,168+(i-164)*0]:
  197. (i<=172)?[0+(i-168)*0,220+(i-168)*0,196+(i-168)*0]:
  198. (i<=176)?[0+(i-172)*0,236+(i-172)*0,224+(i-172)*0]:
  199. (i<=180)?[0+(i-176)*0,252+(i-176)*0,252+(i-176)*0]:
  200. (i<=184)?[0+(i-180)*0,224+(i-180)*0,236+(i-180)*0]:
  201. (i<=188)?[0+(i-184)*0,196+(i-184)*0,220+(i-184)*0]:
  202. (i<=192)?[0+(i-188)*0,168+(i-188)*0,208+(i-188)*0]:
  203. (i<=196)?[0+(i-192)*0,140+(i-192)*0,192+(i-192)*0]:
  204. (i<=200)?[0+(i-196)*0,112+(i-196)*0,180+(i-196)*0]:
  205. (i<=204)?[0+(i-200)*0,84+(i-200)*0,164+(i-200)*0]:
  206. (i<=208)?[0+(i-204)*0,56+(i-204)*0,152+(i-204)*0]:
  207. (i<=212)?[0+(i-208)*0,28+(i-208)*0,136+(i-208)*0]:
  208. (i<=216)?[0+(i-212)*0,0+(i-212)*0,124+(i-212)*0]:
  209. (i<=220)?[0+(i-216)*0,0+(i-216)*0,160+(i-216)*0]:
  210. (i<=224)?[0+(i-220)*0,0+(i-220)*0,192+(i-220)*0]:
  211. (i<=228)?[0+(i-224)*0,0+(i-224)*0,216+(i-224)*0]:
  212. (i<=232)?[0+(i-228)*0,0+(i-228)*0,252+(i-228)*0]:
  213. (i<=236)?[252+(i-232)*0,252+(i-232)*0,252+(i-232)*0]:
  214. (i<=256)?[0+(i-236)*13.4211,0+(i-236)*13.4211,0+(i-236)*13.4211]"
  215. elif {$1==9}
  216. f "(i<=61)?[0+(i-0)*2,0+(i-0)*2,0+(i-0)*2]:
  217. (i<=91)?[3+(i-61)*3,3+(i-61)*3,3+(i-61)*3]:
  218. (i<=101)?[91+(i-91)*1,91+(i-91)*1,91+(i-91)*1]:
  219. (i<=145)?[103+(i-101)*3.37209,103+(i-101)*3.37209,103+(i-101)*3.37209]:
  220. (i<=155)?[250+(i-145)*0.555556,250+(i-145)*-27.7778,250+(i-145)*-6.55556]:
  221. (i<=171)?[255+(i-155)*0,0+(i-155)*0,191+(i-155)*-12.7333]:
  222. (i<=191)?[242+(i-171)*-12.7368,12+(i-171)*12.7895,0+(i-171)*0]:
  223. (i<=201)?[0+(i-191)*0,255+(i-191)*0,25+(i-191)*25.5556]:
  224. (i<=211)?[0+(i-201)*0,229+(i-201)*-25.4444,255+(i-201)*0]:
  225. (i<=221)?[0+(i-211)*0,0+(i-211)*0,229+(i-211)*-25.4444]:
  226. (i<=246)?[20+(i-221)*9.79167,20+(i-221)*9.79167,20+(i-221)*9.79167]:
  227. (i<=256)?[255+(i-246)*0,255+(i-246)*0,255+(i-246)*0]"
  228. elif {$1==10}
  229. f "(i<=130)?[0+(i-0)*0,0+(i-0)*0,0+(i-0)*0]:
  230. (i<=165)?[90+(i-130)*-2.64706,160+(i-130)*-4.70588,255+(i-130)*-7.5]:
  231. (i<=183)?[0+(i-165)*15,0+(i-165)*15,0+(i-165)*15]:
  232. (i<=198)?[255+(i-183)*-8.92857,255+(i-183)*-12.5,255+(i-183)*-18.2143]:
  233. (i<=206)?[130+(i-198)*2.85714,80+(i-198)*10,0+(i-198)*0]:
  234. (i<=214)?[0+(i-206)*0,150+(i-206)*-14.2857,160+(i-206)*12.8571]:
  235. (i<=222)?[220+(i-214)*0,0+(i-214)*0,150+(i-214)*14.2857]:
  236. (i<=230)?[226+(i-222)*-13.1429,0+(i-222)*0,0+(i-222)*0]:
  237. (i<=256)?[255+(i-230)*0,255+(i-230)*0,255+(i-230)*0]"
  238. elif {$1==11}
  239. f "(i<=110)?[0+(i-0)*0,0+(i-0)*0,0+(i-0)*0]:
  240. (i<=142)?[0+(i-110)*0.0967742,0+(i-110)*8.09677,255+(i-110)*0]:
  241. (i<=172)?[8+(i-142)*5.44828,243+(i-142)*-8.37931,247+(i-142)*-8.41379]:
  242. (i<=192)?[170+(i-172)*4.47368,12+(i-172)*12.7895,15+(i-172)*12.6316]:
  243. (i<=219)?[246+(i-192)*-9.42308,250+(i-192)*-5.5,246+(i-192)*-9.42308]:
  244. (i<=255)?[7+(i-219)*6.88571,110+(i-219)*3.91429,1+(i-219)*0.0857143]:
  245. (i<=256)?[255+(i-255)*0,255+(i-255)*0,255+(i-255)*0]"
  246. elif {$1==12}
  247. f "(i<=152)?[0+(i-0)*1.30464,0+(i-0)*1.30464,0+(i-0)*1.30464]:
  248. (i<=174)?[0+(i-152)*0,255+(i-152)*-12.1429,255+(i-152)*-6.66667]:
  249. (i<=187)?[0+(i-174)*0,0+(i-174)*21.25,115+(i-174)*-9.58333]:
  250. (i<=197)?[0+(i-187)*28.3333,255+(i-187)*0,0+(i-187)*0]:
  251. (i<=207)?[255+(i-197)*0,255+(i-197)*-28.3333,0+(i-197)*0]:
  252. (i<=216)?[255+(i-206)*-28.3333,0+(i-206)*0,0+(i-206)*0]:
  253. (i<=225)?[0+(i-216)*28.625,0+(i-216)*28.625,0+(i-216)*28.625]:
  254. (i<=236)?[242+(i-225)*-11.5,114+(i-225)*-11.4,195+(i-225)*-6.8]:
  255. (i<=256)?[255+(i-236)*0,255+(i-236)*0,0+(i-236)*13.4211]"
  256. fi
  257. if $6 rgb2srgb fi
  258. endl done
  259. fx_satellite_preview :
  260. fx_satellite $*
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement