Using three different datasets, land cover data, zoning data and Canada Land Inventory (CLI) of the study area, a thematic map was created visualizing agricultural suitability.
Visualizing areas of agriculture land use suitability helps to identify land which might be suitable to expand the agricultural area within the study area. Environmental planners can use the presented map to decide on rezoning areas in order protect valuable land from being developed.
Annapolis and Kings County contribute together 21,067 hectares of CLI class 2 land in Nova Scotia. Land with soil that have moderate limitation on what can be planted. It is important to protect prime agricultural land for future generations and to achieve (partial) food sovereignty. (Latter, might be not so important for Canada but for a small country like Switzerland it would be.) If valuable agricultural land is lost, then this can usually not be reversed. Therefore, it does not make sense to only consider the economic aspect of urbanization. This valuable land must be protected.
Three different datasets were needed to create the presented map, Land Cover, Zoning and Canada Land Inventory (CLI). First, the land cover records were classified (1.
existing agricultural use, 2.
can be converted, 3.
incompatible and 4.
developed) based on metadata. Then, the dataset was dissolved based on the classification. Later, the zoning dataset was classified (1.
allowed, full protection, 2.
allowed, limited protection, 3.
allowed, no protection, 4.
allowed, existing only, no expansion, 5.
not allowed) based on Land Use Bylaws of Annapolis and Kings County. Next, all three feature datasets were overlaid using Union tool. Finally, a classification was calculated for the generated dataset. The classification is a number with three digits and consists of the CLI class (first digit), the classification of the zoning (second digit) and the classification of the land use (third digit). These numbers were then assigned a suitability classification for analysis purposes.
The script below could be used to classify any dataset based on a field/value. Using Calculate Field tool, the script can, for example, be executed with
classify(!Field_Name!, [1,3,5,10,15,25], [1,2,3,4,5,6], 7). The first parameter represents the field (value), the second parameter is the upper threshold for a class and the third and fourth parameters provides the classification (not limited to an integer) for each class.
def classify(value, classes, code, lastCode): for x in range(0, len(classes)-1): if (value <= classes[x]): return code[x] return lastCode