Skip to content

Introduction

Economical Suitability Analysis Module is the most recent addition to AEZ framework (Figure 12). This module converts AEZ's final crop suitability (a result of the previous 5 modules) into an economic suitability. Additionally, all crops of interest are compared to the umbrella crop (crop with the highest economical potential) in order to indicate and map out its comparative advantage in terms of an attainable net revenue relative to the best available option. For more detailed calculations, refer to Module 6 chapter in National Agro-Economic Zoning for Major Crops in Thailand (NAEZ) report (FAO, 2017a).

Figure: Overview of Module VI: Economic Suitability Alt text


Mandatory Functions

Initialization of M6 Object Class Creation

Firstly, we have to import M6 object class named EconomicSuitability to initiate the mandatory process.

Initializing M6 Object
from pyaez import EconomicSuitability
eco = EconomicSuitability.EconomicSuitability()

Input

Arguments Description Unit Data Format
None - - -

Output

Arguments Description Unit Data Format
None - - -

Crop Economic Data Input

This function allows usres to set up crop-specific parameters for an economic analysis/ The key inputs for Module 5 are the crop yield information which passed through from Module 2 to Module 5 in PyAEZ, market price and the cost of the crop.

This mandatory function can be called multiple times if users want to import multiple crop-specific information. However, at least one crop data should be provided. If users want to analyze comparative economic analysis at least two crop data should be provided.

Import Crop Eco data
eco.addACrop(crop_name, crop_cost, crop_yield, farm_price, yield_map)

Input

Arguments Description Unit Data Format
crop_name Unique ID of a crop. This name will be used later in other function arguments. - String
crop_cost Cost of production for each yield value in crop_yield variable. Currency-based 1D-NumPy Array
crop_yield Yield of the crop. tonnes per hectare. 1D-NumPy Array
farm_price Historical crop price that farmers sell currency unit per tonne 1D-NumPy Array
yield_map Yield map of the crop tonne per hectare 2D-NumPy Array

Output

Arguments Description Unit Data Format
None - - -

Additional Information

  • Value of crop_cost and crop_yield must be corresponding to each other for all elements, i.e., the length of crop_cost and crop_yield must be the same.

  • Both arrays of crop-cost and crop_yield must be arranged in ascending order from left to right.

  • Unit of crop_cost must be currency per hectare.

  • In M6, the currency can be flexible. However, users are warned that for all variables which applies currency must have the same currency names. In case the crop economic data have different currencies, they must be converted into a single currency.

  • In farm_price, the array is used to calculate distribution (mean) of prices. Unit is currency unit per tonne.


Major Functionalities

Net Revenue

This function returns net revenue from the crop identified with crop_name.

Get net revenue
crop_rev = eco.getNetRevenue(crop_name)

Input

Arguments Description Unit Data Format
crop_name Unique crop ID from earlier setting. - String

Output

Arguments Description Unit Data Format
crop_revenue Net revenue of input crop currency per hectare 2D-NumPy Array

Classified Net Revenue

This function returns classified net revenue for the crop crop_name. This classified scheme for crop net revenue is provided in the table below.

This classification is based on identification of minimum and maximum value of net revenue in a given area of interest. The net revenue percentage is delineated between zero percent (minimum net revenue) and 100 (maximum net revenue), and seven classes are divided based on percentage ranges.

Get classified net revenue
crop_rev_class = eco.getClassifiedNetRevenue(crop_name)

Input

Arguments Description Unit Data Format
crop_name Unique crop ID from earlier setting. - String

Output

Arguments Description Unit Data Format
crop_rev_class Classified net revenue of input crop - 2D-NumPy Array

Table: Net Revenue Classification

Pixel Value Net Revenue Class Description
0 Not suitable Net revenue less than 0%
1 Very marginal Net revenue between 0% and 10%
2 Marginal Net revenue between 10% and 20%
3 Moderate Net revenue between 20% and 35%
4 Medium Net revenue between 35% and 50%
5 Good Net revenue between 50% and 63%
6 High Net revenue between 63% and 75%
7 Very high Net revenue greater than 75%

Normalized Net Revenue

This function returns the normalized net revenue for the crop crop_name, which requires at least two crops to be provided in the crop economic data input. This classification checks the net revenues for all crops and select the maximum net revenue value of the crop (known as umbrella crop) and is compared with user-specified crop net revenue to generate normalized net revenue. After normalization, the normalized values are classified to six major classes, providing the comparative performance information of the economic crops.

Get normalized net revenue
crop_rev_norm = eco.getNormalizedNetRevenue(crop_name)

Input

Arguments Description Unit Data Format
crop_name Unique crop ID from earlier setting. - String

Output

Arguments Description Unit Data Format
crop_rev_norm Classified net revenue of input crop - 2D-NumPy Array

Table: Normalized Net Revenue Classification

Pixel Value Normalized Net Revenue Class Description
0 Normalized value less than 0 Not Suitable
1 Normalized value between 0 and 0.2 Marginal
2 Normalized value between 0.2 and 0.4 Moderate
3 Normalized value between 0.4 and 0.6 Fair
4 Normalized value between 0.6 and 0.8 Good
5 Normalized value greater than 0.8 Very Good

__