I ended up messing around with writing a GIMP plug-in in Python and updated my old climate script. The new version is largely adopted from Azure's script and works in a similar fashion: the plug-in processes the source maps on a pixel-by-pixel basis. Since this one uses many of GIMP's in-built functions, it's not as efficient as Azure's script, and the processing time is quite long. On the other hand, it now has a nice progress bar that shows how far along the script is from completing. While this is a GIMP plug-in, I'm not 100% sure that it works without installing Python. Anyway, here are the instructions:
Installation:
Place the plug-in in the appropriate folder (usually /Program Files/GIMP 2/lib/gimp/2.0/plug-ins). If uncertain, you can check Edit->Preferences->Folders->Plug-ins to see where the plug-ins are stored. Once in the right folder, the plug-in should be available (you can use Filters->Script-Fu->Refresh Scripts so you don't have to restart GIMP). You should now have the script available under the Image tab:
Activation.PNG
Restrictions for using the script:
- This has been written for and tested in GIMP 2.10
- The image needs to be RGBA (RGB with an Alpha channel) with 8-bit Integer precision
Layer naming restrictions:
The temperature/precipitation layers need to have exactly the following names (the script searches for them by name):
JanTemp
JulTemp
JanPrec
JulPrec
Layer colouring restrictions:
The temperature and precipitation categories need to have exactly the following colours (with the ocean tiles coloured in a separate colour, not transparent as in prior versions of the script):
Temperature zones:
Precipitation zones:
Ocean tiles:
Sample Map:
Here is a sample climate map using source maps generated from WorldClim's 1970-2000 dataset:
Source maps:
Generated climates:
GenClimates.png
The plug-in can be found in the attachments. Feel free to provide any feedback if you have trouble using it. Note that the new script has been set up not to generate any Cc climates, and uses a gradual aridity threshold (unlike the previous versions, which used a stepped threshold as in most publications of Köppen maps).
Update (28/10/20):
- Now supports off-colour pixels (they are assumed to have 0 °C temperature and 1,0 mm precipitation)
- Fixed a bug where the script could paint the ocean in the wrong colour if opacity was set at less than 100%
Big thanks to Coggleton for reporting the issues with the script, this update should solve the problems related to off-colour pixels.