Category Archives: Fisheries Management

Potential Fishing Zones (PFZs) – too risky for Indian fisheries?


Googling ‘Potential Fishing Zones’ will hit you on several links and most of them (well all) may refer to Indian fisheries. To my knowledge, no other country currently use remotely sensed data to provide fishing locations (on a daily basis) where the fishermen may target to improve their profitability (thus it reduces the time and effort on searching fish shoals). These locations are provided by the INCOIS (Indian National Centre for Ocean Information Services) who use satellite data (for chlorophyll concentrations and sea surface temperature) to map areas of fish aggregations (see the NEWS). The method inherently assume that fish aggregations occur at areas with high phytoplankton density (the probability is high for small pelagic fishes since they directly feed on phytoplanktons, thus skipping many levels of the trophic pyramid; see here). Since 1999, many authors have validated this assumption proving higher Catch Per Unit Effort (CPUE) at PFZs adviced by the INCOIS (see here, here and here).23VJTANHI-W032-_HY_1496501e

Pros and Cons

The PFZ advisory mechanism in India is one of the finest example where other countries could potentially follow because it has a direct impact on the socio-economic status of the fishermen. I highlight this because many criticisms have been raised recently on pumping tax payers money to research areas where no benefits (in short term) are visible to the public. Having said that, there are increasing evidences on declining fish populations all over the world (due to overfishing and possibly the ‘climate change’). In that context, providing advice on PFZs is neither good for the fish population or the fishermen community (unless a high abundance of the fish population exist).

State of Indian fisheries

Based on global definitions, most fish stocks along the Indian coast can be considered as ‘data-limited’ or ‘data poor’ because the information available is limited to a time series of fish landings (note that the landings are not the actual amount of fish harvested from the population because a good proportion is discarded back to sea). Hence a fully quantitative based analysis or stock assessment is not possible to determine whether the fish stock is being underfished, sustainably fished, overfished or collapsed. A few fish stocks have length-frequency data but the analysis is limited to methods described in the FAO technical paper (i.e., Introduction to tropical fish stock assessment by Per Sparre and Venema 1998). However, the reports on fish stock assessments appear every  5-10 year (on an average) which means that the risk to the stock is not monitored in a per annum basis (even though the fish landings are monitored annually). The country also lack expertise (more than the data availability itself) to develop or run the more complex and efficient analytical models (e.g. Integrated size-structured models) that are currently being used for length based fish stock assessments elsewhere. In a nutshell, there is no information on the state of fisheries (underfished, overfished or collapsed) even for the well studied fish stocks along the Indian coast.

PFZs – are they too risky for Indian fisheries?

It is risky to advice the hot fishing spots when the abundance of fish populations are not available. More importantly, the shoal forming pelagic species such as Indian Oil Sardine (Sardinella longiceps) and Indian Mackerel (Rastrelliger kanagurta) are potentially more vulnerable to PFZ implementation as they feed directly on the planktons. These species are short lived and have a recruitment driven fisheries but the Spawning Stock Biomass (the biomass of mature fish in the population) estimates are not available (at least to the public) due to the lack of annual fish stock assessments. Even if they are available, the only regulatory mechanism to control overfishing is the monsoon trawl ban (trawl fishing is closed between June-August for a fixed period of 45 days during the breeding season) but the period of ‘closed season’ do not change with the abundance level of the fish populations.

Whether PFZs are working?

There is no information on whether PFZs are actually giving any benefits to the fishermen (or declining the fish stocks). All research so far has been spent on improving the identification of PFZs (remote sensing) and validation of fisheries data (using CPUE) through research vessel surveys. There are no reports on whether the PFZ advisories are currently being used by the fishermen to improve their profit (or do they even rely on PFZ fishing spots!). This is a potential area of research for a Masters or PhD thesis.

P.S: Why not ‘Potential No-take Zones (PNZs)’ instead?


Draw maps in R

Use R to draw maps for your paper

Very often I have found researchers using google map or low resolution map to show population distributions (or survey regions). They usually don’t appear that great in a research journal atleast when printed out.

This is a step by step approach to draw maps in R. I demonstrate how to use functions in PBSmapping package of R. You can draw any map with two small piece of R code. The following are required (Assuming you have Windows):

1. R installed in your computer

2. PBSmapping – R package (and all its dependencies)

3. GSHHS Database file

