Congratz on finishing the topograhy, MrBragg! I think you must be the first one to have finished a planetary-scale elevation map built with this kind of technique and detail (makes me think I should get off my lazy arse and get some progress done on my own project).
It is also very interesting to see ExoPlaSim being used for climate modelling. Love seeing that this kind of simulation software (even with some things not being modelled) is available as freeware for the use of hobbyist like us these days. I have to admit that I might be a bit rusty when it comes to the climates, but at a quick glance the "big picture" seems about right in the simulation output (dry areas where they should be and so forth). Though I'm sure there's still a place for the more manual methods (such as the one used in Azelor's tutorial), I think it's very valuable especially for those less familiar with the climate-stuff to have a more model-based approach that is less reliant on the user's own intuition and knowledge.
Just jumping in to say that that topography looks amazing! As Charerg said I think it's the first 100% complete planet I've seen done with Wilbur, so for that alone it's very impressive. Not sure to what extent you messed with GPlates, but you can input your finished map into GPlates by linking your continent polygons to the raster file, which might help in confirming that the geology makes sense from a tectonics perspective.
My only *tiny* nitpick is that the coastlines in general look a little more irregular than we generally see on Earth- not sure if that's just an artifact of the Wilbur processing. I always have to look at the coastlines of Africa and Australia to remind myself that very smooth coastlines are actually quite common in many areas!
Thanks Tiluchi! I used gplates to work things out starting from the previous supercontinent, so features older than that were added via artistic license Even doing that much was a bear, so going back any further gives me terrible flashbacks to agonizing over plate interactions.
Appreciate your feedback here. You know, I actually went back and smoothed some areas during my pass on topography, though now that I look at things again I think you might be right... Something for the to-do list, I suppose.
In any case, I've kept playing around with ExoPlaSim a bit and managed to get a T85 model with completed topography and more reasonable temperatures to complete. Since that worked, I've been trying to work on how to import the EPS outputs into the Azelor et al tutorial here so that I can correct some of the systematic errors from EPS. By 1) manually adjusting the temperature to "undo" EPS's low resolution elevation cooling and then readjusting using a high resolution heightmap and Azelor's guide and 2) a little hand-waving on the precipitation maps, I managed to convert the EPS Jan / July temperature and precipitation maps into the right color format for the tutorial; other than still being a bit warm and perhaps a bit too wet, IMO they look reasonable:
Jan / July Temperatures
eps_jant.png eps_jult.png
Jan / July Precipitation
eps_janp.png eps_julp.png
From there, I can run AzureWings script to generate a Koppen map which matches up quite well with the raw and interpolated / altitude corrected results from Nikolai's script. The agreement isn't perfect, but it's certainly good enough IMO to indicate that this process captures the main features. Interestingly, the AzureWings result doesn't have the same extensive regions of mid-latitude Med climates and (too) high latitude hot deserts as the results reading directly from the EPS data; not entirely sure how the Pasta scripts use the EPS data but it's interesting to see that not reproduced here.
AzureWings
output_eps.png
Raw EPS
T85_20yrs_big.png
Interpolated / Altitude Corrected EPS (only a single year as the script doesn't like my averaged nc files)
year85.png
Now that I've gotten this working, I should be able to manually alter the EPS temp / precip outputs to correct some of the systematic errors and get to a reasonable compromise climate map. Overall, not too painful, either
P.S. I haven't forgotten about doing your T85 earth calculations, worldbuildingpasta. This last T85 for me took a bit longer than I'd planned as I needed to reduce the timestep to 15 minutes to prevent crashes, so I'm just a bit behind. Yours is next on my queue though, so hopefully not too much longer!
Last edited by MrBragg; 01-15-2023 at 07:04 PM.
This is super interesting! Happy to see others working on balancing out EPS with intuition knowing that EPS does have its quirks. I've been procrastinating on making a post on my Rheia thread, but one thing I've found is that the Azelor method (and I assume AzureWings' script, although I haven't used it) tends to systematically underestimate mediterranean climates and to a lesser extent dry summer climates, while EPS tends to overdo them; somewhere in the middle of those is probably the "true" distribution. Of course, none of this is "true" anyway so we have a little bit of latitude (no pun intended) to interpret things as we like within reason :-)
The formal definitions for koppen zones sometimes involves data from all months rather than just jan/july, so that might contribute. The hot deserts thing may also be a definitions issue; some sources define the hot/cold boundary as an average temperature of 18 C, some as a coldest-month temperature of 0 C. The latter tends to result in more hot desert and is what my script defaults to, but that can be altered during configuration.Interestingly, the AzureWings result doesn't have the same extensive regions of mid-latitude Med climates and (too) high latitude hot deserts as the results reading directly from the EPS data; not entirely sure how the Pasta scripts use the EPS data but it's interesting to see that not reproduced here.
In principle it should be possible to make a greyscale image file showing which areas you wanted hotter or colder and then alter the script to read that and adjust all the temperatures before determining climate zones (and the same for precipitation). With the current version of the koppenpasta script on the github, go to line 1058 (above print('Interpreting Data...')) and insert:
adj_path = image.png #greyscale adjustment image, placed in the same directory as the script and preferably with smoothed colors
min_adj = -20 #minimum adjustment of temperature in degrees C, i.e. scale of greatest cooling
max_adj = 20 #maximum adjustment of temeprature in degrees C, i.e. scale of greatest heating
zero_p = 128 #greyscale value (0-255) of image that corresponds to no adjustment
zero_p *= 255
adj, = Image.open(adj_path)
adjm = adjm.convert('I;16')
adjext = adjm.getextrema()
adjm = adjm.resize((lonl,latl))
adj = np.asarray(adjm)
adj = adj - zero_p
adj = np.where(adj > 0, adj * max_adj / (adjext[1] - zero_p), adj * min_adj / (adjext[0] - zero_p)
adj = adj[np.newaxis,:,:]
tas = tas + adj
ts = ts + adj
And make sure it's all indented to the same level as the print... line. For precipitation it could be basically the same but remove the last two lines and add pr = pr + adj (and it should work fine to have one after the other.)
Are you sure you're pointing it to the averaged file and not the one with data further averaged to annual averages? (or to a folder containing multiple .nc files)only a single year as the script doesn't like my averaged nc files
Oooh, this looks really useful. Thanks a bunch! I'm very much not a coder, but I'm familiar enough with to Python to implement this for precipitation, as well, though I imagine that wouldn't have seasonal variation. I'll mess around and see what happens
I've been attempting to use the averaged .nc file with all 12 months and the output I get looks like it partially works for some continents but then fails for others and just outputs climates with straight line divisions. This happens for different resolutions, outputs, etc, so it's not only a one-off. It could totally be user error on my end, so if it's helpful I can show you what I'm getting.
Hmm do those .nc files look normal in panoply?
As far as I can tell they look and behave totally as expected.
Hmm, I actually saw someone else get a similar issue recently but I just haven't been able to replicate it. I may do some tests soon, the script could use a bit of optimization in a couple places anyway.