Previous Page Table of Contents Next Page


Annex 1
GIS analyses for the assessment of fish farming potential in Latin America

by
Fabio Grita
FAO GIS Consultant

1. OVERVIEW

The study was carried out on a SUN SparkStation 10, using a geographical information system (ARC, Version 7.0.3, ESRI, Redlands, CA, USA) which has both raster and vector capabilities. This system is able to efficiently store geographically referenced information in a database which includes both digital maps and their attribute files. Different themes are kept separate in the database and recalled when required. Layers are combined using logical conditions and/or mathematical operations according to the criteria of the models.

1.1 INPUTS

Base grid

The study is based on a 5' × 5' resolution grid covering Central and South America. Themes originally stored in vector format, or having a different resolution, were converted to the base grid.

Basic themes

The basic layers used for the assessment of fish farming potential are:

Models

Two models based on multiple criteria analysis were developed for the fish farming potential assessment:

Inputs for the commercial fish farming model are:

Inputs for the subsistence fish farming model are:

Input layers are evaluated in terms of suitability by assigning scores to the pixel values. A standard classification was applied to the layers used by the two models:

4 = Very Suitable (VS)
3 = Suitable (S)
2 = Marginally Suitable (MS)
1 = Unsuitable (U)

Pixel values are therefore re-classified to these codes.

1.2 THE DATABASE

The database was entirely developed under the directory /disk4/faogis4/ffp_pond of the SUN-2. Each theme (precipitation, temperature, soils, etc.) is stored in a separate directory:

        DirectoryGIS layer
ffp_pond/rflRainfall
ffp_pond/solSoil suitability for ponds
ffp_pond/newtmpMin. and max. mean monthly temperature
ffp_pond/popPopulation density
ffp_pond/rdsRoads
ffp_pond/proProtected areas
ffp_pond/wbodiesWater bodies
ffp_pond/wtpWater temperature
ffp_pond/fishSuitability for fish species
ffp_pond/pop_rds2/weight2Urban market potential and proximity
ffp_pond/cptPotential for agricultural by-products
ffp_pond/srdSolar radiation
ffp_pond/wblCumulated water loss
ffp_pond/fgsFarm-gate sales for aquaculture
ffp_pond/evpMean monthly evaporation
ffp_pond/commercialCommercial model
ffp_pond/subsistSmall-scale model
ffp_pond/statistStatistics
ffp_pond/tiffTiff files

The GRID /disk4/faogis4/ffp_pond/SCAMASK was used as a template to standardize grid extensions (GRID command: SETWINDOW /disk4/faogis4/ffp_pond/SCAMASK). All grids consist of 1092 rows and 1020 columns; cell size is 0.08333 (5' × 5').

Grid boundaries in decimal degrees are:

X min =-119.000
X max =  -34.003
Y min =  -57.000
Y max =   33.996

Vector coverages were used as background to prepare the final output maps:

DirectoryCoverage
ffp_pond/cntbndcountry boundaries
ffp_pond/graticulegraticule in latitude and longitude

Other themes, analysed during the study, were subsequently excluded:

1.3 OUTPUTS

In addition to the database, hard copy and TIFF-format maps and statistical tables were produced for the layers listed below.

Constraint maps

Input factor maps

Output factor maps

Crops per year

Yields

Feed requirements

Models

Suitability potential for commercial fish farming

Suitability potential for small-scale fish farming

2. DATABASE LAYERS

2.1 PROTECTED AREAS

Delineation of protected areas in digital format (vector) were available from the International Union for Conservation of Nature and Natural Resources (IUCN) - The World Conservation Union (IUCN, 1992). Those areas were classified as “Wild forest”, “Conservation” and “Additional forest”. They were grouped into a single class and rasterized.

The grid name is /disk4/faogis4/ffp_pond/pro/PROCSA.

2.2 WATER BODIES

They were derived from ARCWORLD 1.3 Million (ESRI, 1992) and rasterized. The grid includes major lakes and rivers which can be detected at 5' resolution.

The grid name is /disk4/faogis4/ffp_pond/wbodies/WATBODIES.

2.3 MEAN MONTHLY AIR TEMPERATURE

Mean maximum and minimum monthly air temperature images at 5' × 5' resolution were provided by the FAO Agrometeorology Group. Temperature data collected from the meteorological stations, were interpolated to generate a surface representing the estimated temperature values of each cell of the grid. The surface values were derived taking into account the temperature of the closest stations and the elevation.

Temperature files, originally in IDA format, were first converted to ASCII using the convert facility provided by IDA software and then imported to GRID using the ARC command ASCIIGRID (See Appendix A1 for conversion details). Twenty-four GRIDs were prepared.

To correct a small difference between the project template grid and the IDA images, the grids were first expanded by 3 cells and then “clipped” using the project template (SCAMASK).

IDA images can only contain integers from 0 to 255. Temperature data were stored in the IDA images using the following formula:

P = 2 * (T + 60)

where T is the temperature value and P is the pixel value

Therefore to re-calculate T (with a precision of 0.5°C):

T = P * 0.5 - 60

The following AML (/disk4/faogis4/ffp_pond/ida/gridproc.aml) automates these steps:

