Correct colors for categorical rain
This commit is contained in:
@@ -82,7 +82,7 @@ export const GribFile: Component<{
|
|||||||
{ getGribList()
|
{ getGribList()
|
||||||
.sort((a, b) => a.title > b.title ? 1 : -1)
|
.sort((a, b) => a.title > b.title ? 1 : -1)
|
||||||
.map((grib, i) =>
|
.map((grib, i) =>
|
||||||
<li onClick={() => onParamClick(i)}>{ grib.title }</li>
|
<li onClick={() => onParamClick(i)}>{ grib.title.replace('meteorology, ', '') }</li>
|
||||||
)}
|
)}
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -1,43 +1,37 @@
|
|||||||
type RGBAu8 = [number, number, number, number]
|
type RGBAu8 = [number, number, number, number]
|
||||||
|
|
||||||
const FOG: RGBAu8 = [254, 248, 0, 255] // 'fef800'
|
const DRIZZLE: RGBAu8 = [5, 200, 0, 255]
|
||||||
const FOG_FREEZING: RGBAu8 = [194, 188, 0, 255] // 'c2bc00'
|
const RAIN: RGBAu8 = [50, 150, 0, 255]
|
||||||
const RAIN_LIGHT: RGBAu8 = [0, 255, 0, 255] // '00ff00'
|
const SLEET: RGBAu8 = [255, 175, 0, 255]
|
||||||
const RAIN_MODERATE: RGBAu8 = [0, 197, 0, 255] // '00c500'
|
const SNOW: RGBAu8 = [0, 160, 255, 255]
|
||||||
const RAIN_HEAVY: RGBAu8 = [0, 132, 0, 255] // '008400'
|
const FREEZING_DRIZZLE: RGBAu8 = [255, 100, 120, 255]
|
||||||
const ICE_LIGHT: RGBAu8 = [255, 32, 55, 255] // 'ff2037'
|
const FREEZING_RAIN: RGBAu8 = [255, 0, 0, 255]
|
||||||
const ICE_HEAVY: RGBAu8 = [220, 0, 0, 255] // 'dc0000'
|
const GRAUPEL: RGBAu8 = [230, 40, 250, 255]
|
||||||
|
const HAIL: RGBAu8 = [180, 0, 250, 255]
|
||||||
|
|
||||||
export function categoricalRainColors(value: number): RGBAu8 {
|
export function categoricalRainColors(value: number): RGBAu8 {
|
||||||
switch (value) {
|
switch (value) {
|
||||||
case 0:
|
case 0:
|
||||||
return FOG
|
return DRIZZLE
|
||||||
case 1*32:
|
case 1*32:
|
||||||
return FOG_FREEZING
|
return RAIN
|
||||||
case 2*32:
|
case 2*32:
|
||||||
return RAIN_LIGHT
|
return SLEET
|
||||||
case 3*32:
|
case 3*32:
|
||||||
return RAIN_MODERATE
|
return SNOW
|
||||||
case 4*32:
|
case 4*32:
|
||||||
return RAIN_HEAVY
|
return FREEZING_DRIZZLE
|
||||||
case 5*32:
|
case 5*32:
|
||||||
return ICE_LIGHT
|
return FREEZING_RAIN
|
||||||
case 6*32:
|
case 6*32:
|
||||||
return ICE_HEAVY
|
return GRAUPEL
|
||||||
|
case 7*32:
|
||||||
|
return HAIL
|
||||||
default:
|
default:
|
||||||
return [255, 255, 255, 0]
|
return [255, 255, 255, 0]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* FROM CHATGPT
|
|
||||||
0 = No rain
|
|
||||||
1 * 32 = 32 (Drizzle)
|
|
||||||
2 * 32 = 64 (Light rain)
|
|
||||||
3 * 32 = 96 (Moderate rain)
|
|
||||||
4 * 32 = 128 (Heavy rain)
|
|
||||||
5 * 32 = 160 (Very heavy rain, if applicable)
|
|
||||||
6 * 32 = 192 (Extreme rain, if applicable)
|
|
||||||
*/
|
|
||||||
|
|
||||||
export function hexToU8(hex: string): [number, number, number] {
|
export function hexToU8(hex: string): [number, number, number] {
|
||||||
return [parseInt('0x'+hex.slice(0, 2)), parseInt('0x'+hex.slice(2, 4)), parseInt('0x'+hex.slice(4, 6))]
|
return [parseInt('0x'+hex.slice(0, 2)), parseInt('0x'+hex.slice(2, 4)), parseInt('0x'+hex.slice(4, 6))]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user