
For my climate model I tried to make it more realistic by having the earth's albedo depend on the terrestial area. I took an image of the earth from NASA (left) and then did some image processing on it in Matlab.
Progam Constants
These values were chosen aribtiarly (within reason)
landAlbedo = 0.15;
waterAlbedo = 0.23;
iceAlbedo = 0.6;
Read in the image
close all;
earth = imread('land_ocean_ice_2048.jpg');
imshow(earth);
Seperating into RGB Values
r = earth(:,:,1);
g = earth(:,:,2);
b = earth(:,:,3);
Extracting logical arrays for earth, water, and ice
waterThreshold = 0.999;
water = b-g-r>waterThreshold;
iceThreshold = 180;
ice = r > iceThreshold & g > iceThreshold & b > iceThreshold+10;
 |
| Ice Area - Couldn't figure out how to apply a line border. |
land = ~ice & ~water;
[m n] = size(land);
w2 = logical(zeros(m,n));
w2(850:890,:) = land(850:890,:);
water = water + w2;
land = ~ice & ~water;
Calculating the Albedo
albedo = iceAlbedo*ice+waterAlbedo*water + landAlbedo*land;
albedo = flipud(albedo);
avgAlbedo = mean(mean(albedo));
fprintf('The average albedo is %f\n',avgAlbedo);
contourf(albedo,'DisplayName','albedo')
The average albedo is 0.299076
I think that it is a neat little application of image processing. Actually not too far off, I found a reported value for the average albedo to be 0.297 +- 0.005.
 |
Imature Note: See the boobs in Asia?
|
Calculating the climate variation
for n=1:length(t);
for i=1:m
for j=1:p
T(i,j,n) = radiativeForcingModel(c(n),c(1),albedo(i,j));
end
end
offset = 20;
for i=1+offset:m-offset;
for j=1:p;
average = 0;
for itter=-offset:offset;
if (itter ==0)
continue;
else
average = average+T(i+itter,j,n)+T(i,mod(j+itter,p)+1,n);
end
end
T(i,j,n) = average/(offset*4);
end
end
end
 |
| Current Temperature Distribution from Model (K) |
The reason why I used an average value for the temperature is that heat conduction ($$0=k\nalba ^2 T$$) requires the second spatial derivative to be zero, and this happens if the first derivative is a constant (average value) - I thought of this all by myself! It also implies that there cannot be any local extruma, but heat conduction on a global scale is limited by time, so local extrama are allowed. That is my offset value in the code - I use an average of the 20 nearest cells.
For the x direction I even made it wrap around to connect. I didn't do this for the poles though, as the projection gets confusing.
 |
| My Model Prediction Change (C) |
The difference in temperatures (comparing the 50 year model to the current model) is below. Compared to one done by Idaho National Lab I don't think that I am too far off.
 |
| Idaho National Lab Prediction |