Jump to content

Greenwater Colorimetry Journal

modified lung

Recommended Posts


There doesn't seem to be a lot of information out there on growing freshwater microalgae (greenwater) cultures. Most of it is just something like "put tank water in the window". Sure that works, but only so well. And I doubt the nutrient content of greenwater grown in a low nutrient water this way can be all that great.

There are some examples out there of people using nutrient medias like Guillard's F/2 to grow freshwater microalgae with success.  But not only can F/2 be expensive, it was originally formulated for marine and not freshwater microalgae. That means it's low or even lacking many of the micronutrients or trace minerals needed by freshwater microalgae. In order to compensate, more needs to be used than should be necessary which can cause other nutrients and ions to build up to toxic levels when trying to sustain long term freshwater cultures.

For example, in the photo below both greenwater cultures are months old and began suffering from mineral depletion (mostly likely magnesium). Both recieved a boost of minerals which caused massive growth for the culture on the left but killed the culture on the right over night likely due to toxic ion buildup.


Above is an extreme example but I've come to believe that this ion build up is a big problem not only for long term greenwater cultures, but also for crashing some live food cultures like Daphnia which seem to be especially sensitive to ion changes in the water.

In short, I want to figure out how to get the quick short term freshwater microalgae growth of using medias like F/2, but be able to sustain it over the long term without the ion build up. And I want to do it as cheaply and easily as possible in a way anyone can do. But to figure this out, I'll need to be able to do more than just look at my cultures and gauge greenness by eye. I'll need numbers. This first post will mostly be to explain how I'm getting my numbers which might make it a bit long. But if you're interested in following the greenwater journey, this first post doesn't necessarily need to be read. 


The Growth Phases of Greenwater

Microalgae (the stuff in greenwater) is usually shown to have at least 4 neat and tidy growth phases: (1) the lag phase where growth begins but is extremely slow, (2) the exponential phase where the growth rate increases as the amount of microalgae increased, (3) the stationary phase where nutrients run out and growth stops, and (4) the death phase:


*The best time to feed your greenwater to whatever live food you might have is near the beginning of the stationary phase because this is when the nutritional content of the microalgae is the highest and the nitrogen (ammonia, urea, etc.) content of the water is the lowest.*

The biofuel industry uses expensive spectrometers or colorimeters to detect color, or "optical density", changes in their greenwater too subtle for the human eye to see. This allows them to harvest when their cultures are at the beginning of the stationary phase when the microalgae concentration and their nutrition content is the highest.

I do have access to a spectrometer and colorimeter but most people don't ...or maybe we do …our smartphones. The camera on our phones is sort of kind of a color detector and there are a number of color analyzer app available for download. So I paired my phone camera with one of these apps to see the phases of a greenwater culture can be tracked with more detail than the eye.

This way I can not only see exactly when my culture stops growing, but I can possibly, for example, identify nutrient depletion or the build up of ions by looking at the subtle reaction of the culture to different things I add. Hopefully this will result on a better understanding of growing freshwater microalgae at home which there doesn't seem to be a lot of information on out there.


A Quick Example of Smartphone Colorimetry—It Works!

To get some clear examples of this working, I tracked the optical density of two different greenwater cultures everyday for a few weeks. Both cultures were already over a month old when I started:


I'll call the culture on the left side "Lefto". For this one I wanted to track the ups and downs of adding small amounts of nutrients in the stationary phase. You'll see that's not quite what happened.

The culture on the right side, or "Rightwise Gamgee", recieved no nutrients and no appreciation for it's contribution in destroying the one ring.

Below is a graph showing the two week progression of Lefto using the RGB values (converged to zero as the starting point) recorded from the color analyzer app. Looking back, every point on the graph shows a predictable outcome of everything that happened to the culture. For now pay more attention to the black line which represents the overall biomass in the culture. I'll explain the other lines and how I process the data later:


Let's go date by date:

12/9-10: This culture has already more than a month old. The culture looks to be in decline, maybe edging a crash.

12/11-12: Added urea which looks to have caused some growth.

