Releases: hersfeldtn/koppenpasta
2.2.0: Simplified Pasta and multiple file bugfix
- Added "simplified" Pasta subtype with various consolidations:
- no pluvials (Xxp)
- no thermal subtypes (Xxa, Xxb, Xxc)
- combined barren (XG) with marginal (XF)
- trop rainforest (TXr) with forest (TXf)
- peritropical moist savanna (XTs) with forest (XTf)
- submediterranena (XM) with mediterranean (XAM)
- Added Estimate_rad function, which estimates local irradiation from latitude and orbital parameters; no real use in script by default but it'll be easier for me in the future to have it available
- Bugfix that should make inputting multiple files by command line more reliable
2.1.1: Bin input fix
Slight fix to input for handling of extremes in binning
2.1.0a
No change from 2.1.0, just trying to force github to include the proper file by making a new release
- Added im2sra_n.py, a rewrite of the image to .sra file converter
- Should be more flexible with input image type (e.g. supports 1-channel greyscale rather than requiring RGB)
- Can convert from any input resolution rather than requiring integer multiples of output resolution
- Has a couple extra options for dealing with sea area, can use a separate land/sea mask or fill in seas on maps with bathymetry
- Added true color approximation for Pasta (land and sea) using the same approach as for KG of finding average for areas of Earth covered by the corresponding zones, though for a few of the rarer ones I had to use some careful filtering; the non-earthlike zones I just copied whichever Earth zone one I figured was closest
- Reworked GDD accumulation scheme; for Pasta and unproxied KG, GDD accumulation will only be interrupted in periods of 0 GDD if this occurs in a period of sufficiently great GInt accumulation
- Also changed algorithm to just work through year twice so that accumulation loops from last month to first rather than having to deal with special procedures for that.
- Altered default binning behavior so that it preserves maximum and minimum temps during binning rather than averaging them (in practice only applies to Woodward, Pasta, Prentice, and unproxied KG)
- Added "verbose" option, for more detailed command line info while script runs
- Added "kg_med_as" option, allowing for defining As by the same approach as Cs/Ds in Koppen-Geiger or Trewartha
- Added more data about lapse rate calculations to the debug file
- Adjusted file input routine to warn people against using snapshot inputs
- Fixed bugs in using constant lapse rate for temperature adjustment by topography
- Fixed lapse rate calculation to avoid harmless but annoying divide-by-0 warnings
- Fixed a few typos in the command line prompts
- Fixed Pasta algorithm to choose XT rather than XF where both requirements are met (i.e. low GDD and low GInt)
- Realized I'm an idiot and finally fixed the infinite loop bug in eps_avg
2.1.0: True color for Pasta zones and new sra convertor
- Added im2sra_n.py, a rewrite of the image to .sra file converter
- Should be more flexible with input image type (e.g. supports 1-channel greyscale rather than requiring RGB)
- Can convert from any input resolution rather than requiring integer multiples of output resolution
- Has a couple extra options for dealing with sea area, can use a separate land/sea mask or fill in seas on maps with bathymetry
- Added true color approximation for Pasta (land and sea) using the same approach as for KG of finding average for areas of Earth covered by the corresponding zones, though for a few of the rarer ones I had to use some careful filtering; the non-earthlike zones I just copied whichever Earth zone one I figured was closest
- Reworked GDD accumulation scheme; for Pasta and unproxied KG, GDD accumulation will only be interrupted in periods of 0 GDD if this occurs in a period of sufficiently great GInt accumulation
- Also changed algorithm to just work through year twice so that accumulation loops from last month to first rather than having to deal with special procedures for that.
- Altered default binning behavior so that it preserves maximum and minimum temps during binning rather than averaging them (in practice only applies to Woodward, Pasta, Prentice, and unproxied KG)
- Added "verbose" option, for more detailed command line info while script runs
- Added "kg_med_as" option, allowing for defining As by the same approach as Cs/Ds in Koppen-Geiger or Trewartha
- Added more data about lapse rate calculations to the debug file
- Adjusted file input routine to warn people against using snapshot inputs
- Fixed bugs in using constant lapse rate for temperature adjustment by topography
- Fixed lapse rate calculation to avoid harmless but annoying divide-by-0 warnings
- Fixed a few typos in the command line prompts
- Fixed Pasta algorithm to choose XT rather than XF where both requirements are met (i.e. low GDD and low GInt)
- Realized I'm an idiot and finally fixed the infinite loop bug in eps_avg
2.0.2
- Increased high temperature thresholds for GDD and GDDz in Pasta system by 5 C
- Tweaked kalike PET estimation method to 7 mm/month/C
- Fixed Pasta sea functions to skip GDDl calculations if gdd_limit_light is false
- Added pas_simple_input to change other options to accomodate only temperature and precipitation input
- Added pas_med_thresh to directly alter GrS threshold
- Tweaked procedure for get_param to better accomodate force_alt_data
- Tweaked Get_nc_adjust to make sure it's only looking for topo maps if interpolation is being used, but can still be theoretically forced to use topography and interpolation if called directly and provided a topography array and desired resoluton
- Tried to make Read_Topo a bit more robust at handling image-array conversions
- Added version number into script so we can start keeping track of that better
2.0.1
- Fixed major issue with GDD calculation for hot climates in Pasta scheme
- Fixed bug with direct input of option values in command line
- Fixed font issues with latest PIL version and added font_size option
- Tragically means I have to give up on neat even kerning for the key text
- Fixed bug with interpreting (x,y) input for interp_scale as (y,x)
- Replaced evap_estimate_sea with estimate_evap, with additional option to estimate evap over whole map
- Should still be backwards-compatible with old evap_estimate_sea in old configs, though
2.0
Near-total rewrite of the script to better accommodate different classification systems and data inputs.
Far too many changes to write out, see the posts on Worldbuilding Pasta on "Beyond the Köppen-Geiger Climate Classification System" or look at the internal documentation, but some highlights include:
- Added support for various additional classification systems, including Trewartha, Thornthwaite-Feddemma, and my new Pasta Bioclimate System
- New options system where all configuration options are stored in a single global dictionary, making it much easier to load alternatives and reference options through different functions
- Land and Sea zones are now selected separately, as are their colors
- Added options to generate map keys or make charts of average temperature and precipitation across map.
- Options like interpolation and seasonless zones can now be applied to any of the supported classification systems
- Added a few different options for how to handle multiple files: data-averaging, averaging into single year before finding parameters as is the old default; parameter-averaging, finding climate parameters for each file first then averaging those together; and sequential, treating each file as portions of the same year
- Fixed a lot of old inefficiencies like that giant if-else tree used before for assigning colors, and generally made a lot of functions more generic so adding new systems, zones, or data inputs is easier.
Also added kpasta_options.cfg as part of the new options-handling system
and updated defaultcolor.ini with new colors added.
And fixed the infinite loop bug in eps_avg.py
1.2.5
Optimizations and fixes:
- "Drawing Climate Maps..." stage of koppenpasta greatly optimized, should complete in about 2 orders of magnitude less time than before (which about halves the total runtime)
- Altered Image2sra so that it now scales the resulting maps based on the height range actually present in image rather than assuming it corresponds to the full 0-255 greyscale range
- Fixed koppenpasta input so that it now allows you to choose a custom color list for Holdridge Life Zones
- Also a minor tweak so that koppenpasta is more likely to clearly show debug black areas if something goes wrong in identifying climate zones
1.2.4
More bugfixes and added the option to convert precipitation-related units to more readable values (mm/month, etc.) in eps_avg.py
1.2.3
Some small bugfixes