{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Census of Agriculture - Northern Ireland" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os\n", "from datetime import datetime, timezone\n", "import pandas as pd\n", "import pooch" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "URL = (\n", " \"https://admin.opendatani.gov.uk/dataset/\"\n", " \"2a936744-dd04-457d-99b5-0000450af4fb/resource/\"\n", " \"7c3fa1e0-fadf-4cd3-b3d4-7d500274f226/download/\"\n", " \"farm-census---ward2014-2015-19-sup.csv\"\n", ")\n", "KNOWN_HASH = None\n", "FILE_NAME = \"farm-census-ward2014.csv\"\n", "SUB_DIR = os.path.join(\"data\", \"agricultural_census\", \"DAERA\")\n", "DATA_FILE = os.path.join(SUB_DIR, FILE_NAME)\n", "os.makedirs(SUB_DIR, exist_ok=True)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Downloading data from 'https://admin.opendatani.gov.uk/dataset/2a936744-dd04-457d-99b5-0000450af4fb/resource/7c3fa1e0-fadf-4cd3-b3d4-7d500274f226/download/farm-census---ward2014-2015-19-sup.csv' to file '/run/media/nms/Backup/Documents/Git/ClimAg/ClimAg/data/agricultural_census/DAERA/farm-census-ward2014.csv'.\n", "SHA256 hash of downloaded file: 5c7add70b1e2c9b2d334a200e300b7fa84bacdb3226683a442ce387d87a9aa16\n", "Use this value as the 'known_hash' argument of 'pooch.retrieve' to ensure that the file hasn't changed if it is downloaded again in the future.\n" ] } ], "source": [ "# download data if necessary\n", "if not os.path.isfile(os.path.join(SUB_DIR, FILE_NAME)):\n", " pooch.retrieve(\n", " url=URL, known_hash=KNOWN_HASH, fname=FILE_NAME, path=SUB_DIR\n", " )\n", "\n", " with open(\n", " os.path.join(SUB_DIR, f\"{FILE_NAME[:-4]}.txt\"), \"w\", encoding=\"utf-8\"\n", " ) as outfile:\n", " outfile.write(\n", " f\"Data downloaded on: {datetime.now(tz=timezone.utc)}\\n\"\n", " f\"Download URL: {URL}\"\n", " )" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "coa = pd.read_csv(DATA_FILE, encoding_errors=\"replace\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Ward2014 CodeWard2014 NameYearNumber of FarmsNumber of lfa farmsNumber of non lfa farmsTotal area farmed in hectaresAverage SO/farm (� '000 )Total crops in hectaresTotal grass & rough grazing in hectaresTotal number of cattleTotal number of sheepTotal number of pigsTotal number of poultry ('000)Number of farmersNumber of self employedNumber of spousesNumber of Other workersTotal number of Agricultural labour
0N08000101Abbey (Antrim and Newtownabbey)20153333333333333333
1N08000102Aldergrove20151035986452114237593310899127561139137129874490263
2N08000103Antrim Centre2015533411640404203368053005
3N08000104Ballyclare East20153333333333333333
4N08000105Ballyclare West20153333333333333333
\n", "
" ], "text/plain": [ " Ward2014 Code Ward2014 Name Year Number of Farms \\\n", "0 N08000101 Abbey (Antrim and Newtownabbey) 2015 3 \n", "1 N08000102 Aldergrove 2015 103 \n", "2 N08000103 Antrim Centre 2015 5 \n", "3 N08000104 Ballyclare East 2015 3 \n", "4 N08000105 Ballyclare West 2015 3 \n", "\n", " Number of lfa farms Number of non lfa farms \\\n", "0 3 3 \n", "1 5 98 \n", "2 3 3 \n", "3 3 3 \n", "4 3 3 \n", "\n", " Total area farmed in hectares Average SO/farm (� '000 ) \\\n", "0 3 3 \n", "1 6452 114 \n", "2 41 164 \n", "3 3 3 \n", "4 3 3 \n", "\n", " Total crops in hectares Total grass & rough grazing in hectares \\\n", "0 3 3 \n", "1 237 5933 \n", "2 0 40 \n", "3 3 3 \n", "4 3 3 \n", "\n", " Total number of cattle Total number of sheep Total number of pigs \\\n", "0 3 3 3 \n", "1 10899 12756 1139 \n", "2 42 0 3368 \n", "3 3 3 3 \n", "4 3 3 3 \n", "\n", " Total number of poultry ('000) Number of farmers \\\n", "0 3 3 \n", "1 137 129 \n", "2 0 5 \n", "3 3 3 \n", "4 3 3 \n", "\n", " Number of self employed Number of spouses Number of Other workers \\\n", "0 3 3 3 \n", "1 87 44 90 \n", "2 3 0 0 \n", "3 3 3 3 \n", "4 3 3 3 \n", "\n", " Total number of Agricultural labour \n", "0 3 \n", "1 263 \n", "2 5 \n", "3 3 \n", "4 3 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "coa.head()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# filter grass, cattle, and sheep data\n", "coa = coa[\n", " [\n", " \"Ward2014 Code\",\n", " \"Ward2014 Name\",\n", " \"Year\",\n", " \"Total grass & rough grazing in hectares \",\n", " \"Total number of cattle \",\n", " \"Total number of sheep \",\n", " ]\n", "]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Ward2014 CodeWard2014 NameYearTotal grass & rough grazing in hectaresTotal number of cattleTotal number of sheep
0N08000101Abbey (Antrim and Newtownabbey)2015333
1N08000102Aldergrove201559331089912756
2N08000103Antrim Centre201540420
3N08000104Ballyclare East2015333
4N08000105Ballyclare West2015333
\n", "
" ], "text/plain": [ " Ward2014 Code Ward2014 Name Year \\\n", "0 N08000101 Abbey (Antrim and Newtownabbey) 2015 \n", "1 N08000102 Aldergrove 2015 \n", "2 N08000103 Antrim Centre 2015 \n", "3 N08000104 Ballyclare East 2015 \n", "4 N08000105 Ballyclare West 2015 \n", "\n", " Total grass & rough grazing in hectares Total number of cattle \\\n", "0 3 3 \n", "1 5933 10899 \n", "2 40 42 \n", "3 3 3 \n", "4 3 3 \n", "\n", " Total number of sheep \n", "0 3 \n", "1 12756 \n", "2 0 \n", "3 3 \n", "4 3 " ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "coa.head()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# keep data for 2018\n", "coa = coa[coa[\"Year\"] == 2018]" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "# rename columns\n", "coa.rename(\n", " columns={\n", " \"Ward2014 Code\": \"ward_2014_code\",\n", " \"Ward2014 Name\": \"ward_2014_name\",\n", " \"Year\": \"year\",\n", " \"Total grass & rough grazing in hectares \": \"total_grass_hectares\",\n", " \"Total number of cattle \": \"total_cattle\",\n", " \"Total number of sheep \": \"total_sheep\",\n", " },\n", " inplace=True,\n", ")" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
ward_2014_codeward_2014_nameyeartotal_grass_hectarestotal_cattletotal_sheep
1386N08000101Abbey (Antrim and Newtownabbey)2018333
1387N08000102Aldergrove201856761078415053
1388N08000103Antrim Centre2018333
1389N08000104Ballyclare East2018333
1390N08000105Ballyclare West2018148207152
\n", "
" ], "text/plain": [ " ward_2014_code ward_2014_name year \\\n", "1386 N08000101 Abbey (Antrim and Newtownabbey) 2018 \n", "1387 N08000102 Aldergrove 2018 \n", "1388 N08000103 Antrim Centre 2018 \n", "1389 N08000104 Ballyclare East 2018 \n", "1390 N08000105 Ballyclare West 2018 \n", "\n", " total_grass_hectares total_cattle total_sheep \n", "1386 3 3 3 \n", "1387 5676 10784 15053 \n", "1388 3 3 3 \n", "1389 3 3 3 \n", "1390 148 207 152 " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "coa.head()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Int64Index([], dtype='int64')" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# check for missing data\n", "coa.index[coa.isnull().any(axis=1)]" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# save as a CSV file\n", "coa.to_csv(os.path.join(SUB_DIR, \"daera_agricultural_census.csv\"), index=False)" ] } ], "metadata": { "kernelspec": { "display_name": "ClimAg", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.6" }, "vscode": { "interpreter": { "hash": "c4e659d1bedfc73d1fd31d7c0e2c79d7cc7aac22204994016c65a9e44686eb91" } } }, "nbformat": 4, "nbformat_minor": 2 }