&s file1 = [open list.txt openerr -read]
&if %openerr% ne 0 &then
&return &warning Error opening file.
&s cc := [read %file1 % readerr]
&do &while %readerr% ne 102
%cc%exp = expand(%cc%, 3, file, range.txt)
&s cc : = [read %file1 % readerr]
&end
&s aa [close -all]
setwindow /disk4/faogis4/ffp_pond/scamask
setmask /disk4/faogis4/ffp_pond/scamask
&s file 1 = [open list.txt openerr -read]
&if %openerr% ne 0 &then
&return &warning Error opening file.
&s path /disk4/faogis4/ffp_pond/newtmp
&s cc : = [read %file1 % readerr]
&do &while %readerr% ne 102
%path%/%cc%t = float (%cc %exp * 0.5 - 60)
&s cc : = [read %file1 % readerr]
&end
&s aa [close -all]
setcell /disk4/faogis4/ffp_pond/scamask1
setmask off
&s file1 = [open list.txt openerr -read]
&if %openerr% ne 0 &then
&return &warning Error opening file.
&s cc : = [read %file1% readerr]
&do &while %readerr% ne 102
%path%/%cc% = con(isnull(%path%/%cc%t) = = 1, -99, %path%/%cc%t)
&s cc : = [read %file1% readerr]
&end
min.txt = sample(/disk4/faogis4/ffp_pond/scamask1, %path%/min01, %path%/min02, %path%/min03, %path%/min04, %path%/min05, %path%/min06, %path%/min07, %path%/min08, %path%/min09, %path%/min10, %path%/min11, %path%/min12)
max.txt = sample(/disk4/faogis4/ffp_pond/scamask1, %path%/max01, %path%/max02, %path%/max03, %path%/max04, %path%/max05, %path%/max06, %path%/max07, %path%/max08, %path%/max09, %path%/max10, %path%/max11, %path%/max12)
&label end
&s aa [close -all]
&return

Grid names: /disk4/faogis4/ffp_pond//newtmp/MAX01…MAX12 and MIN01…MIN12.

2.4 MEAN MONTHLY RAINFALL

The source data were IDRISI binary raster files from J.D. Corbett, CIMMYT, Mexico, at 5' × 5' cell resolution.

The procedure to import these files into GRID is similar to the one described for the temperature data. IDRISI is, in fact, able to convert binary images to ASCII.

Grid names: /disk4/faogis4/ffp_pond/rfl/RFLCSA_1,RFLCSA_2 .....RFLCSA_12.

2.5 ROADS

The road network was derived from the Digital Chart of the World (DCW). Road coverage from ArcWorld, considered at an earlier stage, was excluded because it was incomplete for various countries, such as Argentina, Chile, Paraguay, etc. The DCW road network is an ARC/INFO coverage that had to be rasterized. It appears very dense at the resolution of the study but it was not possible to extract a subset of roads of different quality. DCW roads, in fact, are not properly classified since most of them fall within a single road class. In addition, a sharp (and unrealistic) change of class in the northern part of the South American continent coincides with the edges of map tiles. It seems to be an error in the road classification rather than a real change of road type. Therefore the “road type” parameter was not considered in the study and all roads were assumed to be motorable. A unique identifier was assigned to the pixels containing roads. They were classified as “1” while NODATA was assigned to other land.

Coverage name: /disk4/faogis4/ffp_pond/rds/RDSLINE3_CSA

Grid name: /disk4/faogis4/ffp_pond/rds/RDSGRD

2.6 POPULATION DENSITY

This layer was provided by NCGIA from the University of California at Santa Barbara. It is a GRID produced as a result of town interpolation. The algorithm used to generate the surface also takes into account the total population of the countries and the number of people living in the 2nd level administrative districts. The grid expresses population density in persons/km2.

The grid name is: /disk4/faogis4/ffp_pond/pop/DENSSMOO_CSA.

2.7 WATER TEMPERATURE

Mean monthly water temperature was calculated using 2 programs (DATAIO.EXE and WATEMP.EXE) written by S. Nath of Oregon State University. The programs require data in ASCII format, and therefore mean monthly (air) temperature grids had to be exported to ASCII files. These files were processed and the output water temperature file was converted to a grid (the procedure is described in Appendix A2).

The grid names are: /disk4/faogis4/ffp_pond/wtp/WATMP1....WATMP12

2.8 SOIL AND TERRAIN SUITABILITY FOR PONDS

This was derived from the rasterized Soil Map of the World at 1:5 000 000 scale produced by the FAO Land and Water Development Division (AGLS). This map, originally in IDRISI format, was converted to GRID (grid name: /disk4/faogis4/ffp_pond/sol/SMU_CSA) assigning the soil mapping unit codes to the pixel values.

Suitability values were calculated by F. Nachtergaele (AGLS) for each soil mapping unit and expressed in percentages of S1 (Very suitable), S2 (Suitable) and NS (Not suitable) of the mapping unit area. The evaluation of the soil suitability for ponds of the mapping units was carried out weighting S1 by twice its value. For example, if S1 = 65 and S2 = 23, the final score is: Score = (2 * 65) + 23 = 153; values range from 0 to 200. A grid (grid name: /disk4/faogis4/ffp_pond/sol/SOLSUIT2) was created using the score values. These values were classified as follows:

200 - 141=Very Suitable
140 - 21=Suitable
20 - 1=Marginally Suitable
<1=Unsuitable

The grid name is: /disk4/faogis4/ffp_pond/sol/SOLSUIT2

2.9 POTENTIAL FOR AGRICULTURAL BY-PRODUCTS

This layer was produced by linking the digital map of the Agro-ecological Zones (FAO World Soil Resources Report, No. 48, 1978) to 10 land classes defined to estimate the agricultural potential in each zone (FAO, 1995). Those classes were provided by the International Institute for Applied Systems Analysis, Laxenburg (IIASA).

The 10 land classes were defined as described below.

Productive land

AT2: Moist semi-arid (LGP 120–179 days; >50% of the area Very Suitable + Suitable land)

AT3: Sub-humid (LGP 180–269 days; >50% of the area Very Suitable + Suitable land)

AT4: Humid (LGP 270–365 days; >50% of the area Very Suitable + Suitable land)

AT6: Fluvisols and gleysols (Naturally flooded land (NFL); >50% of the area Very Suitable + Suitable land)

Marginally productive land

AT1: Dry semi-arid (LGP 75–119 days; >50% of the area Very Suitable + Suitable land + Marginally Suitable land)

AT5: Moist semi-arid, sub-humid and humid (LGP 120–365 days; >50% of the area Marginally Suitable land)

AT7: Fluvisols and gleysols (NFL); >50% of the area Marginally suitable land)

Unproductive land

NS1: Partly suitable (LGP 75–365 days or NFL; 20–50% of the area Very Suitable + Suitable land + Marginally Suitable land)

NS2: Mostly Unsuitable (LGP 75–365 days or NFL; 0–20% of the area Very Suitable + Suitable land + Marginally Suitable land)

NS3: Unsuitable

The classes were expressed in percentage of the areas of the agro-ecological zones, and the final classification was based on 2 factors: LGP and productivity. The score system was:

LGP:
4 = 270–365 days; 3 = 180–269 days; 2 = 120–179 days; 1 = <120 days.

Productivity:
4 = predominantly productive land
3 = predominantly marginally productive land
2 = predominantly unproductive land
1 = unsuitable

ClassLGP scoreProductivity scoreCombination
AT2248
AT33412
AT44416
AT6248
AT1339
AT5339
AT7236
NS12.525
NS22.525
NS3111

LGP and productivity scores were aggregated into 4 classes as follows:

Combination rangeClassClass meaning
16 - 104Very suitable
9 - 73Suitable
6 - 32Moderately suitable
2 - 11Unsuitable

Those class scores were finally assigned to the cells of the grid.

Grid name: /disk4/faogis4/ffp_pond/cpt/CROPPOT_CSA

2.10 SOLAR RADIATION

Solar radiation (sr) is an estimate of the energy available at the land surface, which is the primary factor influencing evaporation. It can be derived from the sunset hour angle (in radians) sh and the solar declination (in radians) sd.

The sh factor is given by:

sh = arccos(-tan(latitude)*tan(sd))

and sd by:

sd = 0.4093 * sin((2¶ * sJ / 365) - 1.405)

where: J is the Julian day number.

In GRID, the factor sh was calculated for each month as follows:

January:omega1grd = acos(- tan(CSAMLATGRD / DEG) * tan(-0.36573))
February:omega2grd = acos(- tan(CSAMLATGRD / DEG) * tan(-0.2361))
March:omega3grd = acos(- tan(CSAMLATGRD / DEG) * tan(-0.04598))
April:omega4grd = acos(- tan(CSAMLATGRD / DEG) * tan(0.161754))
May:omega5grd = acos(- tan(CSAMLATGRD / DEG) * tan(0.325704))
June:omega6grd = acos(- tan(CSAMLATGRD / DEG) * tan(0.402342))
July:omega7grd = acos(- tan(CSAMLATGRD / DEG) * tan(0.370068))
August:omega8grd = acos(- tan(CSAMLATGRD / DEG) * tan(0.235586))
September:omega9grd = acos(- tan(CSAMLATGRD / DEG) * tan(0.039089))
October:omega10grd = acos(- tan(CSAMLATGRD / DEG) * tan(-0.16799))
November:omega11grd = acos(- tan(CSAMLATGRD / DEG) * tan(-0.33003))
December:omega12grd = acos(- tan(CSAMLATGRD / DEG) * tan(-0.40274))

CSAMLATGRD is a grid containing the latitude value of each cell.

Solar radiation is expressed in mm/day because the formula calculates sr as equivalent potential evaporation. It is given by:

sr = 15.392 * dr (sh * sin(latitude) * sin(sd) + cos(latitude) * cos(sd) * sin(sh))

where: dr is the relative distance between the earth and the sun, obtained from
dr = 1 + 0.033 cos(2p * J / 365)

The GRID calculation is as follows:

Jan: so_1grd = 15.392 * 1.031381 * ((omega1grd * sin(CSAMLATGRD / DEG) * [sin -0.36573]) + (cos(CSAMLATGRD / DEG) * [cos -0.36573] * sin(omega1grd)))

Feb: so_2grd = 15.392 * 1.023159 * ((omega2grd * sin(CSAMLATGRD / DEG) * [sin -0.2361]) + (cos(CSAMLATGRD / DEG) * [cos -0.2361] * sin(omega2grd)))

March: so_3grd = 15.392 * 1.009004 * ((omega3grd * sin(CSAMLATGRD / DEG) * [sin -0.04598]) + (cos(CSAMLATGRD / DEG) * [cos -0.04598] * sin(omega3grd)))

April: so_4grd = 15.392 * 0.977291 * ((omega4grd * sin(CSAMLATGRD / DEG) * [sin 0.161754]) + (cos(CSAMLATGRD / DEG) * [cos 0.161754] * sin(omega4grd)))

May: so_5grd = 15.392 * 0.977291 * ((omega5grd * sin(CSAMLATGRD / DEG) * [sin 0.325704]) + (cos(CSAMLATGRD / DEG) * [cos 0.325704] * sin(omega5grd)))

June: so_6grd = 15.392 * 0.968595 * ((omega6grd * sin(CSAMLATGRD / DEG) * [sin 0.402342]) + (cos(CSAMLATGRD / DEG) * [cos 0.402342] * sin(omega6grd)))

July: so_7grd = 15.392 * 0.9684 * ((omega7grd * sin(CSAMLATGRD / DEG) * [sin 0.370068]) + (cos(CSAMLATGRD / DEG) * [cos 0.370068] * sin(omega7grd)))

Aug: so_8grd = 15.392 * 0.976892 * ((omega8grd * sin(CSAMLATGRD / DEG) * [sin 0.235586]) + (cos(CSAMLATGRD / DEG) * [cos 0.235586] * sin(omega8grd)))

Sept: so_9grd = 15.392 * 0.991531 * ((omega9grd * sin(CSAMLATGRD / DEG) * [sin 0.039089]) + (cos(CSAMLATGRD / DEG) * [cos 0.039089] * sin(omega9grd)))