I will skip step 1 and 2 since the tutorial for installations have been covered in my earlier posts (Install R, Install Package).

Import GSHHS Database

GSHHS refers to “Global Self-consistent, Hierarchical, High-resolution Shoreline”.  They present a high-resolution shoreline data set maintained by NOAA and are available to download for free. More details are available at :

The shorelines come in five resolutions:

  1. full resolution: Original data resolution.
  2. high resolution: About 80 % reduction.
  3. intermediate resolution: Another ~80 % reduction.
  4. low resolution: Another ~80 % reduction.
  5. crude resolution: Another ~80 % reduction.

They are each organized into 4 hierarchical levels:

  1. L1: boundary between land and ocean.
  2. L2: boundary between lake and land.
  3. L3: boundary between island-in-lake and lake.
  4. L4: boundary between pond-in-island and island.

STEP 1 (Download data)

Find the root directory of PBSmapping R package in your Windows. For example in my computer, the location is ‘C:\Users\Pazhayamadom\Documents\R\win-library\2.15\PBSmapping’

Download ‘GSHHS database in binary format’ (zip file) from the website.

Extract the contents into the root directory of PBSmapping.

The contents include database files (Data for world map) – gshhs_f.b, gshhs_h.b, gshhs_i.b ….etc.

STEP 2 (Load PBSmapping package)

Use the following code to load PBSmapping package in R

STEP 3 (Import data into R)

To import the required data (for map), you should have

1. xlim= range of X-coordinates or Longitudes (for clipping). The range should be between 0 and 360.

2. ylim= range of Y-coordinates or Latitudes (for clipping).

3. maxlevel= maximum level of polygons to import: 1 (land), 2 (lakes on land), 3 (islands in lakes), or 4 (ponds on islands).

The importGSHHS( ) function can be used for importing data (demonstrated with Map of India)

polys <- importGSHHS("C:\\.....\\R\\win-library\\2.15\\PBSmapping\\gshhs_h.b" , xlim=c(63, 93) , ylim=c(5, 30.5) , maxLevel=4)

In the above function, there are 4 inputs or arguments seperated by commas. The data file for high resolution map is specified as gshhs_h.b with the source path or location (use gshhs_f.b file for full resolution). xlim are the minimum and maximum longitudes required. Similarly, ylim are the minimum and maximum latitudes required. maxlevel=4 means to import data for lakes, island and ponds along with land.

This process may take some time to read required data from the file and you should be getting the following message:

importGSHHS status:
--> Pass 1: complete: 1493 bounding boxes within limits.
--> Pass 2: complete.
--> Clipping...

STEP 4 (Draw the map)

The final step is to plot the data which is now imported from the database file.

The plotMap ( ) function is used for this purpose.

plotMap (polys)

R have the option of saving pictures in the format of JPEG, PNG, TIFF, Metafile, Postscript, Bmp and PDF. I prefer Metafile for MS Word, PNG for Latex and Postscript for graphical works (the best choices on my experience).

There are many optional arguments (inputs) for the functions mentioned above. I leave this for you to explore. But a few examples are given below:

To get grey shades for the land, use the plotMap( ) function with an extra argument col=’beige’.

plotMap (polys, col="beige")

If you would like the ocean (background) with a blue shade, use the following code:

plotMap (polys, col="beige", bg="lightblue")

You can add text, pointers and captions with other functions or extra arguments. Since they are beyond the scope of this post, please refer to the graph chapters in any R book.

Hope this was helpful. Thanks for reading the post.

P.S. – Have fun with changing the colour of your choice 🙂


Add Rivers and Borders

rivers <- importGSHHS("C:\\....\\PBSmapping\\wdb_rivers_f.b" , xlim=c(63, 93) , ylim=c(5, 30.5))
borders <- importGSHHS("C:\\....\\PBSmapping\\wdb_borders_f.b" , xlim=c(63, 93) , ylim=c(5, 30.5))

Here we import the database for rivers and borders (wdb_rivers_f.b and wdb_borders_f.b ).

addLines (rivers, col="lightblue")
addLines (borders, col="red")

The above function add rivers and borders to the map. This works only if the map is already plotted using plotMap( ) function.

Add text into the map

You can add labels into the map using text ( ) function. Again this will work only if the map is already plotted.

text (70, 10, "Arabian Sea")

Here 70 and 10 are the x and y coordinates in the map / graph.