In order to correctly simulate the crop growth reliable, realistic sowing dates and cycle length are fundamental. Moreover in tropical and sub-tropical regions like South-China two or especially tree cropping cycles are possible. In these regions the knowledge of real crop rotation and the suitable crop calendar (e.g. for early and double season late rice) is fundamental for an accurate yield forecast. One possible option to find such data is the usage of COPdate (Climatically Optimal Planting date, Savin et al. 2007). This application finds sowing dates for a specific combination of crop, grid and year, according to expert rules.
The application is implemented as an oracle package. By running the package for all historical years, the earliest and latest optimal sowing date can be found, defining the sowing date window. By processing a specific year, the optimal sowing date for that year inside the sowing window is found.
To be able to run the package in parallel, it is connected to a tasks administration system that should be initialized before running the find_sowing_date and sowing_dates_years functions.
Required objects inside the oracle schema where the COPdata is applied (e.g. CGMS14RUK):
- COPDATE package
- MRSDATES package
- COP_CROP_GRID_REGIMES table
- COP_CROP_REGIMES table
- COP_WINDOWS table
- INIT_TASKS procedure
- NEW_TASK_ISW_INPROGRESS view
- TASKLIST view
- TASKLIST_COP_SD view
- TASKLIST_COP_SD_ALLYEARS view
- TASKLIST_COP_WDW view
- TASKLIST_ISW view
- ADD_PROCESS_LOG synonym
- SIGNALS synonym
- TASK synonym
- TD_KEY_VALUE synonym
- TD_KEY_VALUES synonym
- TASKSET sequence
- PROCESS_COP_OSD_BLK procedure
- PROCESS_COP_SD_ALLYEARS_BLK procedure
Required objects inside the assisting oracle schema for administering task (e.g. RUKMAN):
- SIGNALS package
- TASK package
- TD_KEY_VALUE types
- TD_KEY_VALUES types
- ADD_PROCESS_LOG procedure
To initialize tasks for COPdate, the INIT_TASKS procedure is used. Five or six arguments are required:
To initialize a single year:
- task (= cop-sd)
- initial status (= pending)
- regime (winter or spring)
To initialize multiple years:
- task (= cop-sd)
- initial status (= pending)
- start year
- end year
- regime (winter or spring)
If start- and end year are NULL then all the years in the crop_calendar will be initialized for the crop and grid(s). If start- or end year is NOT NULL, then this value will be used as start- resp. end year of the range of years; the other value will be derived from the crop_calendar. If both start- and end year are NOT NULL these values will be used as start- resp. end year of the range of years; only this range will be processed. The start- and end year will be included in the range to be processed. The above procedure fills the TASK_LIST table in the assisting schema (e.g. RUKMAN) which transfers the tasks via views to the various TASKLIST views in the main schema (e.g. CGMS14RUK).
Planting date Rules
Region specific expert rules have been defined which estimate climatically optimal sowing dates for different crops. In the original COPdate packages, the rules were elaborated from agronomical practices in the former Soviet Union, Central Asian and non European Mediterranean regions covering 30 countries among major producers such as Russia, Ukraine, Kazakhstan, and Egypt. During application of the package, the calculation of the sowing window was adjusted to better match observed sowing dates.
Five crop groups are distinguished:
sowing depending on precipitation and/or air temperature
- winter crops
- spring sown crops
- autumn sown crops
sowing independent from meteorological circumstances
- in chain sowing
The rules apply for winter crops such as wheat, barley and rapeseed.
The first step consists of determining the sowing window from at least 15 years of meteo data. For each year the day is selected on which TSUM threshold of 500 ºC is crossed, starting from December 31st going backwards, only summing degrees above 3 ºC (TBASE) and not going back further than September 1st. The end of the sowing window is the latest day found over all years. The start of the sowing window is 1 month before the end. The results are stored in table COP_WINDOWS.
In the second step, the year specific sowing date inside the sowing window is found by the following rules, starting at the beginning of the sowing window.
- Day check: If day is the last day of the sowing window, sowing takes place, else go to next step
- Cold check: If average temperature over the past 10 days > 17 ºC, go to the next day and return to step 1, else go to next step
- Workability: If within the previous 3 days precipitation > 3 mm, go to the next day and return to step 1, else go to next step
- Sufficient water: If precipitation sum over past 20 days < 10 mm, go to the next day and return to step 1, else sowing takes place
Spring sown crops
The rules apply for autumn sown summer crops such as wheat, barley, rapeseed and potato-fall with continued growth in winter in regions without frost (in Northern Africa). These crops have in common that they require cool conditions during sowing (below 17 ºC).
For each grid a preliminary sowing window is determined. The earliest sowing day (ESD_FAO) is two months before the long term average sowing date given by the FAO (MSD_FAO), stored in table Template:OBJECT. This window is improved by taking into account the weather of the last 15 years (years window).
For each climatic grid cell the sowing date is estimated for each of the last 15 years based on the following rules:
1. Check the weather on the earliest sowing day (ESD_FAO) 2. Calculate the average daily temperature over the past 10 days (Tav10d) (duration mean Temp). Check if Tav10d is equal or below 17 º Celsius (Tmean max). If not go to the next day and apply step 1; if yes check the following criteria (sufficient water). 3. If the sum of the difference between rainfall and ETA over the previous 10 days (duration wet subsoil) >0 mm (R wet subsoil), then sowing takes place, if <=0, then go to the next day and apply step 1
Next, determine for each climatic grid cell the sowing period which is marked by the earliest and latest sowing date found over the past 15 years. These days are defined as Earliest Sowing Day (ESD) and Latest Sowing Day (LSD). The ESD and LSD will always be within the range of ESD_FAO and LSD_FAO. Actually ESD and LSD are a refinement. The results are stored in table COPD_WINDOWS.
After the sowing window is determined, the sowing date for the operational year is determined. The rule is similar to the rule used for determining the window. 1. Check the weather on the ESD 2. Calculate the average daily temperature over the past 10 days (Tav10d). Check if Tav10d is equal or below Tav10d threshold. If not go to the next day and apply step 1; if yes check the following criteria (sufficient water) 3. If the sum of the difference between rainfall and ETA of the previous 10 days >0, then sowing takes place, if <=0, then go to the next day and apply step 1 11 4. If no sowing date is found before LSD the LSD is taken The year specific sowing date is written in the CGMS table CROP_CALENDAR (columns START_MONTHDAY1 and START_MONTH1). The third step includes the estimation of initial moisture conditions. The date to start the soil
Autumn sown crops
- add -
Rules for in chain and others
For the “in chain” and “others” group no rules were elaborated.
Application of the package
To find optimal planting dates, the functions PROCESS_COP_OSD_BLK for a single year, or PROCESS_COP_SD_ALLYEARS_BLK for multiple years are called. These procedures pick up tasks with phase Pending and of a certain age. They are processed one by one at a time. When picking up a task, its phase is updated to In progress. In case of an error, the phase is updated to Error. When a sowing date is found, the phase is updated to Resulted and the found sowing date is updated in the CROP_CALENDARS table. When no sowing date is found, the phase is update to No result and a new tasks is created with phase Pending. When no more tasks of a certain age and with phase Pending are found, the processing is aborted.The use and administration of the tasks allows that the COPdate can be called in parallel since only pending tasks of a certain age are processed (thus ignoring just newly created tasks).