Oct: so_10grd = 15.392 * 1.008463 * ((omega10grd * sin(CSAMLATGRD / DEG) * [sin -0.16799]) + (cos(CSAMLATGRD / DEG) * [cos -0.16799] * sin(omega10grd)))

Nov: so_11grd = 15.392 * 1.023126 * ((omega11grd * sin(CSAMLATGRD / DEG) * [sin -0.33003]) + (cos(CSAMLATGRD / DEG) * [cos -0.33003] * sin(omega11grd)))

Dec: so_12grd = 15.392 * 1.031529 * ((omega12grd * sin(CSAMLATGRD / DEG) * [sin -0.40274]) + (cos(CSAMLATGRD / DEG) * [cos -0.40274] * sin(omega12grd)))

2.11 URBAN MARKET POTENTIAL AND PROXIMITY

This layer provides a preliminary evaluation of the market potential for aquaculture. It is based on urban locations and motorable roads and it aims to identify the extent and the location of areas influenced by a certain marketing centre, taking into account the travelling time and the importance of the urban market (in terms of the number of people living in the urban area).

Urban centres

Locations of urban centres were provided by ArcWorld 1:3M and the roads from the DCW (see Section 2.5). ArcWorld's urban centres are represented by points, consequently even large towns do not have an area. Points are assumed to be located at the centre of the towns. Since one of the objectives is to analyse proximity to the potential market, the undefined town extent is not a restriction as the fish market(s) could be located in any part of the town. It was important to classify the towns for their marketing potentials according to their population size. ArcWorld does not provide the actual urban population, but subdivides them into 7 ranges:

1 = > 5 000 000
2 = 1 000 000 – 5 000 000
3 = 500 000 – 1 000 000
4 = 250 000 – 500 000
5 = 100 000 – 250 000
6 = 50 000 – 100 000
7 = < 50 000

Those classes were re-grouped into 4 classes:

4 = Classes 1 and 2
3 = Classes 3 and 4
2 = Classes 5 and 6
1 = Class 7

Towns were rasterized using the GRID command POINTGRID.

Grid name: /disk4/faogis4/ffp_pond/pop_rds2/CITY_ONLY

Roads

The road network was rasterized as described in Section 2.5.

The market potential analysis calculates the least-cost path from any cell location to the closest town in real distances along the roads. Subsequently it considers the importance of the market centres as an additional factor, and modifies the itineraries accordingly; finally, it classifies the areas in the standard 4 classes.

Two assumptions were made:

The procedure used to prepare the market potential and proximity analysis is described in Appendix A3.

2.12 FARM-GATE SALES

The limiting factor considered in evaluating the potential of the local market was the density of population. Urban land was considered not suitable because of the lack of space and high land cost for fish farms. The limit of the Urban/Not-Urban land was fixed to 300 persons/km2. The remaining land was classified as follows, on the basis of persons/km2:

299 - 150Very Suitable
149 - 25Suitable
24 - 1Marginally Suitable
0 and > 299Unsuitable

The grid name is: /disk4/faogis4/ffp_pond/fgs/FGSCSA

2.13 FISH YIELD MODEL

The physical suitability of the considered species is evaluated by a program called FISHGRO.EXE which requires as input the mean monthly temperature file. This program matches water temperature of each cell location with the fish requirement database (SPECIES.DB). The output file contains the following data:

Longitude of the cell
Latitude of the cell
Number of crops per year
Yield in kg/ha/year
Feed requirements in kg/ha/year

Various scenarios can be analysed using this program. The user is in fact asked to specify a number of parameters which will affect the results of the simulation. These parameters are:

Feeding level (%)
Stocking weight (g)
Harvest weight (g)
Stocking density (fish/m2)

The program IMPOINT2.BAS (see Appendix A2) - already used to create water temperature grids - is used to generate grids for the three outputs of the program FISHGRO.EXE (number of crops per year; yield; feed requirements).

Among all possible parameter combinations, the following scenarios were selected for the simulations:

Group 1: Feeding levels 75% and 50%

SpeciesStocking weight
(g)
Harvest weight
(g)
Stocking density
(fish/m2)
Tilapia503003
506001.5
Tambaqui506001.5
501 0000.9
Pacu506001.5
501 0000.9
Carp1006001.25
1001 5000.5

Group 2: Small-scale fish farming (no feeding). CSC of 75 g/m2 assumed for both species

SpeciesStocking weight
(g)
Harvest weight
(g)
Stocking density
(fish/m2)
Tilapia251502
Carp503501

2.14 WATER BALANCE

The water balance for ponds was calculated by estimating the deficit between precipitation and combined evaporation + seepage.

Evaporation

Evaporation (ET) was calculated using the Hargreaves formula, which expresses ET in mm/day:

ET = 0.00126 * So * √(Tmax - Tmin) * [1.8 * ((Tmax + Tmin)/2) + 32]

where T is the air temperature and So is the solar radiation in mm/day

For the total evaporation by month the formula has to be multiplied by the number of days in the considered month. Thus the GRID calculation for January is:

el_hargr = 31 * 0.00126 * so_lgrd * sqrt(setnull(../newtmp/max01 eq -99, ../newtmp/max01) - setnull(../newtmp/min01 eq -99, ../newtmp/min01)) * (1.8 * ((setnull(../newtmp/max01 eq -99, ../newtmp/max01) + setnull(../newtmp/min01 eq -99, ../newtmp/min01)) / 2) + 32),

where 31 is the number of days in January; so_lgrd is the solar radiation grid for January (mm/day); and max01 and min01 are the mean monthly maximum and minimum temperature grids of January.

Seepage
Seepage was considered to be a constant of 80 mm/month.

