Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better false color #27

Open
martinber opened this issue Aug 22, 2020 · 4 comments
Open

Better false color #27

martinber opened this issue Aug 22, 2020 · 4 comments

Comments

@martinber
Copy link
Owner

I'm leaving information about how to improve false color images, in case someone (or me) decides to improve it someday

This page explains the methods available in WXtoImg

xwxapt (GPLv3) by Neoklis Kyriazis (5B4AZ) has a false color method similar to #25 implementation. This is the relevant part of the configuration file:

### Color maps for pseudo-colorization ###
#
# Each row in the table specifies a range (pair) of gray values
# with a corresponding range of Red, Green and Blue values.
#
# SOME RULES!!
# All Values between 0 and 255
# At least one Gray From = 0
# At least one Gray To = 255
# All gray values (0-255) must be included
# Max 6 entries (6 rows) per map
#
#       NOAA Channel A (Day-time)
# Number of colormap ranges (rows) (max 6)
5
#
# Gray          Red          Green        Blue
# From  To      From  To     From  To     From  To
  0     40      0     0      0     0      175   255
  41    80      40    80     32    64     26    52
  81    130     0     0      110   220    0     0
  131   220     130   220    104   176    84    140
  221   255     220   255    198   255    160   220
#
# White (clouds) threshold. If a pixel's value is above this
# threshold in a NOAA B channel image, it is considered as part
# of cloud and its value is entered in colorized image. It applies
# only to NOAA satellite images, for Meteor it is a dummy value.
220

SatSignal uses a different approach: color look-up tables, where the x axis is temperature (from -40 to 60) and the y axis is pixel brightness (see https://www.satsignal.eu/software/satsignal_clut.zip). I don't know how it calculates the temperature, and we should be a little careful with licensing issues ideas are taken from there

@JoshuaKimsey
Copy link

Here's an idea I had for making false color a little bit more accurate. Based on the map boundaries, could hard coded coloration values be set? That then can be modified based on data received from the satellites. That way instead of the program trying to determine from scratch what colors go where, you can use the default coloration to set a baseline. This way also when the different values are adjusted, they are working between B/W and the base color map, which should prevent the wild colors you can get from playing with the color levels.

I am not overly familiar with Rust, or else I would try and code this change myself. I just thought I'd suggest it here as an alternative to the current system and proposed solutions above in case it turned out to be a better way of creating a colored image.

@martinber
Copy link
Owner Author

Yes, that would work really well when the map overlay is correctly aligned with the image. Right now, to draw the map lines the code calculates the mapping between (latitude, longitude) -> (x, y) in the image, for this to work we need to do the inverse, that is to go from each (x, y) -> (latitude, longitude) to see if each pixel is water or not.

Also I don't remember which program went even further and colorized the image according to a color image of the earth like this one. In that case one can get the latitude and longitude of each pixel and set a hue or color according to that image

@martinber
Copy link
Owner Author

Now there are two more projects from where ideas can be stolen:

@martinber
Copy link
Owner Author

martinber commented Oct 8, 2022

I implemented color palettes as in https://github.com/Xerbo/aptdec. In conclusion, now the possible ways to improve the false color are:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants