Improved 'Sow' and 'Harvest' calcs
Better background on the event banners
This commit is contained in:
fraxle
2026-08-02 16:22:58 +01:00
parent e55e0df86f
commit 566d8d36e2
8 changed files with 291 additions and 71 deletions
+18 -8
View File
@@ -297,21 +297,31 @@ export const COL_DESCRIPTIONS = {
// Seasonal crop calendar for the Farming "At a glance" sow/harvest advice.
// Months are 1-12 on a UK / Northern-temperate basis (auto-flipped +6 for the
// southern hemisphere in computeCropAdvice). `minSoilT` is the surface-soil
// germination floor in °C. `dry: true` marks crops that should only be
// harvested in a dry spell (grains, rape and onions need to be brought in /
// cured dry); `dry: false` crops can be lifted whenever they are in window.
// southern hemisphere in computeCropAdvice). `minSoilT` is the seedbed
// germination floor in °C, tested against the DAILY MEAN soil temperature at
// 6 cm (drilling depth) rather than a surface peak.
//
// Optional flags, all defaulting to falsy:
// sow.tender - seedlings are killed by air frost, so an air frost in the
// forecast week rules the crop out.
// sow.underCover - sown indoors / under glass in its window, so the outdoor
// seedbed temperature and wetness gates don't apply.
// harvest.dry - must be brought in / cured dry (grains, rape, onions), so
// needs a run of consecutive dry days.
// harvest.lift - lifted by machine off the ground (root crops), so
// waterlogged soil means ruts, compaction and damaged roots.
// A crop with neither harvest flag (lettuce, hand-cut) passes on month alone.
export const CROP_CALENDAR = [
{ key: 'wheat', label: 'Wheat', icon: '🌾', sow: { months: [9, 10], minSoilT: 8 }, harvest: { months: [8, 9], dry: true } },
{ key: 'barley', label: 'Barley', icon: '🌾', sow: { months: [2, 3, 9, 10], minSoilT: 6 }, harvest: { months: [7, 8], dry: true } },
{ key: 'oats', label: 'Oats', icon: '🌾', sow: { months: [2, 3, 4], minSoilT: 5 }, harvest: { months: [8, 9], dry: true } },
{ key: 'osr', label: 'Oilseed rape', icon: '🌻', sow: { months: [8, 9], minSoilT: 10 }, harvest: { months: [7, 8], dry: true } },
{ key: 'fieldbean', label: 'Field beans', icon: '🫘', sow: { months: [2, 3, 10, 11], minSoilT: 3 }, harvest: { months: [8, 9], dry: true } },
{ key: 'potato', label: 'Potatoes', icon: '🥔', sow: { months: [3, 4, 5], minSoilT: 7 }, harvest: { months: [6, 7, 8, 9], dry: false } },
{ key: 'carrot', label: 'Carrots', icon: '🥕', sow: { months: [3, 4, 5, 6, 7], minSoilT: 7 }, harvest: { months: [6, 7, 8, 9, 10], dry: false } },
{ key: 'tomato', label: 'Tomatoes', icon: '🍅', sow: { months: [3, 4], minSoilT: 14 }, harvest: { months: [7, 8, 9], dry: false } },
{ key: 'potato', label: 'Potatoes', icon: '🥔', sow: { months: [3, 4, 5], minSoilT: 7, tender: true }, harvest: { months: [6, 7, 8, 9], dry: false, lift: true } },
{ key: 'carrot', label: 'Carrots', icon: '🥕', sow: { months: [3, 4, 5, 6, 7], minSoilT: 7 }, harvest: { months: [6, 7, 8, 9, 10], dry: false, lift: true } },
{ key: 'tomato', label: 'Tomatoes', icon: '🍅', sow: { months: [3, 4], minSoilT: 14, tender: true, underCover: true }, harvest: { months: [7, 8, 9], dry: false } },
{ key: 'onion', label: 'Onions', icon: '🧅', sow: { months: [3, 4], minSoilT: 7 }, harvest: { months: [7, 8], dry: true } },
{ key: 'pea', label: 'Peas', icon: '🟢', sow: { months: [3, 4, 5, 6], minSoilT: 8 }, harvest: { months: [6, 7, 8], dry: false } },
{ key: 'lettuce', label: 'Lettuce', icon: '🥬', sow: { months: [3, 4, 5, 6, 7, 8], minSoilT: 5 }, harvest: { months: [5, 6, 7, 8, 9], dry: false } },
{ key: 'beetroot', label: 'Beetroot', icon: '🟣', sow: { months: [4, 5, 6, 7], minSoilT: 7 }, harvest: { months: [7, 8, 9, 10], dry: false } },
{ key: 'beetroot', label: 'Beetroot', icon: '🟣', sow: { months: [4, 5, 6, 7], minSoilT: 7 }, harvest: { months: [7, 8, 9, 10], dry: false, lift: true } },
];