Preparation of the total deficit
Evaporation + Seepage = Total deficit
Water balance = Precipitation - Total deficit

Two correction factors were introduced:

The calculation is the following:

totd_1n = setnull(rflcsa_1 = = -99, rflcsa_1 * 1.1)/E1_hargr2 * 1.15) - 80
totdef_1n = abs(con(totd_1n > 0,0,con(totd_1n - int(totd_1n) < .5, int(totd_1n) - 1, int(totd_1n))))
which gives the deficit for January.

Preparation of the total annual deficit

It is obtained by summing up the deficits of each of the 12 months:
totdef_ann2 = totdef_1n + totdef_2n + totdef_3n + totdef_4n + totdef_5n + totdef_6n + totdef_7n + totdef_8n + totdef_9n + totdef_10n + totdef_11n + totdef_12n

3. THE COMMERCIAL AND SMALL-SCALE MODELS

The input parameters considered for the two models are listed in Section 1.1.

Commercial

This grid was produced using the following formula:

constrgrd3 = (../pop_rds2/weight2/mktgrd_sl * 0.4944) + (../wb1/wb1_sl * 0.2739) + (../sol/sol_sl * 0.1290) + (../cpt/croppot_csa * 0.0457) + (../fgs/fgsgrd * 0.057)

where: mktgrd_sl is the market size and proximity grid; wbl_sl is the water balance grid; sol_sl is the soil and terrain suitability for ponds grid; fgsgrd is the farm-gate sales grid; and croppot_csa is the agricultural by-products grid.

This grid is combined with the fish yield results (grids contained in the directory /disk4/faogis4/ffp_pond/fish) using /disk4/faogis4/ffp_pond/commercial/model.aml. This AML first checks the maximum value of the yield for fish species grid to be analysed and then subdivides it into 4 equal-interval classes (quarters), assigning the number 1 to the lowest range and 4 to the highest. The program produces a temporary grid storing those classes in the VALUE. This grid is added to the commercial model grid in which the VALUE is multiplied by 10. The VALUE of the output grid is a two-digit integer in which the first digit indicates the class of the commercial model and the second the class of yield in terms of crops/y for each fish species.

Small-scale

The formula is the following:

constrgrd4 = (../wbl/wbl_sl * 0.5095) + (../sol/sol_sl * 0.1571) + (../cpt/croppot_csa * 0.1948) + (../fgs/fgsgrd * 0.1386)

The AML to combine this grid with the physical suitability for fish species grids is /disk4/faogis4/ffp_pond/subsist/model.aml.

4. STATISTICS

The result grids were converted to an equal-area projection (Flat Polar Quartic) to calculate the areas covered by each class in each country of Latin America. Statistics were produced for the grids mentioned in Section 1.3.

The grid COUNTRYGRD_PQ contains the country boundaries. The VALUE is the country code and the relevant country name is contained in the attribute (VAT) file. This grid was overlaid on the various themes in order to produce the statistics by country.

In general, these AMLs project the original grids to Flat Polar Quartic projection according to the parameters specified in the file llpolq.prj; combine the new grid with the one containing the country boundaries; add the item AREA to the attribute file and calculate the areas of each class occurring in the countries by multiplying the number of cells (COUNT) by the square of the cell size in kilometres (9.831174 * 9.831174). The country code, the country name, the class and the area are converted to an ASCII file.

The AMLs dosmld.aml, dospar.aml and dosfsh.aml convert those ASCII files from UNIX to DOS.

The directories that contain the statistical results are:

/disk4/faogis4/ffp_pond/statist/commcommercial model
/disk4/faogis4/ffp_pond/statist/subssmall-scale model
/disk4/faogis4/ffp_pond/statist/fishyield of fish species
/disk4/faogis4/ffp_pond/statist/paraminput parameters
/disk4/faogis4/ffp_pond/statist/statdosASCII files converted to DOS format (all)

4.1 YIELD STATISTICS OF FISH SPECIES

The following AML (/disk4/faogis4/ffp_pond/statist/statsim.aml) produces the statistics on yield for the considered fish species. This AML first checks the maximum value of the grid to be analysed and then subdivides it into 4 equal-interval classes (quarters) assigning the number 1 to the lowest range and 4 to the highest. The program produces a temporary grid storing those classes in the VALUE. Then the grid is projected to the equal area projection and combined with the country boundaries.

&setvar ww = [close -all]
&setvar file1 = [open fish/gridlist.txt open_ok -read]
&if %open_ok% ne 0 &then
&return &warning Error opening file.
&label loop
&setvar var1 = [read %file1 % read_ok]
&if %read_ok% = 102 &then
&goto end
&s pathi ../fish
&s patho fish
&s tt [exists %patho%/%var1%_pq -GRID]
&s tt1 [exists %patho%/st_%var1% -GRID]
&if %tt% eq. TRUE. &then
kill %patho%/%var1%_pq all
&if %tt1% eq. TRUE. &then
kill %patho%/st_%var1%all
&describe %pathi%/%var1%
&s max %grd$zmax%
&type %max%
&s cc 1
&s file3 [open s11.rem openerr -write]
&if %openerr% <> 0 &then
&return &warning Error opening file.
&label calc
&if %cc% le 4 &then
&do
&s range [calc (%max% / 4) * %cc% + 0.05]
&s range [substr %range% 1 3]
&if %cc% eq 4 &then
&s range [calc %range% + 1]
&s string [quote %range% : %cc%]
&s ww = [write %file3% %string%]
&s cc [calc %cc% + 1]
&goto calc
&end
&s dd [close %file3%]
grid_sl = slice(../fish/%var1 %, table, sll.rem)
&sys del sll.rem
%patho%/%var1%_pq = project(grid_sl, llpolq.prj, nearest)
%patho%/st_%var1% = combine(countrygrd_pq, %patho%/%var1%_pq)
kill grid_sl all
&sys arc joinitem %patho%/st_%var1%.vat cntlut.dat %patho%/st_%var1%. vat countrygrd_pq countrygrd_pq
&sys arc additem %patho%/st_%var1%.vat %patho%/st_%var1%. vat area 10 10 i
q
w %patho%
tables
sel st_%var1%.vat
calculate area = count * (9.831174 * 9.831174)
sort countrygrd_pq %var1%_pq
&s out1 [substr %var1% 1 2]
&s out2 [substr %var1% 4 2]
&s out3 [substr %var1% 7 4]
unload %out1%%out2%%out3%u.fsh countrygrd_pq entry_name %var1%_pq area delimited init
q
w ..
grid
&goto loop
&label end
&s dd [close -all]
&return