12/13-14: My light timer stopped working and the cultures started receiving only about 4 hours of light per day instead of the usual 12 causing a decline. Added more NPK fertilizer to maybe compensate a little.

12/15-16: Returning to a full 12 hours per day of light did cause more growth but not as much as expected. Added more NPK fertilizer.

12/17-18: Some growth but not much. It's possible a micronutrient or trace element has been depleted, so I added a gallon of fresh water which will hopefully have whatever it needs.

12/19: the culture took off. The micronutrient depletion idea was probably right.

12/20: After a day of no growth I brought the light down closer to the culture to see if that would break the stationary phase (the light was raised back up when taking RGB readings for consistency).

12/22-24: A little more growth achieved but not much.

12/25-28: A slow decline begins followed by a quick decline. Upon closer inspection. I found I had accidentally dropped some Moina into the culture tank which had grown into a very large population. 

Here's the graph for Rightwise. I allowed this culture to decline over the same time period. The lighting and top-off dates were the same but no nutrients were added and no Moina was found:


[Note that these two graphs are a little more up to day than the rest will be. I just found this yesterday after I had already took all the graph screenshots and didn't want to take the time to update them all]

You can see how using the color analyzer app helped me get the best out of my greenwater. Without it most of the day-to-day color changes would have been too subtle to notice. I would have thought the culture was in the stationary stage. I knew the culture could get darker so I might have kept adding fertilizer that would not have been consumed by the microalgae. The fertilizer probably could have eventually built up to toxic levels enough thay adding some of the greenwater to my live food cultures (Moina, Daphnia, etc.) would have killed them. I've done it before. Instead Lefto is able to hold a thriving, although unwelcomed, Moina population.

...maybe I shouldn't keep my Moina cultures above my greenwater cultures. I still will though.


Taking a Measurement 

Here's the RGB analyzer app getting a reading on Lefto on 12/20:


That's basically it—I just press the phone against the culture tank, open the app, and record a few numbers. Well ...maybe it's not that easy. Consistent readings does require some technique.


Consistent Readings


For lighting, all that's really needed is the light that's used to light the greenwater culture. I use a Nicrew SkyLED light placed over the tanks. Though I may try other lights in the future. 

(1) Consistency is very important.

Outside light will interfere with readings form the color analyzer app. That includes light from the window or other lights from the room. But as long as the amount of interfering light is consistent, then readings from the color analyzer app will be consistent. That means, if you take a reading with the ceiling light (or whatever other light) on, then take all your reading with the ceiling light on.

However, ambient light from the room, like the ceiling in light, seems to matter far less when the greenwater starts getting dark enough. In other words:

(2) The lighter the culture, the more outside light will interfere with the readings. 

But strong enough light will interfere even with the darkest cultures I've achieved. For example, my culture tanks are in front of a window. At different times of day, the sun shines a different amount of light through the window onto the greenwater culture. That means a reading I take in the early morning will give very different results from a reading I take in the afternoon. For consistency I take my readings at night or block light from the window from entering the back of the culture tank with a plastic binder.


I may have tried every color analyzer app for Android. The two that gave the most consistent readings were Color Picker and Color Grab. I use Color Picker because the color bars on the interface let you visualize RGB values more easily.

Color Picker also lets you lock the camera's white balance to get more consistent readings. But locking the white balance does distort the color and I found it's not really needed if the camera phone is pressed up against the greenwater tank before you open the app. If I'm getting a weird color that look nothing like the culture, it seems the white balance can be reset by pointing the camera half way up toward the light or at a white piece of paper under the light, then back toward the greenwater.

As a last note, most apps have a small area of the screen where the color is sampled from. I make that sample area as large as possible which also seems to give more consistent results.



Interpreting the Colors: RGB, HSV

So far I have been focusing on RGB and HSV. I may look at other options on the future but these two seem to easiest so far.


In the app, the percentages shown in the RGB box are the percent of the maximum possible color value that's detected. The maximum for each color in RGB is 255, so from the screenshot above:

%R = 51/255 = 20%

%G = 103/255 = 40%

I find it much easier to use the percentages but not all apps automatically calculate them for you.


Most people probably know plants have chlorophyll and chlorophyll absorbs red light. Since microalgae is mostly chlorophyll, it can be measured by shining a light through a sample and measuring how much of the red light makes it through. Sunlight, the Nicrew light, and many white lights in general give off some red light. Looking at the color app when these lights are shining through the greenwater, the lower the R value, the more red light is being absorbed, the more chlorophyll is present, the better the greenwater is doing.


But what most people might not know is that greenwater ...is green. It's true. That's because the chlorophyll in microalgae does not use much green light. Instead it reflects most of the green light back to your eye which is why it appears green. Sunlight and most white.lights also give off some green light. On the color analyzer, the higher the G value, the more chlorophyll, the better the greenwater.


Microalgae actually absorbs more blue light than red light. However, this is a product of carotenoid pigments which many kinds of bacteria and other microorganisms also have. This is why blue light doesn't make for a very good for measurement of greenwater. If the greenwater is thick enough, B reads at zero on the color analyzer because more blue light is being absorbed than the camera can detect. I find it easiest to just ignore the blue light reading.

H° isn't part of RGB color theory. It's part of the HSV (and HSL) color scale. Most apps will give the option to see both. H stands for "hue" and is on a scale of degrees that doesn't use percentages. What H° does is show where exactly your greenwater is in the scale of all the colors. Usually your culture will be somewhere between green and yellow—60° to 140°. As greenwater cultures decline in health, they tend to turn yellow-ish which can be seen early in the H° value before it's obviously to the eye.


S stands for saturation. This number is usually at 100% unless the culture is extremely young or too transparent. I find the RGB readings don't give realistic results unless S is at 100%. In other words, this method only works when the culture is dark enough and S is the gauge to determine that.


💥 Epic Spreadsheet Action 💥 

There's a few ways this can be done but only one needs to be used. They range from entering raw values directly from the app which gives decent accuracy ...to running the numbers through some equations for questionably necessary better accuracy.

I'll give a quick run down of the two easiest ways to record the data, then show how to calculated optical density (OD) which is the method I use.



The H° value from HSV can be recorded on its own without alteration. Below is graph from Lefto's raw H° data (grey line). *To more easily compare H° to a common biomass calculation. I added a decimal point to H° (85° H was entered as 0.85° H), but this doesn't have to be done:


The number we get for the biomass calculation is basically the same trend as the H° line. This is because the color analyzer app calculates H° from RGB, and that calculation (for green) before it's converted to degrees [(R-B)/(max(R,G,B)-min(R,G,B))] is the similar to the biomass calculation [OD(max)-OD(min)].

For super extra fun I also track H° with some conditional formatting to help visualize the color change even more clearly. Lefto is on top and Rightwise on bottom:




For RGB, entering the values from the app can be done but the results are not very intuitive. This is because the color analyzer is reporting how much of each color it sees or is reflected. But what we want is how much color the greenwater is absorbing. 

We can fix this with some ultra complicated, brain busting math. Here are the equations:



That's it. Just subtract the raw %R and %G numbers given by the app from 1. Let's look at Lefto's graph using this method. The raw values for %R (dark red) and %G (dark green) recorded directly from the app are shown along side the same readings run through the brain busting equations 1-%R (light red) and 1-%G (light green):


All this does is mirror the lines in a way that makes more sense to the brain head. Notice the line for 1-%R is also basically the same as line for H° (grey)? Interesting.


Calculating Optical Density (OD)

This is the method I use because it shows you the most detail. Optical density is a measurement of how much light is absorbed by a substance. The optical density of greenwater is commonly measured by the amount of red light that is absorbed by the chlorophyll. The absorbance (abs) is calculated using Beer's Law. All you need is the following equation:

(abs) = -log((R,G,B)/max(R,G,B))

...where "R,G,B" is one of either three values (R,  G, or B) given by the app and "max(R,G,B)" is the maximum possible value which is 1 if using the percentages and 255 if using the actual RGB numbers. It's not as hard as it might look. If you're using a spreadsheet, just do this: 


21% R should give you about 0.68 (abs). If you want to try this, copying that cell and pasting it all the way down the columns under "R (abs)" and "G (abs)" will insert the equation into all those cells as well. No further editing required.

You now have numbers showing how much of each color the greenwater is absorbing. Using these will give you a much more detailed and accurate graph. That is, the ups and downs are more exaggerated


But we don't have to stop here. We can get even more convoluted about this!


Converging the Values to Identify False Growth

Look again at the graph above. Pick a point from which you'd like to compare all the other measurements. A good spot is at the beginning. What was the state of the culture on all the other dates compared to the culture on 12/9? Of course you can just line it up with your eye. Or you can make it easier with epic spreadsheet action 💥💥💥:


You've already seen this graph at the beginning of the post. What this graph does is let us see how fast R is growing compared to G. This is useful because if your greenwater culture is growing, the R line should be going up more than the G line. Much more. Similarly if your greenwater is in decline R should be going down much more than G.

Look at the red and green lines between 12/14 and 12/15. R and G went up the same amount. You can also see H° and the black biomass line (kind of hidden behind the H° line) stayed much more level then usual. On every other date the black line almost exactly followed the slope angle of R. But not between 1214 and 12/15.

This is probably because the culture didn't actually grow. The color change wasn't caused by the presence of more chlorophyll compared to the day before. It was caused by the addition of the pre-dissolved NPK fertilizer . NPK granules often have a colored coating that slightly stains the water for a short time. Amazingly, the RGB analyzer app picked this up. But we might not have noticed if we didn't converge all the values on the graph to a single point.

What this graph does is look at the values of each color (independently) on 12/9 and subtract that number from itself so everything starts at zero. Then that same amount is subtracted from every other day. For example:

On 12/9:  R = 21% = 0.68 abs. Now subtract 0.68 from 0.68 which = 0 abs.

On 12/10:  R = 24% = 0.62 abs. Now subtract 0.68 from 0.62 = -0.06 abs.

Then just keep subtracting 0.68 from every other R reading as well. Do it separately for G:

On 12/9: G = 37% = 0.43 abs. Now subtract 0.43 from 0.43 which = 0 abs.

On 12/10: G = 40% = 0.40 abs. Now subtract 0.43 from 0.40 = -0.03 abs.

Then subtract 0.40 from every other G reading.

Of course doing this manually everyday is a pain and we're super lazy. But we're not cavemen, we have spreadsheets! If you're like to try this just copy the following:



Assessing Greenwater Health with an Absorbance Curve

What happens if we graph the R, G, and biomass values from a single day onto a single line.? We get an absorbance curve. The horizontal axis is color wavelength (nm).

Green = 530 nm

red = 680 nm

biomass = 750 nm (750 is in the infrared spectrum and is often used to measure turbidity or biomass)

Here are the absorbance curves each day from Lefto stacked on a single graph:


The curves for Rightwise Gamgee:


Notice the difference in the curve height? What we're seeing is the difference is chlorophyll concentration as it goes up and down over time. The more curved the line, the more chlorophyll is present, the healthier the greenwater. The flatter the curve, the less chlorophyll, the less healthy. This is basically a visualization of the difference between R and G.



This is a good opportunity to talk about accuracy. How accurate can this dumb method really be?

Luckily, I have access to a full blown professional grade lab spectrometer recently calibrated by the manufacturer. The curves with the darker colored lines are optical densities given by the spectrometer. The lighter lines of the same color are the optical densities of same cultures calculated with readings from the color analyzer app taken within the same hour.


The two gave shockingly similar results. I thought they would be way off. We can actually adjust the RGB readings by adding a calibration curve and get them to match the spectrometer almost exactly. We can also seem to figure out the entire curve through the whole spectrum with some fancy maths. Here's a graph applying a calibration curve and speculating the whole spectral curve just with R and G data from the color analyzer app and comparing that to readings from the spectrometer. Look how close they can get:Screenshot_20221228-200428.png.4faea190466a168534f845a84c5b8563.png

The full spectrum calculation and calibration curve still needs more testing to see if it can be applied to all cultures. We'll see if it holds up.


Edited by modified lung
  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...