4.2 STATISTICS OF THE INPUT PARAMETERS AND MODELS

The AML (/disk4/faogis4/ffp_pond/statist/statpar.aml) produces the statistics for the input parameters of the commercial and small-scale models. Because those grids are already classified as 1, 2, 3 and 4, the program does not need to reclassify the grids.

4.3 STATISTICS OF THE RESULTS OF THE MODELS

The AML (/disk4/faogis4/ffp_pond/statist/statmld.aml) produces the statistics for the results of the combination of the commercial and small-scale models with the yield for the fish species. The grids are projected and combined with the country boundaries.

5. FILE NAMES

Grid and file names were coded in such a way that names portray the essential information about the contents of the grids.

5.1 MODELS AND STATISTICS

Grids  
DigitContentMeaning
Digits 1 – 3:md_Model
st_Statistics
Digits 4 – 5clTambaqui (Colossoma)
crCarp
pcPacu
tlTilapia
Digits 6cCrop/year
yYield
fFeed requirements
Digits 7 – 800Low feeding level (CSC 0.075)
50Intermediate feeding level
75High feeding level
Digit 9-Separator
Digits 10 – 130300Harvest size (0300, 0600, 1000, 1500)

DOS files  
DigitsContentMeaning
Digits 1 – 2clTambaqui (Colossoma)
crCarp
pcPacu
tlTilapia
Digits 3 – 400Low feeding level (CSC 0.075)
50Intermediate feeding level
75High feeding level
Digits 5 – 80300Harvest size (0300, 0600, 1000, 1500)
Extension.fshPhysical suitability for fish species
.mldModel results
.parParameters

5.2 YIELD OF FISH SPECIES

Grids  
DigitsContentMeaning
Digits 1 – 2clTambaqui (Colossoma)
crCarp
pcPacu
tlTilapia
Digits 3cCrop/year
yYield
fFeed requirements
Digits 4 – 500Low feeding level (CSC 0.075)
50Intermediate feeding level
75High feeding level
Digits 6-Separator
Digits 7 – 100300Harvest size (0300, 0600, 1000, 1500)

6. BIBLIOGRAPHY

IUCN. 1992. Protected Areas of the World. ICUN Publications Services Unit.

ESRI. 1992. ArcWorld 1:3M - Edition 1. ESRI

FAO. 1995. World Agriculture: Towards 2010. Rome: FAO; and John Wiley.

FAO. 1978. Report on the Agro-Ecological Zones Project. [FAO] World Soil resources Report No. 48, 1978.

Appendix A1
CONVERSION OF IDA TO GRID

IDA software is installed in the directory /disk4/faogis4/ffp_pond/ida. The program must be executed from a PC. Temperature images is converted to GRID using the procedure described below.

A. Type cd\faogis4\ffp_pond\ida (to move to the IDA directory)
B. Type ida42 (to start the IDA program)
C. Select Process from the menu
D. Select Convert from the menu
E. Select ASCII from the menu
F. Give the name of the Input file (e.g., M:/faogis4/ffp_pond/ida/02mintot.img)
G. Give the name of the Output file (e.g., M:/faogis4/ffp_pond/newtmp/02min.txt)

The output file is a space-delimited ASCII file containing, in each line, the pixel values of one row of the original image. The number of lines is, therefore, equal to the number of rows of the image. In order to convert this file to a GRID, it has to be re-converted from DOS to UNIX format; then a header needs to be added at the beginning of the file. The header contains the following lines, stored in the file header.txt of the directory /disk4/faogis4/ffp_pond/ida:

ncols1081(Number of columns of the image)
nrows1141(Number of rows of the image)
xllcenter-120.04(Minimum X coordinate)
yllcenter-60.04(Minimum Y coordinate)
cellsize0.083333(Cell resolution)
NODATA_value255(Value of the NODATA)

The above operations are executed by the AML /disk4/faogis4/ffp_pond/ida/creagrid.aml:
&s file1 = [open list.txt openerr -read]
&if %openerr% ne 0 &then
  &return &warning Error opening file.

&s cc : = [read %file1% readerr]
&do &while %readerr% ne 102
  dos2unix %cc%.txt %cc%u.txt
  cat header.txt %cc%u.txt >%cc%a.txt
  asciigrid %cc%a.txt %cc% int
  del %cc%.txt
  del %cc%u.txt
  &s cc : = [read %file1% readerr]
&end
&label end
&s aa [close -all]
&return

The file list.txt contains the list of the files to be converted to grids.

Appendix A2
MEAN MONTHLY WATER TEMPERATURE PROCEDURE

The ASCII files prepared by the AML gridproc.aml (see Section 2.3 and Appendix A1) contain cell locations in longitude and latitude and the relevant temperature values. The record contains the following items:

Mask value (not used in the study)
Longitude of the cell
Latitude of the cell
Value of the first grid
Value of the second grid
. . . . . .
. . . . . .
Value of the last grid

Two files are produced:

MIN.TXTminimum temperature data
MAX.TXTmaximum temperature data

An extract of the output file is illustrated below:

-99 -80.626535 -1.960535 29.7 29.5 30 30.2 29.6 28.3 28.1 28.5 29.2 29.1 28.9 29.8
-99 -80.543205 -1.960535 29 28.8 29.4 29.6 28.9 27.8 27.6 28 28.8 28.6 28.4 29.2
-99 -80.459875 -1.960535 29.5 29.3 29.9 30.1 29.4 28.2 28 28.4 29.2 29 28.9 29.7
-99 -80.376545 -1.960535 30 29.8 30.4 30.6 29.9 28.7 28.4 28.8 29.6 29.5 29.3 30.2
-99 -80.293215 -1.960535 30.3 30.1 30.7 30.9 30.2 28.9 28.6 29 29.9 29.8 29.7 30.6
-99 -80.209885 -1.960535 30.6 30.4 31 31.3 30.5 29.2 28.9 29.2 30.2 30.1 29.9 30.9

The procedure to produce the temperature grids is indicated below:

1. - RUN the program MODICSA.BAS to modify the input file to create a comma-delimited ASCII file. The program MODICSA.BAS creates two output files: MINCSAF.TXT and MAXCSAF.TXT.

The output format is:

-80.626535,-1.960535,29.7,29.5,30.0,30.2,29.6,28.3,28.1,28.5,29.2,29.1,28.9,29.8
-80.543205,-1.960535,29.0,28.8,29.4,29.6,28.9,27.8,27.6,28.0,28.8,28.6,28.4,29.2
-80.459875,-1.960535,29.5,29.3,29.9,30.1,29.4,28.2,28.0,28.4,29.2,29.0,28.9,29.7
-80.376545,-1.960535,30.0,29.8,30.4,30.6,29.9,28.7,28.4,28.8,29.6,29.5,29.3,30.2
-80.293215,-1.960535,30.3,30.1,30.7,30.9,30.2,28.9,28.6,29.0,29.9,29.8,29.7,30.6
-80.209885,-1.960535,30.6,30.4,31.0,31.3,30.5,29.2,28.9,29.2,30.2,30.1,29.9,30.9

Mask values are not recorded in the output.

2. - RUN the program DATAIO.EXE to calculate the mean monthly air temperature. DATAIO.EXE takes the input files MINCSAF.TXT and MAXCSAF.TXT to create MEANCSA.TXT (note: file names are user-defined programs that can accept any name).

3. - RUN the program WATEMP.EXE to calculate the mean monthly water temperature. WATEMP.EXE takes in input files MEANCSA.TXT and creates WATEMP.TXT. The output file format is identical to that of the input file.

4. - RUN the QBASIC program IMPOINT2.BAS. It changes the output of WATEMP.EXE to the format required by the ARC command ASCIIGRID. The first part of the program checks the size of the GRID and the order of the cells. A cell out of sequence causes a program interruption and an error message. The second part checks the number of variables included in the input file and creates an equal number of output files. It also determines the number of rows and columns of the GRIDs and produces the header (see ARC/INFO ASCIIGRID syntax) indicating the items listed below:

Number of columns
Number of rows
Cell size
X coordinates of the first cell
Y coordinates of the first cell
value of NODATA

All parameters are determined by the program itself, except for the cell size and NODATA value. Default values are:

Cell size = 0.08333
NODATA value = -99

If those values need to be changed, new values must be inserted in the program (which can be edited using any available text editor) in the box indicated below:

REM       PARAMETERS UPDATED BY THE USER
infile$ = “m:/faogis4/ffp_pond/newtmp/WATEMP.TXT”
cell$ = “0.08333”
nodata$ = “-99”
REM
Input file name and location can also be modified.
Output files should be converted to UNIX format (DOS2UNIX command) before running ASCIIGRID.

Appendix A3
PROCEDURE FOR URBAN MARKET SIZE AND PROXIMITY

This procedure uses the AML /disk4/faogis4/ffp_pond/pop_rds2/weight2/mktcalc.aml.

A. Define the study area (SETMASK) and its extent (SETWINDOW):

setwindow /disk4/faogis4/ffp_pond/scamask
setmask /disk4/faogis4/ffp_pond/scamask

B. Create a grid for each of the 4 urban classes:

city1 = select(city_only, ‘value eq 1’)
city2 = select(city_only, ‘value eq 2’)
city3 = select(city_only, ‘value eq 3’)
city4 = select(city_only, ‘value eq 4’)

The 4 types of towns were analysed separately and then recombined at the end of the process.

C. Run the COSTDISTANCE command. This command calculates the least accumulative cost distance from each cell to the towns. In other words it finds, for each cell of the grid, the best (and most convenient) route to go to the town. It is not necessarily the closest town, but it is the easiest to reach:

dist 1_temp = costdistance(../city 1, ../rdsgrd_14, back11)

RDSGRD_14 is the cost grid. It represents the time cost and it is assumed that the time required to travel from one cell to another in absence of main roads is 4 times longer than the time needed on the main road. The cost-distance analysis is explained in the ARC/INFO manual.

BACKL1 is a grid containing the direction of the paths on a cell by cell basis. This grid allows reconstruction of the various paths to the towns. Directions are indicated with numbers from 0 to 8, indicating the next neighbouring cell along the least accumulative cost path from any cell of the grid to reach the town. If the path is to pass into the right neighbour, the cell will be assigned the value 1, with 2 for the lower right diagonal cell, and so on, continuing clockwise. The value 0 is reserved for the cells representing the towns.

D. Change the values of the grid back11 into the corresponding degrees. North is indicated by 360 (which is equivalent to 0).

dire1_deg = con(back11 = = 1, 90, back11 = = 2, 135, back11 = = 3, 180, back11 = = 4, 225, back11 = = 5, 270, back11 = = 6, 315, back11 = = 7, 360, back11 = = 8, 45, back11)

E. At this point is possible to calculate the real distances from the towns along the paths. Since the grids are in geographical coordinates (latitude and longitude in decimal degrees), the dist1_temp grid can not be used to calculate the distances.

Real distances can be derived from geographical distances considering that the distance between 2 points varies with the cosine of the latitude if the direction is east-west, and it is constant if the direction is north-south. Diagonal paths have a length in between the two (E-W and N-S) which vary with the sins of the direction. The formula is:

length1_rd1 = 111 * abs(sqrt(0.08333) * (sqr(sin(dire1_deg / deg )) * cos(/disk4/faogis4/ffp_pond/srd/csamlatgrd div deg) + sqr(cos(dire1_deg / deg)))))

where: 111 is the length of 1 degree at the Equator expressed in km
0.08333 is the cell size in decimal degrees
deg is a variable built in GRID to convert from radians to degrees
csamlatgrd is a grid containing the latitude value of each cell

F. Real distance grid (length1_rd1) is then multiplied by a grid where pixels containing roads are assigned the value 1, while value 4 indicates pixels without roads. This grid is used to give a weight to the road grid in such a way that areas without roads have a weight (i.e., cost) 4 times higher than the others.

length1_rd2 = length1_rd1 * rdsgrd_14

G. The grid length1_rd2 provides weighted distances calculated from one cell to the other. In order to obtain the least accumulative cost paths in real distances, a new cost-distance has to be re-calculated. The result must be divided by the cell size (0.08333) to keep the already-calculated distances.

dist1_fin = costdistance(../city 1, length1_rd2) / 0.08333

H. Distances in hours (travelling time) are obtained by dividing the least-accumulative-cost paths (dist1_fin) by 90, reflecting an average speed of 90 km/h on the road. Since the road grid is weighted to 4 areas without roads, an average speed of 90/4 = 22.5k m/h is assumed outside the main roads (using graded roads or tracks).

dist1_hour = dist1_fin / 90

I. The same operations (i.e., C to H above) are repeated for the other 3 classes of towns.

dist2_temp = costdistance(../city2, ../rdsgrd_14, back12)
dire2_deg = con(back12 = = 1, 90, back12 = = 2, 135, back12 = = 3, 180, back12 = = 4, 225, back12 = = 5, 270, back12 = = 6, 315, back12 = = 7, 360, back12 = = 8, 45, back12)
length2_rd1 = 111 * abs(sqrt(sqr(0.08333) * (sqr(sin(dire2_deg div deg )) * cos(/disk4/faogis4/ffp_pond/srd/csamlatgrd div deg) + sqr(cos(dire2_deg div deg)))))
length2_rd2 = length2_rd1 * ../rdsgrd_14
dist2_fin = costdistance(../city2, length2_rd2) / 0.08333
dist2_hour = dist2_fin / 90

dist3_temp = costdistance(../city3, ../rdsgrd_14, back13)
dire3_deg = con(back13 = = 1, 90, back13 = = 2, 135, back13 = = 3, 180, back13 = = 4, 225, back13 = = 5, 270, back13 = = 6, 315, back13 = = 7, 360, back13 = = 8, 45, back13)
length3_rd1 = 111 * abs(sqrt(sqr(0.08333) * (sqr(sin(dire3_deg div deg )) * cos(/disk4/faogis4/ffp_pond/srd/csamlatgrd div deg) + sqr(cos(dire3_deg div deg)))))
length3_rd2 = length3_rd1 * ../rdsgrd_14
dist3_fin = costdistance(../city3, length3_rd2) / 0.08333
dist3_hour = dist3_fin / 90

dist4_temp = costdistance(../city4, ../rdsgrd_14, back14)
dire4_deg = con(back14 = = 1, 90, back14 = = 2, 135, back14 = = 3, 180, back14 = = 4, 225, back14 = = 5, 270, back14 = = 6, 315, back14 = = 7, 360, back14 = = 8, 45, back14)
length4_rd1 = 111 * abs(sqrt(sqr(0.08333) * (sqr(sin(dire4_deg div deg )) * cos(/disk4/faogis4/ffp_pond/srd/csamlatgrd div deg) + sqr(cos(dire4_deg div deg)))))
length4_rd2 = length4_rd1 * ../rdsgrd_14
dist4_fin = costdistance(../city4, length4_rd2) / 0.08333
dist4_hour = dist4_fin / 90

J. The next operation limits the suitable areas for commercial fish farming to a travelling time of 6 hours. A value of 9999 is assigned to areas farther away than 6 hours.

dist1_h6 = con(dist1_hour le 6, dist1_hour, 9999)
dist2_h6 = con(dist2_hour le 6, dist2_hour, 9999)
dist3_h6 = con(dist3_hour le 6, dist3_hour, 9999)
dist4_h6 = con(dist4_hour le 6, dist4_hour, 9999)

K. The 9999 value is extended to the whole Central and South America grid (covering unsuitable areas previously indicated with NODATA).

dist1_h6a = con(isnull(dist1_h6) = = 1, 9999, dist1_h6)
dist2_h6a = con(isnull(dist2_h6) = = 1, 9999, dist2_h6)
dist3_h6a = con(isnull(dist3_h6) = = 1, 9999, dist3_h6)
dist4_h6a = con(isnull(dist4_h6) = = 1, 9999, dist4_h6)

L. Finally, the least-accumulative-cost-path grids calculated separately for the 4 classes of towns are multiplied by the town weight and added together.
cost_fin6 = min(dist1_h6a, dist2_h6a * 2, dist3_h6a * 3, dist4_h6a * 4)

M. The area indicated with 9999 is unsuitable.
mktgrd = con(cost_fin6 ge 9999, 9999, cost_fin6)


Previous Page Top of Page Next Page