{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Exploring Research Data Repositories with geoextent" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Authors\n", "\n", "- Author1 = {\"name\": \"Sebastian Garzón\", \"affiliation\": \"Opening Reproducible Research, Institute for Geoinformatics, University of Münster, Germany\", \"email\": \"jgarzon@uni-muenster.de\", \"orcid\": \"https://orcid.org/0000-0002-8335-9312\"}\n", "- Author2 = {\"name\" : \"Daniel Nüst\", \"affiliation\": \"Opening Reproducible Research, Institute for Geoinformatics, University of Münster, Germany\", \"email\": \"daniel.nuest@uni-muenster.de\", \"orcid\": \"https://orcid.org/0000-0002-0024-5046\"}" ] }, { "cell_type": "markdown", "metadata": { "toc": true }, "source": [ "

Table of Contents

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Purpose\n", "\n", "This notebook presents [geoextent](https://o2r.info/geoextent/index.html), a Python library for reliably extracting the geospatial and temporal extents of files, directories, and repository records. The geospatial and temporal metadata of research data could greatly benefit the discovery of relevant and related datasets (Gregory et al., 2018). However, it is underused in scientific data repositories except for specialised repositories. Much more scientific disciplines collect data and publish work that has some temporal or spatial relation. These datasets may not be connected through regular search indices based on keywords or full texts. The library geoextent presented in this notebook helps to understand the potential of extract information from files shared in data repositories and may be used to integrate geospatial and temporal metadata into repository infrastructures.\n", "\n", "## Technical contributions\n", "\n", "The geoextent library is a wrapper around the most commonly used software for geospatial data loading and saving, GDAL (GDAL/OGR contributors, 2021).\n", "The main contribution is the ease of use of extracting discovery metadata from data files using GDAL, the handling of most common cases with defaults to support automation, the aggregation of extents for multiple files or directories, and the integration of retrieval functions for common scientific data repositories. This notebook relies on geoextent version 0.7.1 (Nüst, Garzón & Qamaz, 2021), and some helper functions are shared next to the notebook file.\n", "This notebook is developed for Python 3.6+ and a standard [Jupyter](https://jupyter.org/) environment (Kluyver et al., 2016). Some cells require a stable connection to the [Zenodo API](https://developers.zenodo.org/).\n", "\n", "## Methodology\n", "\n", "We performed a case study of Zenodo records to explore the potential of automatically extractable geographic coverage metadata in research data repositories.\n", "Furthermore, the case study validated the features of geoextent and improved the automated handling of data types.\n", "First, a set of records based on the search term 'geology&geo' and below a record 500 MB size limit are downloaded, and metadata are extracted with geoextent.\n", "Results are stored in a local GeoPackage file and then analyzed.\n", "We determine the percentage of records where geospatial metadata can be automatically extracted and render the extracted geospatial and temporal metadata for visual inspection.\n", "Second, we analyze the distribution of total files and the success rate of extraction by repositories. Finally, we determine the proportion of potential files with geospatial data and its success rate of extraction.\n", "\n", "## Results\n", "\n", "The extraction of geospatial and temporal information performed with geoextent suggests that files stored in repositories could fill gaps in the metadata of research data repositories. On the one hand, our approach to extract geographic coverage metadata generates a bounding box (`bbox`) for **14.4%** ([see Fig. 1](#figure_1)). of the repositories explored without any manual intervention. This number is considerably higher than the current **0.77%** of zenodo records with geometadata (`locations`) and **0.14%** specifically for dataset records, though our search uses a filtered baseline for geospatial records. For the extraction of temporal extent (`tbox`), the successful extractions with geoextent are considerably lower with only **2.51%** ([see Fig. 1](#figure_1)). This can be ascribed to time data being less explicitly modeled in common file formats compared to location data. Differences between geospatial and temporal information extractions over the total number of files ([see Fig. 1](#figure_1)) could result from file formats that reduce the ambiguity of the information only for geographical features (e.g., `shp` or `tif`). Nevertheless, these temporal extents could complement the Zenodo `dates` parameter, which only concerns the publication time.\n", "\n", "As the main observation about the explored records, we found that almost **50%** of files have a format known to be able to store geospatial information ('geoformats') ([see Fig. 3](#figure_3)). These include standardized file types for geographical information, such as `GeoJSON`, `GeoPackage`, `NETCDF`, and `GeoTIFF`, as well as other less standardized but widely used formats as `CSV` or `png`. We encountered that in terms of records, **51%** have at least one file known to possibly store geospatial data. That implies that almost half of the records analyzed do not model location information in their content so that it could be extracted automatically. From the portion of records with at least one geospatial format, only **28%** had a successful extraction ([see Fig. 4](#figure_4)). These observations point out the two main challenges of our approach: absence of data to explore (i.e., no geoformats in records) and low extraction success rate from available data (i.e., potential geoformats not providing the required information).\n", "\n", "As for the files' distribution in the repositories, we encountered that geoformats are present in repositories of all sizes and follow a similar distribution as the total number of files by records ([see Fig. 5](#figure_5)). For the repositories with successful extractions, we encountered that a single success is the most common output. However, the extraction of few repositories can rely on up to 180 successful file extractions ([see Fig. 5](#figure_5)). This number of successes is only relevant if analyzed in the context of each repository and compared with the total number of files and potential files with geospatial information. We encountered that we extracted geospatial information either in records with a low and high proportion of geoformats. A similar scenario resulted in different proportions of successful extractions from the number of geoformats ([see Fig. 6](#figure_6)). Records with no extraction (i.e., 0% success rate over potential) vary from 0% to 100% geoformat files. That suggests that there is still space for improvement for geoextent in the case of ambiguous files to increase the total percentage of successful extractions.\n", "\n", "The proportion of success by geoformats indicates that, as expected, ambiguous formats as `CSV` and `png` are a large part of the unsuccessful extractions ([see Fig. 7](#figure_7)). As these formats do not necessarily store geographical information (e.g., can hold anything from survey data to DNA sequences) or the geographical information is not easily detectable (e.g., unexpected column names for latitude and longitude), it would be necessary to manually analyze their content to determine a perfect test dataset and possibly provide more rules for automatic extraction. In contrast, standardized formats for geographical data have a higher success rate of extraction. That confirms that these files store geospatial features in a more accessible way to other researchers than ambiguous formats. However, popular geospatial formats as `GeoPackage`, `shapefile`, or `GeoTIFF` have success extraction rates between **43%** and **58%** indicating that even standardized formats do not guarantee the availability of all required information (e.g., the coordinate reference system may be missing). Similarly, a powerful format such as `netCFD` (`.nc`) has a low extraction rate (**6.6%**) which shows that while it can be used for georeferenced data, it might not have sufficient metadata, or usage of non-geospatial datasets is much higher ([see Fig. 7](#figure_7)).\n", "\n", "Finally, the bounding boxes ([see Map 1](#map_1) and [Image 1](#image_1)) automatically extracted by geoextent suggest that human verification is required to identify problems with the files (e.g., incorrect or incomplete georeferencing) or with geoextent's approach (e.g., assuming a default coordinate reference system if it is not clearly defined). Authors and data curators could easily identify common errors, e.g., flipped coordinates or absence of coordinate reference systems. \n", "\n", "\n", "\n", "**Image 1. Example of bounding boxes extracted by geoextent.(Left) Correct extraction, (Center) partially correct extraction and (Right) erroneous extraction. (Classification after human verification)**\n", "\n", "As a conclusion, we observe that the extraction of geospatial information from records in a general-purpose research data repository could provide geospatial metadata to aid data discovery. Our approach encountered potential geospatial information in a relevant percentage of repositories of different characteristics and successfully extracted geospatial information from various file types. We propose that including geoextent into the pipeline of data curation, e.g., by proposing a bounding box based on the data during record creation, could help researchers and data repositories to improve the quality of the record metadata, but also in terms of data understandability, e.g., by encouraging non-ambiguous formats.\n", "\n", "## Funding\n", "\n", "- Award1 = {\"agency\": \"German Research Foundation (DFG)\", \"award_code\": \"PE1632/17-1\", \"award_URL\": 'https://gepris.dfg.de/gepris/projekt/415851837'}\n", "\n", "## Keywords\n", "\n", "keywords=[\"geospatial\", \"discovery\", \"metadata\", \"repositories\", \"data sharing\"]\n", "\n", "## Citation\n", "\n", "Garzón, Sebastian and Nüst, Daniel, 2021. Exploring Research Data Repositories with geoextent. Accessed 2021-05-14 at https://github.com/o2r-project/geoextent/tree/master/showcase.\n", "\n", "## Suggested next steps\n", "\n", "First, the survey of Zenodo records can be extended to include records based on more search terms - or even all records - and to include larger records.\n", "Second, the record retrieval features of geoextent can be extended to include additional research data repositories.\n", "These can be general-purpose ones, e.g., [Figshare](https://figshare.com/) or [OSF](https://osf.io/), but also specialised repositories for geospatial data, e.g., [Pangaea](https://www.pangaea.de/), or [GFZ Data Services](https://dataservices.gfz-potsdam.de/). In the case of the specialised repositories, the extracted metadata should be compared with the metadata of the platform.\n", "Third, the development of geoextent will be continued, e.g., to support more data types, to support more output options for integration into other tools, or to communicate progress to users or including tools.\n", "Especially the support of more data formats and increased stability of the library could make it possible to integrate it into Open Source data repository software, such as [InvenioRDM](https://inveniosoftware.org/products/rdm/) (the base software of Zenodo), and thereby turn geospatial and temporal metadata into regular record-level metadata which can be validated by authors on the creation of new records, and which can aide interdisciplinary collaboration through novel connections between datasets.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Setup\n", "\n", "## Library import\n" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [], "source": [ "# Import geoextent\n", "import geoextent.lib.extent as geoextent\n", "import geoextent.lib.extent as geoextent_help\n", "from geoextent.__init__ import __version__ as geoextent_version\n", "# Data manipulation\n", "import requests\n", "import json\n", "from shapely import wkt\n", "import pandas as pd\n", "import geopandas as gpd\n", "import numpy as np\n", "\n", "# Logging\n", "import logging\n", "\n", "# Measure time and sleep function\n", "import time\n", "\n", "# Visualisation (graphs, maps, tables)\n", "import matplotlib.pyplot as plt\n", "import matplotlib as mpl\n", "import matplotlib.ticker as mtick\n", "import folium\n", "from folium import plugins\n", "from folium import FeatureGroup, LayerControl\n", "from folium.features import GeoJsonPopup " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Local library import" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [], "source": [ "# Include local library paths\n", "import sys\n", "\n", "# Import help functions for zenodo API\n", "sys.path.append('help_functions') \n", "# Import local libraries\n", "import help_functions.request_zenodo_api as zenodo_api" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Parameter definitions" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [], "source": [ "# Search term for Zenodo API query\n", "SEARCH_TERM = \"geo&geology\"\n", "# Maximum size of Zenodo record to extract (MB)\n", "MAXIMUM_RECORD_SIZE_MB = 500\n", "# CSV output file for Zenodo API statistics\n", "OUTPUT_API_STATISTICS = \"zenodo_api_statistics.csv\"\n", "# CSV output file for search results (Zenodo record metadata)\n", "OUTPUT_API = \"zenodo_api_extraction_geo.csv\"\n", "# CSV output file for geoextent extraction results \n", "OUTPUT_GEOEXTENT = \"geoextent_extraction_geo.gpkg\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "# Data import\n", "\n", "For the introductory usage examples, test data files are included in the library and available in the notebook's repository in the [tests/testdata](https://github.com/o2r-project/geoextent/tree/master/tests/testdata) directory, where sources of test data are documented as well.\n", "For the main analysis, data retrieval is part of the geoxtent library and therefore included in the below processing.\n", "The Zenodo record identifiers, which can be used to construct the DOI, are stored in the output dataset published next to this notebook.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Data processing and analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## geoextent usage\n", "\n", "### Supported file types\n", "geoextent supports a subset of the file formats supported by GDAL and uses text-scraping techniques to extract the geospatial and temporal features of common file types storing geospatial information.\n", "This subset includes the most commonly used formats and ensures stable handling of edge cases and possible errors.\n", "The supported file formats include vector (e.g., [GeoPackage](https://en.wikipedia.org/wiki/GeoPackage), [Shapefile](https://en.wikipedia.org/wiki/Shapefile), [GeoJSON](https://geojson.org/)) and raster (e.g., [GeoTIFF](https://en.wikipedia.org/wiki/GeoTIFF), [JPEG 2000](https://en.wikipedia.org/wiki/JPEG_2000#GML_JP2_georeferencing)) file types.\n", "The user can extract the spatial extent, the so-called bounding box (parameter `bbox`), and/or temporal extent (parameter `tbox`) of a file or set of files.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Individual files\n", "\n", "geoextent can be run on a single data file using the Python API, as shown below.\n", "The output includes the spatial and temporal extents.\n", "The spatial extent is always provided as in the [WGS84](https://en.wikipedia.org/wiki/World_Geodetic_System) coordinate reference system ([CRS](https://en.wikipedia.org/wiki/Spatial_reference_system)), commonly known through its usage in GPS, which is sufficiently precise for the use case of dataset discovery. If the dataset is provided in a different CRS, the bounding box is reprojected using GDAL." ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "../tests/testdata/shapefile/ifgi_denkpause.shp \n", " bbox: [7.594978277801928, 51.96852473231792, 7.5957650477781415, 51.969118924937405] \n", " 4326 EPSG \n", " tbox: ['2021-01-01', '2021-01-01']\n" ] } ], "source": [ "# File of interest\n", "local_filepath = \"../tests/testdata/shapefile/ifgi_denkpause.shp\"\n", "# Geoextent extraction\n", "geoextent_file = geoextent.fromFile(filepath = local_filepath, bbox = True, tbox = True)\n", "\n", "# Print output\n", "print(local_filepath, \"\\n\", \"bbox:\", geoextent_file['bbox'],\"\\n\",geoextent_file['crs'], \"EPSG \\n\",\n", " \"tbox:\",geoextent_file['tbox'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Multiple files\n", "\n", "When provided a directory, geoextent by default returns the union of the spatial and temporal extent of all supported files." ] }, { "cell_type": "code", "execution_count": 56, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "../tests/testdata/folders/folder_two_files \n", " bbox: [2.052333387639205, 41.31703852240476, 7.647256851196289, 51.974624029877454] \n", " 4326 EPSG \n", " tbox: ['2018-11-14', '2019-09-11']\n" ] } ], "source": [ "# Directory of interest\n", "local_directory_path = \"../tests/testdata/folders/folder_two_files\"\n", "# Geoextent extraction\n", "geoextent_directory = geoextent.fromDirectory(path = local_directory_path, bbox = True, tbox = True, details = True)\n", "\n", "# Print output\n", "print(local_directory_path, \"\\n\", \"bbox:\", geoextent_directory['bbox'],\"\\n\", geoextent_directory['crs'], \"EPSG \\n\",\n", " \"tbox:\",geoextent_directory['tbox'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The previous result is the combination of two files: **muenster_ring_zeit.geojson** and \n", "**districtes.geojson**, so geoextent also stores (If parameter `details ` = `True `) the details from the files used to compute the final bbox and tbox. For example:" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'format': 'geojson',\n", " 'geoextent_handler': 'handleVector',\n", " 'bbox': [7.6016807556152335,\n", " 51.94881477206191,\n", " 7.647256851196289,\n", " 51.974624029877454],\n", " 'crs': '4326',\n", " 'tbox': ['2018-11-14', '2018-11-14']}" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "geoextent_directory['details']['muenster_ring_zeit.geojson']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Data repositories\n", "\n", "Geoextent aims to extract the bounding box (bbox) and temporal box (tbox) from data repositories. The first data repository implemented is Zenodo, and the extraction is based on either a Zenodo Record URL (e.g., `https://zenodo.org/record/820562`) or the URL of a DOI (e.g., `https://doi.org/10.5281/zenodo.820562`)." ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "https://doi.org/10.5281/zenodo.820562 \n", " bbox: [96.21146318274846, 25.558346194400002, 96.35495081696702, 25.632931128800003] \n", "\n", "https://zenodo.org/record/820562 \n", " bbox: [96.21146318274846, 25.558346194400002, 96.35495081696702, 25.632931128800003]\n" ] } ], "source": [ "# Zenodo Record of interest\n", "url_zenodo = \"https://zenodo.org/record/820562\"\n", "url_doi = \"https://doi.org/10.5281/zenodo.820562\"\n", "\n", "# Geoextent extraction\n", "geoextent_url_doi = geoextent.from_repository(url_doi, bbox = True)\n", "geoextent_zenodo_record = geoextent.from_repository(url_zenodo, bbox = True)\n", "\n", "# Print output\n", "print(url_doi,\"\\n\", \"bbox:\", geoextent_zenodo_record['bbox'],\"\\n\")\n", "print(url_zenodo, \"\\n\", \"bbox:\", geoextent_zenodo_record['bbox'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Command-line interface" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Geoextent's API functionalities are also accessible through a command-line interface (CLI) for files, folders, and data repositories. In this scenario, configuration options for the extraction are provided by flags. For example, `-b` indicates a bounding box (bbox) extraction, and `-t` a time box (tbox) extraction. Additional options are available, e.g., `--details` to print the individual results by file for folders and data repositories or `--output` to store the output in a *GeoPackage* file instead of printing to console." ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'format': 'shp', 'geoextent_handler': 'handleVector', 'bbox': [7.594978277801928, 51.96852473231792, 7.5957650477781415, 51.969118924937405], 'crs': '4326', 'tbox': ['2021-01-01', '2021-01-01']}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/garzon/.local/lib/python3.6/site-packages/pandas/compat/_optional.py:124: UserWarning: Pandas requires version '1.2.1' or newer of 'bottleneck' (version '1.2.0' currently installed).\n", " warnings.warn(msg, UserWarning)\n" ] } ], "source": [ "%%bash\n", "geoextent -b -t ../tests/testdata/shapefile/ifgi_denkpause.shp" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Case study" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Zenodo is a data repository that stores different types of publication materials in form of `records`. The Zenodo API supports the discovery of records by dozens of different parameters stored in the metadata. These parameters include, e.g., `title`, `doi`, `keywords`, and `locations`. Even though geospatial metadata is available for queries via the `locations` parameter, this option seems to be limited to only a small number of records. Therefore, we study the number of records with geospatial metadata available in Zenodo and assess if by using geoextent we could provide the missing geospatial metadata for a significant number of other Zenodo records." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Zenodo geometadata" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first step for this analysis is determining the current state of geometadata in the Zenodo records. Only Open Access repositories are taken into account. For this purpose, we are going to use the Zenodo __[spatial search](https://zenodo.org/api/records/?bounds=-180,-90,180,90)__ function using the `bounds` query parameter, which accepts an area of interest (bounding box) as two coordinate pairs to extract the records within this zone. Zenodo's geospatial information of a record is stored in the `locations` property in the metadata. Each record could have multiple locations, but a location is limited to a single point with the properties `lat`, `lon`, and `place`.\n", "\n", "In the following cell, we extract the proportion of Open Access Zenodo records which have a `locations` property value. It is important to note that Zenodo records include 9 different _categories of publication types_: `poster`, `presentation`, `dataset`, `image`, `video`, `software`, `lesson`, `physicalobject`, and `other`, all of which are queried." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**ONLY RUN THE FOLLOWING CELL IF YOU WANT THE CURRENT INFORMATION FROM ZENODO API**\n", "\n", "New records are being added every day to Zenodo. We have prepared a data frame with the results from the API at the time of our analysis.\n", "\n", "Change the following cell type from `Raw` to `Code` before running it." ] }, { "cell_type": "raw", "metadata": {}, "source": [ "## Parameters for search\n", "world_bounds = \"-180,-90,180,90\"\n", "\n", "# Type of Records\n", "types_of_records = [\"publication\",\"poster\", \"presentation\", \"dataset\", \"image\",\n", " \"video\", \"software\", \"lesson\", \"physicalobject\",\"other\"]\n", "\n", "# Dictionary with search parameters\n", "search_param = {}\n", "\n", "# Zenodo search parameter for open records\n", "search_param[\"record\"] = {\"access_right\":\"open\"}\n", "\n", "# Zenodo search parameter for open records with geometadata\n", "search_param[\"record_geometadata\"] = dict(search_param[\"record\"], bounds = world_bounds)\n", "\n", "# Zenodo search parameter for open records with and without geometadata by type of record\n", "for record_type in types_of_records:\n", " search_param[record_type] = {\"access_right\":\"open\",\"type\":record_type}\n", " search_param[record_type + '_geometadata'] = {\"access_right\":\"open\",\"type\":record_type,\"bounds\":world_bounds}\n", " \n", "## Extract the number of records by search_parameter\n", "types_of_records.append('record')\n", "\n", "# dict for number of records by type \n", "dict_type_of_record = {}\n", "\n", "for zenodo_record in types_of_records:\n", " open_access = int(zenodo_api.get_number_of_records(search_param[zenodo_record]))\n", " with_geometadata = int(zenodo_api.get_number_of_records(search_param[zenodo_record+'_geometadata']))\n", " dict_type_of_record[zenodo_record] = {'Number open access records':open_access,\n", " 'Number open access records with geometadata':with_geometadata}\n", "\n", "# Create dataframe\n", "df_api = pd.DataFrame.from_dict(dict_type_of_record,orient='index')\n", "# Proportion of zenodo records by type with geometadata\n", "df_api['% records with metadata'] = df_api['Number open access records with geometadata']/df_api['Number open access records']*100\n", "# Compute proportions of open zenodo record by type over total open zenodo records\n", "df_api['% proportion over total geometadata']= df_api['Number open access records with geometadata']/df_api.loc['record','Number open access records with geometadata']*100\n", "df_api.index.name='Type of record'\n", "df_api.to_csv(OUTPUT_API_STATISTICS)" ] }, { "cell_type": "code", "execution_count": 60, "metadata": { "scrolled": false }, "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", "
Number open access recordsNumber open access records with geometadata% records with metadata% proportion over total geometadata
Type of record
publication997743139701.40016099.849904
poster839700.0000000.000000
presentation2122500.0000000.000000
dataset75542190.0251520.135802
image60175300.0000000.000000
video328600.0000000.000000
software5373710.0018610.007147
lesson255500.0000000.000000
physicalobject2800.0000000.000000
other616810.0162130.007147
record1770435139910.790258100.000000
\n", "
" ], "text/plain": [ " Number open access records \\\n", "Type of record \n", "publication 997743 \n", "poster 8397 \n", "presentation 21225 \n", "dataset 75542 \n", "image 601753 \n", "video 3286 \n", "software 53737 \n", "lesson 2555 \n", "physicalobject 28 \n", "other 6168 \n", "record 1770435 \n", "\n", " Number open access records with geometadata \\\n", "Type of record \n", "publication 13970 \n", "poster 0 \n", "presentation 0 \n", "dataset 19 \n", "image 0 \n", "video 0 \n", "software 1 \n", "lesson 0 \n", "physicalobject 0 \n", "other 1 \n", "record 13991 \n", "\n", " % records with metadata % proportion over total geometadata \n", "Type of record \n", "publication 1.400160 99.849904 \n", "poster 0.000000 0.000000 \n", "presentation 0.000000 0.000000 \n", "dataset 0.025152 0.135802 \n", "image 0.000000 0.000000 \n", "video 0.000000 0.000000 \n", "software 0.001861 0.007147 \n", "lesson 0.000000 0.000000 \n", "physicalobject 0.000000 0.000000 \n", "other 0.016213 0.007147 \n", "record 0.790258 100.000000 " ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_api = pd.read_csv(OUTPUT_API_STATISTICS,index_col=0)\n", "df_api" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Table 1. Zenodo records statistics by record type" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "Based on the information extracted from Zenodo's API on May 14, 2021 (08:25:00 UTM), there are **1,770,284** open records. From these records, **13,966** have geospatial metadata. That means that **~0.79%** of open Zenodo records are findable through geospatial search. Among the records with geospatial metadata, **~99.8%** are `publications`(13945, records), and **~0.14%** are of `dataset` type (19 records). Even for these two categories with most of the records, less than **1.4%** of open `publications` and less than **0.03%** open `dataset` include geospatial metadata.\n", "\n", "To evaluate if we can use geoextent to increase the proportion of records with spatial metadata, we use the result of a Zenodo API term search to create a list of records to analyze. In this particular search, we use the term *geo&geology* and limit it to only `dataset` records smaller than 500 MB. From these records' metadata, we store basic fields, e.g., title, DOI, in the CSV file `zenodo_api_extraction_geo.csv`." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**ONLY RUN THE FOLLOWING CELL IF YOU WANT TO REPRODUCE THE GEOEXTENT EXTRACTION** \n", "\n", "*New records are being added every day to Zenodo. Some of them could match our search query after the publication of this notebook. That means that our geoextent extraction (See. [Collect data](#Collect-data)) could change.*\n", "\n", "Change the following cell type from `Raw` to `Code` before running it." ] }, { "cell_type": "raw", "metadata": {}, "source": [ "# Parameters search for datasets with 'geo' term\n", "geo_datasets_param = dict(search_param[\"dataset\"], q = SEARCH_TERM)\n", "df_geo_zenodo_api = pd.DataFrame.from_dict(zenodo_api.get_info_records(geo_datasets_param),orient= 'index')\n", "# Selecting records smaller than 500 MB.\n", "df_geo_zenodo_api = df_geo_zenodo_api[df_geo_zenodo_api[\"size_mb\"]" ] }, { "cell_type": "code", "execution_count": 62, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5YAAADeCAYAAABG6J/iAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABBnklEQVR4nO3dd5gURf7H8feXJUlUQVFEXT0TuASRHJdoACOciqiHougpZjH9DHiHAeFAMSdEEREVcwIUF1RQchQVTxYFTHCCLAgCW78/qmZ3mJ0NMLs7gJ/X88wz091V1dVhevrbVd1jzjlEREREREREdlaZZFdAREREREREdm8KLEVERERERCQhCixFREREREQkIQosRUREREREJCEKLEVERERERCQhCixFREREREQkIWWTXYFdWc2aNV1qamqyqyEiIiIiIpIUs2fPXu2c26+wdAosC5CamsqsWbOSXQ0REREREZGkMLPlRUmnrrAiIiIiIiKSEAWWIiIiIiIikhAFliIiIiIiIpIQ3WMpIiIiIiL52rJlCytWrGDTpk3JroqUoIoVK1KnTh3KlSu3U/kVWIqIiIiISL5WrFhB1apVSU1NxcySXR0pAc451qxZw4oVKzjssMN2qgwFlgVYtX4VAzMGFlt56aQXW1kiIiIiIqWhevXq1KhRg6ysrGRXpdhUXb8+2VXIVbt2smuAmVGjRg1+/fXXnS5D91iKiIiIiEiB1FK550t0GyuwFBERERGRXdqQIUNo1qwZLVu2pHXr1sycOTPZVcrxyRdfcGyHDjTq0oU//vgj33TpPXsya/78UqxZ6VJXWBERERERKbJ7pt1TrOXd2urWAqd/8cUXfPDBB3zyySdUqFCBNWvW8OeffxZrHRIx5rXXuKV/f87r0SPZVUkqtViKiIiIiMgu6+eff6ZGjRpUqFABgBo1anDggQeSlpbGmjVrAJgzZw4nn3wyAFlZWfzzn/+kRYsWtGzZkjfffBOASZMm0bZtW1q1akWns84CYMPGjVx03XU069aN47p25c0JEwBY/PXXNOvWjUZdutCgc2eWfvcdGzZupNv559Owc2fSOnZk3Jtv8vSLL/LyO+9w+5Ah9O7fn4xp0+h+wQU5de//f//HqHHjSm1dJZNaLEVEREREZJfVsWNHBg8ezHHHHUd6ejo9evSgTZs2+aa///77qVatGp9//jkAv/32G6tXr+aqq67i/fffJzU1lS3ffw/A3Q8+SMfWrRk5bBhr162jWbdudG7blsdHj+bqvn3pfeaZ/Pnnn2zbto33Jk+m9gEH8O7o0QCs+/13qlerxqczZtC9c2d6du9OxrRpJb9CdlFqsRQRERERkV1WlSpVmDp1KiNGjKBmzZr06dOHMWPG5Js+IyODSy65JGd4n332YebMmbRq1YrU1FQA9t1nHwAmTp3KfY88QqMuXUjv2ZNNmzfz/cqVtDz+eO556CEGP/IIy1esYK+99qL+MccwaepUbrr7bj754guqV6tWosu9u1GLpYiIiIiI7NJSUlJo27Ytbdu25dhjj+XFF18kJSWF7OxsADZv3rxT5TrnGP/kkxx9xBHbja975JE0P+443v3oI04+/3yeGDyYjm3aMOeDD3hv8mRuu/9+OrVpwx3XXrtdvrJly5LtXM7wpp2s1+5ILZYiIiIiIrLLWrp0Kd9++23O8IIFCzj44IM59NBDmTt3LkDOfZQAHTp04KmnnsoZ/u2332jatCnTpk0jMzMTgP/99hsAJ7Rvz0PPPosLweDcRYsA+G75cg4/9FCu6tuX0044gQVLlrDqp5+otNdenNejBwMuu4w5CxfmqeuhBx3El998w+bNm1m7bh0fffpp8a6MXZhaLEVEREREZJeVlZXFgAEDWLduHWXLluXwww9nxIgRfP3111xxxRXcfffd291zOWDAAK6//nqaN29OSkoKN998M6eeeioPPvgg5513HtnZ2Rywzz5Meuklbr/mGq65804adO5MdnY2hx18MO88/zwvv/02o8ePp1zZshyw//7ceuWVzJw/nwGDBlHGjHLlyvHYvffmqevBBx3EWaecQlrHjhx2yCEcl5ZWmqsqqcxFNdXK9mofXdv1e6JfsZWXTnqxlSUiIiIiUhqqV6/OETFdRXd3VdevT3YVctWunewa5FiyZAl169bdbpyZzXbONSksr7rCioiIiIiISEIUWIqIiIiIiEhCFFiKiIiIiIhIQhRYioiIiIiISEIUWIqIiIiIiEhCFFiKiIiIiIhIQhRYioiIiIjILq1atWrceuutOcMjRozgnnvuKbH5vfHBB3z5zTfFVt49I0ZsN9zq1FOLrexdRdlkV0BERERERHYf06ZNK9byWrVqVWiaChUq8Pbbb3P99ddTo0aNYp1/PG988AHdO3em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dNLT04lcOJ04cSItW7akcePG/P3vfycrKwuAm2++mXr16tGgQQNuuOGGIq1jERH56yq9y6oiIiLFYOnSpYwdO5annnqKs846i/Hjx3PeeecxZMgQxowZkyd9u3btGDFiBABffPEFF110EcuXL2f06NGFti4ee+yxvPnmm5x++um88sor/PDDD3HTzZkzh0WLFnHYYYfx5JNPUr16dWbOnMnmzZtp3bo1Xbt2BXx33C+//JJDDz2UE088kddee41WrVpx0003MXv2bPbZZx+6du3KG2+8wcEHH8zKlStzWlDXrl273Tyvuuoqhg0bxscff0zNmjVZtWpV3HJOP/10NmzYQPPmzfnPf/6zXRmrV69m0KBBfPjhh1SuXJnBgwczbNgwrrjiCl5//XW++uorzCzPvEVERGKpxVJERHYrhx12GI0aNQLg+OOPJzMzE4ABAwYwb968PK9IUAnQvHlzFi9ezMyZM7n33nvZtGlTgfMaOXIkjz76KMcffzzr16+nfPnycdM1a9aMww47DPAtgM8//zyNGjWiefPmrFmzhqVLl+akO/zww0lJSaFXr158+umnzJw5k/T0dPbbbz/Kli1L7969mTp1KocffjjfffcdV155JR988AHVqlUrsK75lQOQkpJCjx498uT5/PPP+fLLL2ndujWNGjXiueeeY/ny5VSvXp2KFSvSt29fXnvtNSpVqlTgvEVERNRiKSIiu5UKFSrkfE5JScnpCluUFsuIunXrUqVKFRYtWkSTJvnfNnLMMccwceJEwHeLfffdd+Omq1y5cs5n5xwPPfQQJ5xwwnZpMjIytut+C+QZjrbPPvswf/58JkyYwOOPP87LL7/MyJEj801fkIoVK8a9r9I5R5cuXRg7dmyeaTNmzOCjjz7i1Vdf5eGHH2by5Mk7NW8REflrUIuliIjsEQprsVy2bBlbt24FYPny5Xz11VekpqYWWOYvv/wCQHZ2NoMGDeKyyy4rtB4nnHACjz32GFu2bAF8QLphwwbAB2vLli0jOzubcePG0aZNG5o1a8aUKVNYvXo127ZtY+zYsbRv357Vq1eTnZ1Njx49GDRoEHPmzMkzr6pVq7J+/XqAfMspSIsWLfjss8/49ttvAdiwYQPffPMNWVlZrFu3jpNPPpnhw4czf/78QpdbRET+2tRiKSIifwmffvop9913H+XKlaNMmTI8+uijOU9T7dWrFxkZGaxevZo6depw11130bdvX8aOHcsjjzwCwJlnnsmFF15Y6HwuvvhiMjMzady4Mc459ttvP9544w3AP2W2f//+fPvtt3To0IEzzjiDMmXKcN9999GhQwecc3Tr1o3TTjuN+fPnc+GFF+Y84Ofee+/NM69+/fpx4oknUrt2bT7++OO45RRkv/32Y9SoUfTq1YvNmzcDMGjQIKpWrcppp53Gpk2bcM4xbNiwIq9nERH5a9LfjRRAfzciIiLFJSMjg6FDh/LOO+8kuyoiIiJFpr8bERERERERkVKhrrAiIiKlID09nfT09GRXQ0REpESoxVJEREREREQSosBSREREREREEqLAUkRERERERBKiwFJEREREREQSoof3FGDV+lUMzBiY7GpIMUgnPdlVEBEREZFdRHpGRrKrkGvgwGTXoFioxVJEREREREQSosBSREREREREEqLAUkRERERERBKiwFJEREREREQSosBSREREREREEqLAUkRERERERBKiwFJEREREREQSosBSREREREREEqLAUkRERERERBKiwFJEREREREQSosBSREREREREEqLAUkRERERERBKiwFJEREREREQSosBSREREREREEqLAUkRERERERBKiwFJEREREREQSosBSREREREREEqLAUkRERERERBKiwFJEREREREQSosBSREREREREEqLAUkRERERERBKiwFJEREREREQSosBSREREREREEqLAUkRERERERBJSaGBpZrXM7EUz+87MZpvZdDM7ozQqV0CdTjezelHD/zKzzoXkGWVmPUu+diIiIiIiIn8tBQaWZmbAG8BU59zhzrnjgXOAOqVQt4KcDuQEls65O5xzHyavOiIiIiIiIn9dhbVYdgT+dM49HhnhnFvunHsIwMxSzGyImc00swVmdmkYb2H8IjNbaGZnh/EHmtlUM5sXprUN47PMbLiZLTazj8xsvzD+klD2fDMbb2aVzKwVcCowJJTzt+jWSDO7I+RZZGZPhuBYRERERERESkhhgeWxwJwCpvcF1jnnmgJNgUvM7DDgTKAR0BDojA8CDwTOBSY45yLT5oVyKgOznHPHAlOAO8P415xzTZ1zDYElQF/n3DTgLWCAc66Rc+6/MXV6OORJA/YCuheyjCIiIiIiIpKAsjuS2MweAdrgWzGbAl2BBlH3LlYHjgxp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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Extract statistics for geospatial extraction \n", "\n", "num_records = len(gdf_repository)\n", "per_records_geoextent = sum(gdf_repository.bbox.is_valid)/num_records*100\n", "per_records_no_geoextent = (sum(gdf_repository.format == \"repository\")/num_records*100) - per_records_geoextent\n", "per_records_failure = sum(gdf_repository.format == \"repository_error\")/num_records*100\n", "\n", "# Extract statistics for temporal extraction\n", "per_records_temp = (num_records-sum(gdf_repository.tbox.isnull()))/num_records*100\n", "per_records_no_temp = (sum(gdf_repository.tbox.isnull())-sum(gdf_repository.format == \"repository_error\"))/num_records*100\n", "\n", "# Store results\n", "rec_successful = [per_records_geoextent,per_records_temp]\n", "rec_no_extraction = [per_records_no_geoextent,per_records_no_temp]\n", "rec_failure = [per_records_failure,per_records_failure]\n", "\n", "## Plot\n", "fig, ax = plt.subplots(figsize=(15,3))\n", "\n", "# Plot configuration\n", "ext_type = [\"Geospatial \\n extent\",\"Temporal \\n extent\"]\n", "plt.barh(ext_type, rec_successful,color='g',alpha=0.5,label ='Successful')\n", "plt.barh(ext_type, rec_no_extraction,color='grey',alpha=0.5,label ='No extraction',left = rec_successful)\n", "plt.barh(ext_type, rec_failure,color='red',alpha=0.5,label ='Geoextent failure',left = [sum(x) for x in zip(*[rec_successful,rec_no_extraction])])\n", "plt.xlabel('(%) Percentage of repositories')\n", "fig_num = 1\n", "plt.annotate('n='+str(num_records)+' repositories', (45,0.5))\n", "plt.annotate('Figure '+ str(fig_num)+'. Extraction results of temporal and geospatial metadata for Zenodo records',\n", " (0,0), (200, -40), xycoords='axes fraction', weight='bold', textcoords='offset points', va='center')\n", "plt.annotate('https://o2r.info/geoextent/', (0,0), (710,-35), xycoords='axes fraction', textcoords='offset points', va='top')\n", "fig_num +=1\n", "plt.legend(loc=1)\n", "plt.show()\n", "\n", "# dataframe with results\n", "df_repo_extractions = pd.DataFrame.from_dict({\"% Successful extractions\":rec_successful,\n", " \"% No extraction\":rec_no_extraction,\n", " \"% Geoxtent failure\": rec_failure},orient='index',columns=['Geospatial extraction', 'Temporal extraction']).transpose()\n", "\n", "df_repo_extractions['Number success']= df_repo_extractions['% Successful extractions']/100*num_records\n", "df_repo_extractions['Number No extractions']= df_repo_extractions['% No extraction']/100*num_records\n", "df_repo_extractions['Number Geoextent Failure']= df_repo_extractions['% Geoxtent failure']/100*num_records" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Table 2. Repository extraction status by parameter" ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "scrolled": true }, "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", "
% Successful extractions% No extraction% Geoxtent failureNumber successNumber No extractionsNumber Geoextent Failure
Geospatial extraction14.42006381.1912234.38871546.0259.014.0
Temporal extraction2.50783793.1034484.3887158.0297.014.0
\n", "
" ], "text/plain": [ " % Successful extractions % No extraction \\\n", "Geospatial extraction 14.420063 81.191223 \n", "Temporal extraction 2.507837 93.103448 \n", "\n", " % Geoxtent failure Number success \\\n", "Geospatial extraction 4.388715 46.0 \n", "Temporal extraction 4.388715 8.0 \n", "\n", " Number No extractions Number Geoextent Failure \n", "Geospatial extraction 259.0 14.0 \n", "Temporal extraction 297.0 14.0 " ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_repo_extractions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From a total of **319** Zenodo records analyzed, we extracted the geospatial extent from **14.42%** and the temporal extent from **2.51%**. geoextent did not retrieve the geospatial and temporal extent in **81.19%** respectively **93.10%** of the cases. That means that geoextent explored all files in those records, but did not encounter supported files to retrieve information. Finally, the extraction with geoextent failed due to unknown reasons in **4.39%** of the records.\n", "\n", "A similar analysis is possible for the individual files. In this case, only two outputs are possible:\n", "\n", "1. extraction is successful\n", "2. there is no extraction at all\n", "\n", "In the following code, we first remove folders and ZIP archives from the used data subset, as the data files include both the files and the combined result for folders and ZIP archives." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Figure 2. Files extraction status by parameter\n", "" ] }, { "cell_type": "code", "execution_count": 64, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5wAAAD3CAYAAABxaVvVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABAOUlEQVR4nO3de7xVc/7H8deni0iJhOli5DYhkkp1zqmciGkil5/8RDNEw5DLDHWSIQxyK4zcchlyafSj3MYwikQjoZuUxgg1QqjppJPufX5/fL/7tNvtfc6pzm53eT8fj/04e33X+n7X97vW2muvz/5+1zrm7oiIiIiIiIhUtiq5roCIiIiIiIhsnxRwioiIiIiISFYo4BQREREREZGsUMApIiIiIiIiWaGAU0RERERERLJCAaeIiIiIiIhkRbVcV2BrVq9ePW/cuHGuqyEiIiIiIpITkydPXuDue21qfgWcZWjcuDGTJk3KdTVERERERERywszmbk5+DakVERERERGRrFDAKSIiIiIiIlmhgFNERERERESyQvdwioiIiIhsR1atWsW8efNYvnx5rqsi25Cdd96ZRo0aUb169UotVwGniIiIiMh2ZN68edSuXZvGjRtjZrmujmwD3J2FCxcyb9489t9//0otWwFnGZYsWcK4ceNyXQ0RERERkQqrU6cOe+65JyUlJbmuimxDdtppJ4qLiys9/tE9nCIiIiIi2xn1bMrGytYxo4BTREREREQq1aBBg2jdujV5eXkUFBTw4Ycf5rpK65kwYQKtW7emoKCAZcuWZVyuS5cuTJkyZbPXN3jw4M0uI2H69Om8/vrrpdOvvvoqd911V6WVX9k0pFZEREREZDt2y4RbKrW8P+b/scz577//Pv/4xz8YP348NWrUYOHChaxcubJS67C5nn32Wa688kq6d+++RdZ355130rdv3w3S3R13p0qVivcDfvzxx0yZMoVf/vKXQAiKu3TpUml1rWzq4RQRERERkUrz3Xffseeee1KjRg0A9txzT+rXrw/A4YcfzsKFCwGYMmVKaaBUUlLCxRdfTNu2bcnLy+Oll14CYMyYMbRv3578/Hy6du0KwNKlS+nduzeFhYW0a9eOv//97wDMmjWLwsJCCgoKyMvLY/bs2SxdupRu3bqRn59PmzZtGDVqFE888QTPP/88AwcOpFevXowfP54zzjijtP59+vRh+PDhZbZx6tSp/OpXv6JDhw6ceuqpzJ8/n8WLF9OiRQs+++wzAM477zyGDRvG9ddfz7JlyygoKKBXr17MnTuXFi1acOGFF9KmTRvmzZvHFVdcwTHHHEPr1q0ZOHBg6XomT55Mp06dyM/Pp7CwkMWLFzNw4ECef/55CgoKGDVqFMOHD6dPnz4AzJ07l5NOOom8vDy6du3KV199BcBFF11EUVERnTp1olmzZrz44oubvoM3kno4RURERESk0hx77LHcfvvtHHXUURQWFnL66afTrl27MvPccccd7LbbbkycOBGARYsWsWDBAi6//HJee+01GjduzH//+18gDE/t0KEDDzzwAMXFxXTs2JHCwkL+8pe/cPHFF3PmmWeycuVK1qxZw+jRo6lfvz4jR44EYPHixdSpU4f33nuPzp07c+qppzJ+/PiNat+qVasoKipixIgR1KtXj1GjRnHjjTfywAMPMHjwYC666CIuvvhiiouL6dmzJwAPP/ww7777LhCCws8//5yhQ4fSunVrAAYMGEDdunVZs2YNXbt2ZcaMGfziF7/gvPPO4/HHH6dly5b8+OOP1KxZk2uuuYYpU6Zw5513AqwXHBcVFXHWWWfRo0cPnnrqKfr168czzzwDhB8CRo8ezb///W/OPPNMTj311I1q96ZSwCkiIiIiIpWmVq1avPPOO0yYMIF33nmHnj178qc//YkePXpkzDNu3Dgee+yx0uk99tiD1157jfz8fBo3bgxA3bp1ARg7diyvvvoq9957LwArVqxg3rx5tG7dmsGDB/PNN9/QtWtXDjroIA477DCuueYarrvuOjp37kx+fv5mt++zzz5j1qxZnHLKKQCsWbOGffbZBwjB9osvvkifPn2YMGFCxjJ+/vOflwabAC+88ALDhg1j9erVzJ8/n3/961+YGfvssw8tW7YEYLfddiu3bh988EFpANq9e3cGDBhQOu/EE0+kSpUqHHLIIfzwww8b3/BNpIBTREREREQqVdWqVWnfvj3t27enadOm/PWvf6VHjx5UrVqVtWvXAiFQ3BTuztNPP83BBx+8XnqTJk1o1aoVr7/+Ot26deOee+7hmGOO4Z133mH06NHcdNNNHHPMMfTv33+9fNWqVSutU0Xq5e4ccsghvPnmmxvMW7t2LZ9++ik1a9akuLiYhg0bpi2jZs2ape/nzJnDkCFDGDduHHvssQcXXXTRJm+bsiSGOCfasKXoHk4REREREak0n332GbNnzy6dnj59Ovvuuy8A++23H1OnTgUovU8ToGPHjjzyyCOl04sWLeLoo49mwoQJzJkzB6B0SO1xxx3H0KFDS4Omjz76CIAvv/yS/fffn4svvpgTTzyRGTNm8O2331KzZk26d+/O5ZdfXrpssn333ZdPP/2UFStWUFxczNtvv11m+w4++GAWLFjA+++/D4QhtrNmzQLg/vvvp0mTJvzlL3+hd+/erFq1CoDq1auXvk+1ZMkSdt11V+rUqcP333/PmDFjStfz3XffMXny5NLlVq9eTa1atTL+j9U2bdqUDh9+9tlnK6VHd3Oph1NERERERCpNSUkJRUVFLF68mGrVqnHAAQcwZMgQAPr3788ll1zCwIED17uvs6ioiD59+tCmTRuqVq1K//79Ofnkk7nnnnv49a9/zdq1a9lrr7146aWX6NevH/379ycvL4+1a9ey33778dxzz/HCCy8wYsQIqlevzt57702fPn2YMmUKAwYMoEqVKlSrVo277757g/o2atSI0047jTZt2rDffvvRrFmzMtu30047ld4f+eOPP7J69Wp69+5NtWrVeOKJJ3jrrbeoXbs2+fn53HHHHVxzzTX07NmTvLw8jjzySK677rr1yjviiCNo1qwZLVu2pFGjRrRt27Z0PY8//jhFRUUsX76cnXfemZdffpn27dtz1113UVBQwJVXXrleWYMGDaJ3794MGTKEevXq8cADD2zSPqxMtiW7U7c1TZo08YceeijX1RARERERqbA6depw0EEH5boasg2aPXs2ixcvXi+tY8eOk9291aaWqSG1IiIiIiIikhUKOEVERERERCQrFHCKiIiIiIhIVijgFBERERERkaxQwCkiIiIiIiJZoYBTREREREREskIBp4iIiIiIVKrddtuNP/7xj6XTQ4YM4ZZbbsna+l555RX+9a9/VVp5gwcPXm+6U6dOlVb2jqZarisgIiIiIiLZM2HChEotLz8/v9xlatSowd/+9jf69OnDnnvuWanrT+eVV16hc+fOHHLIIRvMW716NdWqbVzYc+edd9K3b9/S6TfeeGOz67ijUg+niIiIiIhUqmrVqtGzZ0/uv//+DebNnTuXk046iby8PLp27cpXX321wTJLly6ld+/eFBYW0q5dO/7+978D0K9fP2677TYgBIGdO3fm/fff59VXX2XAgAEUFBTwxRdf0KVLF6666iqOOeYYHnzwQV577TU6duxIu3btOPnkk/n+++8BKCkp4eKLL6Zt27bk5eXx0ksvcf3117Ns2TIKCgro1asXAPXr1wfA3bn22mtp06YNbdu2ZdSoUQCMHz+eLl268Jvf/IaWLVvSq1cv3L3yN+w2SD2cIiIiIiJS6S644ALy8/P5/e9/v156UVERZ511Fj169OCpp56iX79+PPPMM+stM3jwYDp06MADDzxAcXExHTt2pLCwkBtuuIHCwkLy8/Pp168fI0eO5IADDqBLly507tyZU089tbSMlStX8vbbbwOwaNEixo4di5nxxBNP8Oc//5lbbrmFO+64g912242JEyeWLnfKKafw8MMP8+67727QppdffpmPP/6YCRMmsHDhQgoLCykoKABg+vTpvP/++9SvX5/jjz+eiRMnkpeXV5mbdJukgFNERERERCrdbrvtRvfu3Rk6dCi77LJLafoHH3zA8OHDAejevTsDBgzYIO/YsWN59dVXuffeewFYsWIF8+bNo0mTJtx777107tyZW2+9lQMOOCDj+k8//fTS99988w09e/bku+++Y+XKley3334AjBs3jscee6x0uT322KPMNr333nt069aNqlWrsvfee1NQUMCUKVOoXbs2LVu2pGHDhgA0a9aMuXPnKuBEAaeIiIiIiGRJ79696dChAz169NiofO7O008/zcEHH7zBvJkzZ1K3bl3mz59fZhk1a9YsfV9UVMSll15Kly5dGD9+PLfeeutG1acidtppp9L3VapUYc2aNZW+jm2R7uEUEREREZGsqFu3LqeddhpPPfVUaVqbNm0YOXIkAM8++2zahxAdd9xxDB06tPQ+yI8++giA//znP9x7773885//ZMyYMXz44YcA1KpVi5KSkoz1+PHHH0vvw/zrX/9amt6xY0ceeeSR0ulFixYBUL16dVatWrVBOfn5+YwaNYo1a9awYMECJkyYQMuWLSu2MXZQCjhFRERERCRrLrvsMhYuXFg6PWjQIIYPH05eXh4jRozg9ttv3yBPv379WL16NXl5ebRu3Zqbb74Zd+fSSy9l4MCB1K9fn/vuu4/LLruM5cuX061bN+655x7atWvHF198sUF5V199Neeeey4dOnRY76m5RUVFFBcX06ZNG/Lz8xk/fjwAPXv2JC8vr/ShQQldu3bl8MMPJz8/n5NOOokbb7yRffbZp7I21XbJNufpSWa2J/BmnPwZsAb4IU63dveVm1e9ymNmNwAl7j64vGUTmjRp4g899FD2KiUiIiIiUsnq1KnDQQcdlOtqyDZo9uzZLF68eL20jh07Tnb3Vpta5mbdw+nuC4HmsGkBXWUzs6rursHSIiIiIiIiW4FKH1JrZi3N7G0zm2xmr5tZ/Zg+zszuNrNJZjbLzI42s+fN7DMzuzku09jM/mVmw+MyI82sZpx3nJlNNbOPzewxM6sR0+eY2e1mNgU4w8wuMLMPzewjMxuVyC8iIiIiIiJbVmUHnAbcC3Rz95bAY8DApPkrY3fsUOAl4BLgcKBnHJ4L0AR4wN0PBX4EepvZzsAw4Ex3P4LQM3txUrkL3b2Fu48Annf3o939SGAWsP7AaxEREREREdkiKjvgrEEIIMeY2TTgWqBR0vyX49+PgZnu/q27rwC+APaN875y98R/WX0aaEcIQr9093/H9CeADknl/l/S+8PNbLyZfQz0AJpWSstERERERLYRm/OcFtkxZeuYqez/w2mEQDLTfzhdEf+uTXqfmE7UJbWlFWn50qT3w4BT3f0jM+sJFFYgv4iIiIjIdmHNmjUsXryYOnXqYGa5ro5sA9ydxYsXZ+V/h1Z2wLkC2MvM8tz9PTOrDvzC3WduRBk/T+QHzgb+CXwKNDazg9x9NvAb4O0M+WsD38Z19wC+3uTWiIiIiIhsY5YuXcp3333HggULcl0V2YasWbOGpUuXlr/gRqrsgHMt0A0YYmZ1Yvl/BjYm4PwUuMTMHgM+AR509+Vmdh7wnJlVAz4k3AeazgDgfcK/Z3mfEICKiIiIiOwQ3J2SkpJcV0ME2Mz/w1nZzKwx8Iq7H57DOlwIXAiwzz77tBwxYkSuqiIiIiIiIpJTm/t/OCv936Js69z9YXdv5e6t6tSpk+vqiIiIiIiIbLMqe0jtZnH3OYSn3IqIiIiIiMg2bpvq4TSz3c2s92aW0dPMGlRWnURERERERCS9bSrgBHYHNivgBHoCCjhFRERERESyLOcBp5mdYGbvmdkUM3vOzGqZ2X5m9pmZ1TOzKmY23sxOAG4DDjSzaWY2KOYvMrMPzWy6mf0ppjU2s1lm9oiZzTSz0Wa2i5l1A1oBw2MZu+Su5SIiIiIiItu3nAacZlYPuBbo5O4tgEnAle4+F7gdeBDoA3zi7qOB/sDn7t7c3YtiEHow0BpoDrQ0sw6x+IOB+929KVAMnO7uI+M6esQylm2ptoqIiIiIiOxocv3QoLbAYcC7ZgawE/AegLs/amZnABcRgsl0ToivqXG6FiHQ/A/wpbtPi+mTgcaVXnsRERERERHJKNcBpwFj3P2sDWaY1QQaxclawJIM+W9194dS8jYGViQlrQE0fFZERERERGQLyvU9nBOBAjM7CMDMdjWzX8R5twPDgeuAR2LaEqB2Uv7XgfPNrFbM39DM9i5nnalliIiIiIiISBbktIfT3X8ws57AM2ZWIyZfa2b1gaOBAndfY2anm9l57v64mb1rZjOA1+J9nIcC78UhuSXArwk9mpkMA4aa2TIgT/dxioiIiIiIZIe5e67rsNVq0qSJP/TQQ+UvKCIiIiIish3q2LHjZHdvtan5cz2kVkRERERERLZTCjhFREREREQkKxRwioiIiIiISFYo4BQREREREZGsUMApIiIiIiIiWaGAU0RERERERLJCAaeIiIiIiIhkhQJOERERERERyQoFnCIiIiIiIpIVCjhFREREREQkKxRwioiIiIiISFYo4BQREREREZGsUMApIiIiIiIiWaGAU0RERERERLJCAaeIiIiIiIhkhQJOERERERERyQoFnCIiIiIiIpIVCjhFREREREQkKxRwioiIiIiISFYo4BQREREREZGsUMApIiIiIiIiWVEt1xXYmtWuXZvCwsJcV0NERERERGSbpB5OERGR7dCYMWNo2bIlRxxxBC1btmTs2LGl8woLC2nSpAnNmzenefPmfP/99wDMnTuX4447jmbNmlFYWMi8efNK81StWrV0+ZNPPrk0vWfPnuy///6l86ZNm5a2PmeddRbNmjXj7rvv5rrrruONN94orcukSZOysAVERGRroB5OERGR7VC9evX429/+RoMGDZgxYwa//OUv+frrr0vnDx8+nFatWq2Xp2/fvpxzzjmce+65jB07lquvvpqnnnoKgF122SVjMDlo0CC6deuWsS7z58/nww8/ZPbs2ZvfMBER2aaoh1NERGQrNWfOHA499FAuuOACmjZtygknnMCyZcsqlPeoo46iQYMGADRt2pRly5axYsWKMvN88sknHHvssQB07NiRl156afMaEJ1wwgl8/fXXNG/enPHjx9OzZ09Gjhy5wXKjR48mLy+PFi1acMYZZ1BSUgJA//79Oeyww2jWrBl9+/atlDqJiMiWoYBTRERkK/bZZ59xySWXMHPmTHbffXdGjRoFhF7FxDDW5Nfll1++QRmjRo2iRYsW1KhRozTtvPPOo3nz5tx00024OwBHHnkkzz//PAAvvPACS5YsYeHChQAsX76cVq1a0bZtW1588cX1yr/mmmto1qwZV1xxRdqg9uWXX+bAAw9k2rRptG/fPm07FyxYwM0338wbb7zBlClTaNWqFXfddRcLFy7khRdeYObMmUyfPp1rr7124zeiiIjkjIbUioiIbMUS90cCtGzZkjlz5gBQVFREUVFRuflnzpzJVVddxejRo0vThg8fTsOGDVmyZAmnn346Tz31FOeccw6DBw/m0ksvZdiwYXTo0IGGDRtStWpVINzf2bBhQ7744guOPfZYjjjiCA488EBuvfVWfvazn7Fy5UouvPBCbr/9dq677rqNbufEiRP55JNPKCgoAGDlypXk5eVRp04ddt55Z3r16sVJJ53ESSedtNFli4hI7ijgFBER2Yol90pWrVq1dEjtoEGDGD58+AbLd+jQgSFDhgAwb948TjvtNJ588kkOPPDA0mUaNmwIhKexn3322XzwwQecc845NGjQoLSHs6SkhFGjRrH77ruvl+eAAw6gsLCQqVOncuCBB1K/fv3Sep533nkMHjx4k9rp7hx//PE888wzG8z74IMPePPNNxk5ciT33Xffeg9AEhGRrZsCThERkW1QeT2cxcXFnHjiidx2222lvYYAq1evpri4mHr16rFq1SpeeeUVOnXqBIRhrXXr1qVKlSrceuutnH/++QAsWrSImjVrUqNGDRYsWMC7775Lv379APj222+pX78+7s6LL77I4Ycfvkntadu2LZdccgmzZ8/moIMOYunSpXz99dc0aNCAn376iS5dulBQUMABBxywSeWLiEhuKOAUERHZDt13333Mnj2bG2+8kRtvvBEID+XZdddd+eUvf8mqVatYs2YNnTp14oILLgBg3LhxXH311ZgZHTp04P777wdg1qxZ/O53v6NKlSqsXbu29CE+AD169OCHH37A3WnevDlDhw7dpPrutddeDBs2jLPOOqv0PtCbb76Z2rVrc8opp7B8+XLcnbvuumtzN42IiGxBlnhQgGyoVatWrv8NJiIiIiIiOyozm+zurcpf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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Extract only files (no folders or zipfile)\n", "uni_files_gdf = gdf_files[~gdf_files.format.isin([\"folder\",\"zip\"])].copy().reset_index(drop=True)\n", "uni_files_gdf.format = uni_files_gdf.format.str.lower()\n", "\n", "# Extract statistics for geospatial extraction \n", "num_files = len(uni_files_gdf)\n", "\n", "# Percentage files with valid bbox (i.e., valid geometry) from total number of files\n", "per_files_geoextent = sum(uni_files_gdf.bbox.is_valid)/num_files*100\n", "# Percentage files without valid bbox (i.e., no geometry) from total number of files\n", "per_files_no_geoextent = 100-per_files_geoextent\n", "\n", "# Extract statistics for temporal extraction\n", "per_files_temp = (num_files-sum(uni_files_gdf.tbox.isnull()))/num_files*100\n", "per_files_no_temp = 100-per_files_temp\n", "\n", "# Record results\n", "files_successful = [per_files_geoextent,per_files_temp]\n", "files_no_extraction = [per_files_no_geoextent,per_files_no_temp]\n", "\n", "# Plot\n", "status = [\"Successful extraction\",\"No extraction\"]\n", "fig, ax = plt.subplots(figsize=(15,3))\n", "plt.barh(ext_type, files_successful,color='g',alpha=0.5,label ='Successful')\n", "plt.barh(ext_type, files_no_extraction,color='grey',alpha=0.5,label ='No extraction',left = files_successful)\n", "plt.xlabel('(%) Percentage of files')\n", "plt.xlim(0,100)\n", "plt.legend(status,loc=1)\n", "plt.annotate('n='+str(num_files)+' files', (50,0.5))\n", "plt.annotate('Figure '+ str(fig_num)+'. Extraction results of temporal and geospatial metadata for individual files from Zenodo records',\n", " (0,0), (120, -40), xycoords='axes fraction', weight='bold', textcoords='offset points', va='top')\n", "plt.annotate('https://o2r.info/geoextent/', (0,0), (710,-60), xycoords='axes fraction', textcoords='offset points', va='top')\n", "fig_num+=1\n", "plt.show()\n", "\n", "# dataframe with results\n", "df_files_extractions = pd.DataFrame.from_dict({\"% Successful extractions\":files_successful,\n", " \" % No extraction\":files_no_extraction},orient='index',columns=['Geospatial extraction', 'Temporal extraction']).transpose()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Table 3. Files extraction status by parameter" ] }, { "cell_type": "code", "execution_count": 65, "metadata": { "scrolled": true }, "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", "
% Successful extractions% No extraction
Geospatial extraction2.13446397.865537
Temporal extraction0.08090999.919091
\n", "
" ], "text/plain": [ " % Successful extractions % No extraction\n", "Geospatial extraction 2.134463 97.865537\n", "Temporal extraction 0.080909 99.919091" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_files_extractions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From **25,955** files analyzed, **0.08%** had a successful temporal extraction and **2.13%** a geospatial extraction. Files for which neither temporal nor geospatial metadata could be extracted are diverse. For instance, Zenodo records include non-data files (e.g., documentation, code) or data that has no geospatial component (e.g., laboratory measurements). Even for file formats designed to store geospatial data, there is a risk of ambiguity or lack of information regarding the coordinate reference systems, or geospatial data file formats may be unsupported. Therefore, we took investigated files in known geospatial data formats. This group gives us a better idea of the proportion of geospatial metadata that we could extract automatically." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Figure 3. Geospatial extraction status by potential files\n", "" ] }, { "cell_type": "code", "execution_count": 66, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5UAAADjCAYAAAAVOzCSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA8IElEQVR4nO3dd5wV1fnH8c8DCwiCSNMfiLqiBixBQAR2KS6iBlABI4koMaBGFCNopIidaLAgRgULdoyi2EtUbFEEpaggIorEBooUBWmLSFnO749z7u7d3Xu3zC7ei/m+X6/72qlnnjl3Zu48M2dmzTmHiIiIiIiISBRVUh2AiIiIiIiI7LqUVIqIiIiIiEhkSipFREREREQkMiWVIiIiIiIiEpmSShEREREREYlMSaWIiIiIiIhElpHqANJRw4YNXWZmZqrDEBERERERSYm5c+euds41Ksu0SioTyMzM5IMPPkh1GCIiIiIiIilhZkvLOq2av4qIiIiIiEhkSipFREREREQkMiWVIiIiIiIiEpmeqRQRERER+RXYtm0by5Yt4+eff051KLIL2W233WjatCnVqlWLXIaSShERERGRX4Fly5ZRp04dMjMzMbNUhyO7AOcca9asYdmyZRxwwAGRy1FSmcDyjcsZPW10qsMgh5xUhyAiIiIiu4i6devSoEEDcnNzUx2KlEGdOnVSHQJmRoMGDfjhhx8qVI6eqRQRERER+ZXQHUopr8rYZpRUioiIiIhIpbjpppto164dWVlZdOzYkffffz/VIRUyc+ZM2rVrR8eOHdm8eXPS6Xr27Mm8efMqvLxx48ZVuIyY+fPn8/LLL+f3v/DCC9xwww2VVn5FqPmriIiIiMiv0HUzr6vU8i7LvqzE8XPmzOGVV15hxowZ1KhRgzVr1rB169ZKjaGinnjiCS6++GL69ev3iyzv5ptvZvjw4cWGO+fYsWMHVaqU/R7f/Pnz+eCDD+jZsycAvXr1olevXpUWa0XoTqWIiIiIiFTYqlWraNCgATVq1ACgQYMGNG7cGIDDDz+cNWvWADBv3rz8xCg3N5fBgwfToUMHsrKyeP755wF4/fXX6dy5M9nZ2Zx00kkAbNq0ifPPP5+cnBw6derESy+9BMCiRYvIycmhY8eOZGVl8cUXX7Bp0yb69u1LdnY27du35+mnn+ahhx7imWeeYcyYMZx99tnMmDGDP/zhD/nxDxs2jMmTJ5e4jh9++CE9evSgS5cu9OnTh5UrV7J+/XratGnD559/DsCZZ57JpEmTuPrqq9m8eTMdO3bk7LPPZunSpbRp04ZBgwbRvn17vv32WwYPHkzbtm057LDDuPrqq/OX8/7775Odnc0RRxxBu3btWL9+PVdddRWPP/44rVq14vHHH2fSpElccMEFACxZsoRjjjmGli1b0q1bN7755hsABg4cyNChQ8nOzqZZs2Y89dRTFfiGk9OdShERERERqbBjjjmGG2+8kdatW5OTk8Mpp5xCp06dSpxn7Nix7LHHHsyePRuAtWvXsnr1aoYOHcrUqVPJzMzkxx9/BHxT0i5dunDnnXeybt06unbtSk5ODvfffz+DBw/m1FNPZevWreTl5fHaa6/RuHHj/CRq/fr11K1bl1mzZtG9e3f69OnDjBkzyrV+27ZtY8SIEUyZMoWGDRvy9NNPc80113DnnXcybtw4zjvvPAYPHsy6desYOHAgAPfccw/vvvsuAEuXLuXLL79k4sSJtGvXjjp16jBmzBjq169PXl4e3bp1Y8GCBbRo0YJTTz2Vxx9/nKOOOooNGzZQq1YtrrnmGj744ANuv/12ACZNmpQf25AhQxgwYAADBgzggQceYOjQoTz33HMArFixgnfeeYfPPvuMXr160bdv33Ktd1koqRQRERERkQqrXbs206dPZ+bMmUyfPp2BAwfy97//nf79+yedZ9q0aTzwwAP5/fXq1WPq1KlkZ2eTmZkJQP369QF48803efnll5kwYQIAW7ZsYdmyZbRr145x48axfPlyTjrpJA466CAOPfRQLr/8cq666iq6d+9OdnZ2hdfv888/Z9GiRfTu3RuAvLw89t57b8An1M899xzDhg1j5syZScvYb7/9aNeuXX7/E088wT333MP27dtZsWIFn376KWZG48aNOeqoowDYY489So1t1qxZPPPMMwCcccYZjBw5Mn9cnz59qFKlCoceeiirVq0q/4qXgZJKERERERGpFFWrVqVz58507tyZww47jEcffZT+/ftTtWpVduzYAfhkMArnHI888ggHH3xwoeHNmzenbdu2vPrqq/Tt25fbbruNo48+munTp/Paa69x7bXXcvTRRzNq1KhC82VkZOTHVJa4nHO0aNGC//znP8XG7dixg8WLF1OrVi3WrVvHPvvsk7CMWrVq5Xd//fXXjBs3jvfff5969eoxcOBAfv7551LrobxizZFj67Az6JlKERERERGpsM8//5wvvvgiv3/BggXsu+++AOy///58+OGHAPnPTQJ07dqVe++9N79/7dq1HHXUUcycOZMlS5YA5Dd/7datGxMnTsxPjD766CPAJ2cHHHAAgwcP5oQTTmDhwoWsWLGCWrVq0a9fP4YOHZo/bbx9992XxYsXs2XLFtatW8fbb79d4vodfPDBrF69mjlz5gC+OeyiRYsAuOOOO2jevDn3338/559/Ptu2bQOgWrVq+d1Fbdiwgd133526deuyatUqpk6dCvgkecWKFflvzt24cSPbt2+nTp06bNy4MWFZ2dnZTJkyBYDJkyfTuXPnEtelsulOpYiIiIiIVFhubi4jRoxg/fr1ZGRk0KxZM8aPHw/AqFGj+Otf/8qYMWMKPWc5YsQIhg0bRvv27alatSqjRo2iV69e3HbbbfzpT39ix44dNGrUiOeff56RI0cyatQosrKy2LFjB/vvvz9PPvkkzz77LFOmTKFatWrstddeDBs2jHnz5nHllVdSpUoVMjIyuOWWW4rF27RpU04++WTat2/P/vvvT8uWLUtcv+rVq/Pwww8zcuRINmzYwPbt2zn//PPJyMjgoYce4q233qJOnTpkZ2czduxYLr/8cgYOHEhWVhZHHHEEV111VaHyjjjiCFq3bk2LFi3Yd9996dixY/5yHn/8cYYMGcLmzZupWbMmb7zxBl27duWGG26gVatWXHrppYXKmjBhAmeeeSY33XQTjRo14sEHH4z0HUZlO+sW6K6sSfMmbtDdg1IdBjnkpDoEEREREdlF1K1bl4MOOijVYUgZ1alTJ9Uh5Fu0aBGHHHJIoWFmNtc517Ys86v5q4iIiIiIiESmpFJEREREREQiU1IpIiIiIiIikSmpFBERERERkciUVIqIiIiIiEhkSipFREREREQkMiWVIiIiIiJSKfbYYw8uu+yy/P7x48dz3XXX7bTlvfjii3z22WeVVt64ceMK9R977LGVVvavWUaqAxARERERkco3c+bMSi0vOzu71Glq1KjBv//9b4YNG0aDBg0qdfmJvPjii3Tv3p0WLVoUG7d9+3YyMsqX7tx8880MHz48v/+NN96ocIz/C3SnUkREREREKkVGRgYDBw7kjjvuKDZu6dKlnHjiiWRlZXHSSSfx7bffFptm06ZNnH/++eTk5NCpUydeeuklAEaOHMkNN9wA+ESve/fuzJkzh5dffpkrr7ySjh078tVXX9GzZ08uueQSjj76aO666y6mTp1K165d6dSpE7169eL7778HIDc3l8GDB9OhQweysrJ4/vnnufrqq9m8eTMdO3bk7LPPBqBx48YAOOe44ooraN++PR06dODpp58GYMaMGfTs2ZMzzjiDI488krPPPhvnXOVXbJrTnUoREREREak055xzDtnZ2Vx44YWFho8YMYLTTjuN/v378/DDDzNy5Egee+yxQtOMGzeOLl26cOedd7Ju3Tq6du1KTk4Oo0ePJicnh+zsbEaOHMlTTz1Fs2bN6NmzJ927d6dPnz75ZWzdupW3334bgLVr1/Lmm29iZjz00EPceuutXHfddYwdO5Y99tiD2bNn50/Xu3dv7rnnHt59991i6/TCCy/w8ccfM3PmTNasWUNOTg4dO3YEYMGCBcyZM4fGjRtz3HHHMXv2bLKysiqzStOekkoREREREak0e+yxB/369WPixInUrFkzf/h7773H5MmTAejXrx9XXnllsXnffPNNXn75ZSZMmADAli1bWLZsGc2bN2fChAl0796d66+/nmbNmiVd/imnnJLfvXz5cgYOHMiqVavYunUr+++/PwDTpk3jgQceyJ+uXr16Ja7TrFmz6Nu3L1WrVmWvvfaiY8eOzJs3jzp16nDkkUeyzz77ANCyZUuWLl2qpFJERERERKQizj//fLp06UL//v3LNZ9zjkceeYSDDz642LhPPvmE+vXrs3LlyhLLqFWrVn73iBEjuOCCC+jZsyczZszg+uuvL1c8ZVG9evX87ipVqpCXl1fpy0h3eqZSREREREQqVf369Tn55JN5+OGH84e1b9+ep556CoAnnngi4Yt/unXrxsSJE/OfS/zoo48A+Oabb5gwYQLvvPMOr7/+Ou+//z4AtWvXJjc3N2kcGzZsyH8u8tFHH80f3rVrV+699978/rVr1wJQrVo1tm3bVqyc7Oxsnn76afLy8li9ejUzZ87kyCOPLFtl/A9QUikiIiIiIpVuyJAhrFmzJr//pptuYvLkyWRlZTFlyhRuvPHGYvOMHDmS7du3k5WVRbt27fjHP/6Bc44LLriAMWPG0LhxY26//XaGDBnCzz//TN++fbntttvo1KkTX331VbHyLr30UgYMGECXLl0KvY12xIgRrFu3jvbt25Odnc2MGTMAGDhwIFlZWfkv6ok56aSTOPzww8nOzubEE0/kmmuuYe+9966sqtrl2f/i24lK06R5Ezfo7kGpDoMcclIdgoiIiIjsIurWrctBBx2U6jCkjOrUqZPqEPItWrSIQw45pNAwM5vrnGtblvl1p1JEREREREQiU1IpIiIiIiIikSmpFBERERERkciUVIqIiIiI/ErofSlSXpWxzSipFBERERH5FcjLy2P9+vVKLKXMnHOsWbOG3XbbrULlZFRSPCIiIiIikkKbNm1i1apVrF69OtWhSBlUNJGrLLvtthtNmzatUBlKKkVEREREfgWcc+Tm5qY6DCmj1q1bpzqESqPmryIiIiIiIhKZkkoRERERERGJTEmliIiIiIiIRKakUkRERERERCJTUikiIiIiIiKRKakUERERERGRyJRUioiIiIiISGRKKkVERERERCQyJZUiIiIiIiISmZJKERERERERiUxJpYiIiIiIiESmpFJEREREREQiU1IpIiIiIiIikSmpFBERERERkciUVIqIiIiIiEhkSipFREREREQkMiWVIiIiIiIiEpmSShEREREREYlMSaWIiIiIiIhEpqRSREREREREIlNSKSIiIiIiIpEpqRQREREREZHIlFSKiIiIiIhIZEoqRUREREREJDIllSIiIiIiIhKZkkoRERERERGJTEmliIiIiIiIRKakUkRERERERCJTUikiIiIiIiKRKakUERERERGRyJRUioiIiIiISGRKKkVERERERCQyJZUiIiIiIiISWalJpZntbWaPmtlXZjbXzGaZ2cm/RHBm1srMelawjMsqKx4REREREREpLKOkkWZmwHPAQ86508Ow/YFeOz80AFoBbYGXK1DGZcB1lRKNiIjsktavX8/o0aP57LPP6N69OxdeeCEAP//8M6NHj2b58uVUqVKF7OxsBg0aBMDKlSsZO3Ys69evp06dOlx++eU0atQIgG7dunHAAQcAsPfeezNmzJhCyxs/fjxTp05l6tSpxWLZunUrl156KevXr+f0009n7ty5/OEPfyAzM5N+/fpx9913U7du3Z1ZHSIiIpWqxKQSOAbY6pybGBvgnFsKTAAws6rADUAOUAO4wzl3d0hGxwI9AAf8wzn3eJhnBPDHMP2zzrmrw53PC4Bjgf8D3g7d1wA1zawTcD3wYlj24UA1YLRz7nkzG4hPdGsBB4ZyR5rZDWH++cAnzrn+UStKRER2XdWrV+ess87i66+/5uuvvy407tRTT6V169Zs27aNYcOGMWfOHNq3b8/EiRM5/vjj6d69O/PmzePee+/lsssuyy/vvvvuS7isxYsXk5ubmzSWL774AiB//mOOOaYyVlFERCRlSmv+ehgwr4TxZwPrnXNHAUcB55jZAcDv8XcZj8AnhzeZWWMzOx44GGgXxh9pZl2cc88CK4C/AvcCVzvnvgGuAh53zrUKSenlwJvOuXZA11Du7iGWVsCpwG+BU81sX+fcKGBzmF8JpYjILmzlypUMGDCAcePGMXDgQEaMGMGWLVvKNG/NmjX57W9/S/Xq1QsN32233WjdujUA1apV4+CDD+aHH34AYMmSJbRp0waA1q1b8+6775a6nLy8PCZOnMi5556bcPzatWsZM2YMixcv5i9/+QvfffcdF110EYsXLy427euvv87gwYP5y1/+ws0330xeXh55eXnccMMNnHnmmZx11lk8+eSTZVp/ERGRnam0O5WFmNkdQCf83cujgOOBlmbWN0xSF580dgIec87lAavM7G180tklzPNhmL52mH46MARYCMx2zj2WJITjgV5mNjz07wbsF7r/45xbH+L8FNgf+LY86yciIult2bJlXHnllQwfPpzRo0czffp0jjvuOKZMmcIbb7xRbPqWLVsydOjQMpWdm5vLrFmzOOWUUwA48MADmT59On379mXGjBn89NNPrF+/nrp167J161bOPfdcqlatyumnn06nTp0AePbZZ8nOzqZBgwYJl1GvXj1GjBjB448/zvXXX580lqVLl/LWW28xYcIEMjIyuOWWW3jjjTfIzMxk9erVPPjgg/kxi4iIpFppSeUnwCmxHufcX82sIfBBGGTAEOfcq/EzmVmPJOUZcL1z7u4E45oCO4C9zayKc25HkvlPcc4VuqRrZu2B+MvVeZQzYRYRkfTXuHFjDjroIACaN2/OypUrAejXrx/9+vWLXG5eXh7XXnstv//972nSpAkAgwcPZvz48bz66qu0bNmShg0bUrVqVQCmTJlCo0aNWL58ORdffDEHHHAANWrU4O233+bWW2+t2EoC8+bN47///S/nnXce4J/DrFevHtnZ2axYsYLx48fToUMH2rZtW+FliYiIVFRpidebwHVmNtg5d1cYVitu/KvAYDN70zm3zcx+A3wHzADONbOHgPr4O5QjgJ+Ba81ssnMu18z2AbYBPwIPAKcBA4CLgXHARqBOkeUNMbMhzjlnZq2dcx9Ssm1mVs05t62U6UREJM1Vq1Ytv7tKlSrk5eUBVPhO5bhx49hnn33o27dv/rCGDRtyzTXXALB582amT59O7dq1AfJf2NOkSRNatWrFF198QfXq1fnuu+/o398/bbFlyxb69+/P5MmTy72ezjl+97vfcc455xQbd9999/Hee+/xwgsv8NZbb3HJJZeUu3wREZHKVGJSGRK3PsAtZjYS+AHYBMR+we4DMoF54eU8PwB9gGeBLOAj/It6RjrnVgIrzewQYJafnFzgT8B5wAzn3Dtm9hHwvpm9BLwFjAov2rkeuBa4FVhgZlWAr4ETS1nHe8L08/RcpYjIr1NF7lTef//9bNq0iREjRhQaHnvra5UqVZg8eTI9evhGOBs3bqRGjRpUr16d9evXs3DhQvr160dmZibPPPNM/vw9evSIlFACtGnThiuuuIK+fftSr149NmzYwE8//UTNmjXJyMjg6KOPZr/99iv21lkREZFUKLWJqHNuBZDwlzo0Ub0sfIoaET5F57kNuK3I4Gvixm8EWsSNO6rItMXefuCcmwRMius/Ma77EgqS4KTMbBAwCKDu3nqVu4jIr02/fv346aef2LZtG++88w433XQTu+++O4888gj77bdf/r8SOfnkkznhhBOYP38+9957L2ZGy5Yt8/8NydKlS/nnP/+JmeGc47TTTiMzM7NSY83MzOSss85ixIgROOeoWrUqF110EdWrV2fs2LHs2OGfEEl0J1NEROSXZs65VMeQdpo0b+IG3T0o1WGQQ06qQxARERERkZ0gJycn1SGUyMzmOufK9PB+af9SRERERERERCSpnZ5UmtmeZnZ+JZaXY2bZcf3nmdmfK6t8ERERERERKbtf4k7lnkDCpNLMovzbjxwgP6l0zk10zv0rUmQiIiIiIiJSIZGSSjM73sxmmdk8M3vSzGqb2f5m9rmZNTSzKmY2w8yOB24ADjSz+WZ2U7jTOMPMXgA+DeU9Z2ZzzeyT8MKc2HK6h2V8ZGb/MbNM/Jti/xbK62xmo81seJi+lZnNNrMFZvasmdULw6eZ2Y1m9p6Z/dfMOles2kRERERERATK8PbXosysIXAFcKxzbpOZXQJc7Jy7xsxuBO4C3gM+dc69Zmb/BQ53zrUK8+cAbcKwr0OxZznnfjSzmvh/J/I0PuG9F+jinPvazOqHaSYCuc65caG8bnHh/QsY4px728yuAa4GLoqtq3OunZn1DMOPLe+6i4iIiIiISGFRmp92AA4F3g3/a7I6MAvAOXefmf0BfzexVQllvBeXUAIMNbOTQ/e+wMFAI2B6bDrn3I8lBWVmdYE9nXNvh0EPAU/GTRL752Fz8f9bU0RERERERCooSlJpwOvOudOKjTCrBTQNvbWBjUnK2BQ3Tw7+rmGWc+4nM5sG7BYhrtJsCX/ziLbeIiIiIiIiUkSUZypnAx3N7CAAM9vdzH4Txt0ITAauwjddBZ9Y1imhvLrA2pBQtsDfCY0tp4uZHRCWU7+k8pxz64G1cc9LngG8XXQ6ERERERERqTzlvmPnnPvBzAYCj5lZjTD4CjNrDBwFdHTO5ZnZKWZ2pnPuQTN718wWAlOBl4oU+QpwnpktAhbjk8nYcgYBz5hZFeB74Djg38BTZtYbGFKkrAHAxHDH9CvgzPKun4iIiIiIiJSdOedSHUPaadK8iRt096DSJ9zJcshJdQgiIiIiIrIT5OTkpDqEEpnZXOdc27JM+0v8n0oRERERERH5lVJSKSIiIiIiIpEpqRQREREREZHIlFSKiIiIiIhIZEoqRUREREREJDIllSIiIiIiIhKZkkoRERERERGJTEmliIiIiIiIRKakUkRERERERCJTUikiIiIiIiKRKakUERERERGRyJRUioiIiIiISGRKKkVERERERCQyJZUiIiIiIiISmZJKERERERERiUxJpYiIiIiIiESmpFJEREREREQiU1IpIiIiIiIikSmpFBERERERkciUVIqIiIiIiEhkSipFREREREQkMiWVIiIiIiIiEpmSShEREREREYlMSaWIiIiIiIhEpqRSREREREREIlNSKSIiIiIiIpEpqRQREREREZHIlFSKiIiIiIhIZEoqRUREREREJDIllSIiIiIiIhKZkkoRERERERGJTEmliIiIiIiIRKakUkRERERERCJTUikiIiIiIiKRKakUERERERGRyJRUioiIiIiISGRKKkVERERERCQyJZUiIiIiIiISmZJKERERERERiUxJpYiIiIiIiESmpFJEREREREQiU1IpIiIiIiIikSmpFBERERERkciUVIqIiIiIiEhkSipFREREREQkMiWVIiIiIiIiEpmSShEREREREYlMSaWIiIiIiIhEpqRSREREREREIlNSKSIiIiIiIpEpqRQREREREZHIlFSKiIiIiIhIZEoqRUREREREJDIllSIiIiIiIhKZkkoRERERERGJTEmliIiIiIiIRKakUkRERERERCJTUikiIiIiIiKRKakUERERERGRyJRUioiIiIiISGRKKkVERERERCQyJZUiIiIiIiISWUaqA0hHTeo0YXTO6FSHISIiIiIikvZ0p1JEREREREQiU1IpIiIiIiIikSmpFBERERERkciUVIqIiIiIiEhkSipFREREREQkMiWVIiIiIiIiEpmSShEREREREYnMnHOpjiHtmNlGYHGq4yhBQ2B1qoMogeKrGMUXXTrHBoqvohRfxSi+6NI5NlB8FaX4KkbxRZfOsQHs75xrVJYJM3Z2JLuoxc65tqkOIhkz+0DxRaf4Kiad40vn2EDxVZTiqxjFF106xwaKr6IUX8UovujSObbyUvNXERERERERiUxJpYiIiIiIiESmpDKxe1IdQCkUX8UovopJ5/jSOTZQfBWl+CpG8UWXzrGB4qsoxVcxii+6dI6tXPSiHhEREREREYlMdypFREREREQkMiWVRZhZdzNbbGZfmNmoVMdTlJktMbOPzWy+mX2QBvE8YGbfm9nCuGH1zex1M/s8/K2XZvGNNrPvQh3ON7OeKYptXzN7y8w+NbNPzOzCMDwt6q+E+NKl/nYzs/fM7KMQ39/D8APMbE7Yhx83s+ppFt8kM/s6rv5apSK+EEtVM/vQzF4M/WlRdyXEl051V+xYnC77bgnxpcW+G2LZ08yeMrPPzGyRmWWlWf0lii8t6s/MmsfFMN/MNpjZRelSfyXEly7197dwTF5oZo+FY3XaHPuSxJdOx74LQ2yfmNlFYVhabHslxJeybc/KcZ5s3viwHS4wsza/VJyVwjmnT/gAVYEvgWZAdeAj4NBUx1UkxiVAw1THERdPF6ANsDBu2FhgVOgeBdyYZvGNBoanQd01BtqE7jrAf4FD06X+SogvXerPgNqhuxowB+gAPAH0C8MnAoPTLL5JQN9U11+I62LgUeDF0J8WdVdCfOlUd8WOxemy75YQX1rsuyGWh4C/hO7qwJ5pVn+J4kub+ouLsyqwEtg/neovSXwprz9gH+BroGbofwIY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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# List of potential file formats with geospatial information\n", "potential_geo_formats = ['nc', 'shp', 'shx', 'dbf', 'kml', 'gpkg', 'xls', 'gdbtable','geojson', 'gmt','gml',\n", " 'pdf', 'png', 'tif', 'jpg', 'nc', 'jpeg','img', 'bmp','asc', 'ovr','unw', 'h5', 'kml', 'tiff','csv']\n", " \n", "# Extract total number of files by zenodo record \n", "total_files = uni_files_gdf.zenodo_record_id.value_counts()\n", "\n", "# Extract total number of potential file with geoextent by zenodo record\n", "files_potential_geo_formats = uni_files_gdf['format'].isin(potential_geo_formats).groupby(uni_files_gdf['zenodo_record_id']).sum()\n", "\n", "# Extract total number of files with potential geospatial information\n", "total_files_potential = sum(files_potential_geo_formats)\n", "\n", "# Extract percentage of files with successful geoextent extraction from the potential\n", "per_total_geoextent_potential = sum(uni_files_gdf.bbox.is_valid) / total_files_potential * 100\n", "\n", "## Plot\n", "fig, ax = plt.subplots(figsize=(15,3))\n", "# Plot configuration\n", "plt.barh(\"Geoextent \\n extraction\",per_total_geoextent_potential,color='g',alpha=0.5,label ='Successful extraction')\n", "plt.barh(\"Geoextent \\n extraction\",100-per_total_geoextent_potential,color='grey',alpha=0.5,label ='No extraction',left = per_total_geoextent_potential)\n", "plt.xticks(np.arange(0,101, 5.0))\n", "plt.xlabel('(%) Percentage of files')\n", "plt.annotate('n='+str(total_files_potential)+\" files\", (45,0))\n", "plt.annotate('Figure '+str(fig_num)+'. Geoextent extraction for known geospatial data file formats', (0,0),\n", " (200, -40), xycoords='axes fraction', weight='bold', textcoords='offset points', va='top')\n", "plt.annotate('https://o2r.info/geoextent/', (0,0), (710,-40), xycoords='axes fraction', textcoords='offset points', va='top')\n", "fig_num +=1\n", "plt.legend()\n", "plt.show()\n", "\n", "# dataframe with results\n", "df_files_extractions_from_potential = pd.DataFrame.from_dict({\"Total number of files\":int(num_files),\n", " \"Number of files with potential\":int(total_files_potential),\n", " \"% Files with potential\":100*total_files_potential/num_files,\n", " \"% Successful extractions over potential\":per_total_geoextent_potential,\n", " \"% No extractions over potential\":100-per_total_geoextent_potential},\n", " orient='index',columns=['Geospatial extraction'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Table 4. Geospatial extraction by files" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "scrolled": false }, "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", "
Geospatial extraction
Total number of files25955.000000
Number of files with potential12954.000000
% Files with potential49.909459
% Successful extractions over potential4.276671
% No extractions over potential95.723329
\n", "
" ], "text/plain": [ " Geospatial extraction\n", "Total number of files 25955.000000\n", "Number of files with potential 12954.000000\n", "% Files with potential 49.909459\n", "% Successful extractions over potential 4.276671\n", "% No extractions over potential 95.723329" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_files_extractions_from_potential" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From **25,955** files, there are **12,954** (*49.91%*) files with known formats that could potentially store geospatial information. From these files, only **4.28%** had a successful geoextent extraction, i.e., a bounding box could be derived, and **95.72%** resulted in no extraction. The distribution of these files among the records is relevant to explore the percentages of Zenodo records that could have a successful geoextent extraction, i.e., at least one file with successful extraction." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Figure 4. Geospatial extraction status by repositories with potential files\n", "" ] }, { "cell_type": "code", "execution_count": 68, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA9IAAADvCAYAAAAen+wwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABGyUlEQVR4nO3dd5wV1f3/8deHpiBFxBJQ41oIWIKoCOwCuojmi6iIkUSUIKv+NEGFYATE2IiJHaOCBTUqqCgo1igaK0URG82CqFFUoiggxUU6n98f59zdy+VumWVhQd/Px2MeO3Nm5syZsnPnM+fMjLk7IiIiIiIiIlI+1aq6ACIiIiIiIiLbEgXSIiIiIiIiIgkokBYRERERERFJQIG0iIiIiIiISAIKpEVEREREREQSUCAtIiIiIiIikkCNqi6AbB123nlnz8nJqepiiIiIiIiIVIl33313obvvUp5pFUgLADk5ObzzzjtVXQwREREREZEqYWZflHdaNe0WERERERERSUCBtIiIiIiIiEgCCqRFREREREREEtAz0iIiIiIisk1as2YN8+bNY+XKlVVdFNmGbL/99uyxxx7UrFmzwnkokBYRERERkW3SvHnzqFevHjk5OZhZVRdHtgHuzqJFi5g3bx577713hfNR024REREREdkmrVy5kkaNGimIlnIzMxo1arTJrRhUIy0AfP3D1wyZMKSqiyHys5RPflUXQUREZJvUoEEDCgsLq7oYUk716tWr6iIAVMqNF9VIi4iIiIiIVNANN9xA69atyc3NpV27drz99ttVXaQNTJkyhdatW9OuXTtWrFhR4nRdunRh2rRpm7y8oUOHbnIeKTNmzGD8+PFFw08//TTXXnttpeW/KVQjLSIiIiIiPwlXT7m6UvP7a95fSx3/5ptv8vzzzzN58mS22247Fi1axOrVqyu1DJvqkUce4S9/+Qs9evTYIsu78cYbGTBgwEbp7s769eupVq38dbkzZszgnXfeoUuXLgB07dqVrl27VlpZN4VqpEVERERERCrg22+/pVGjRmy33XYANGrUiMaNGwNw0EEHsWjRIgCmTZtWFAwWFhbSp08f2rZtS25uLk899RQAL774Ih06dCAvL48TTjgBgOXLl3PuueeSn59P+/btefbZZwGYPXs2+fn5tGvXjtzcXD799FOWL19O9+7dycvLo02bNjz22GOMGjWKxx9/nKuuuoqzzjqLyZMn87vf/a6o/BdeeCGjR48udR2nT5/OscceyxFHHEG3bt2YP38+S5cu5dBDD+WTTz4B4IwzzmDkyJFcccUVrFixgnbt2nHWWWfxxRdfcOihh3LOOefQpk0bvvrqK/r06UOrVq048MADueKKK4qW8/bbb5OXl8fBBx9M69atWbp0KZdffjljx46lZcuWjB07lpEjR3L++ecDMHfuXI466ihatGhBp06d+PLLLwEoKCigX79+5OXlsc8++zBu3LhN2MMlU420iIiIiIhIBRx11FFcd911HHLIIeTn53PyySfTvn37Uue5/vrrqV+/PlOnTgVg8eLFLFy4kH79+vHcc8+Rk5PD999/D4Rm0kcccQS33347S5YsoWPHjuTn53PPPffQp08fTjnlFFavXs26det44YUXaNy4cVHguHTpUho0aMAbb7xB586d6datG5MnT060fmvWrGHgwIGMGTOGnXfemccee4wrr7yS22+/naFDh/KnP/2JPn36sGTJEgoKCgC46667eP311wH44osv+O9//8uIESNo3bo19erV46qrrmKnnXZi3bp1dOrUiVmzZtG8eXNOOeUUxo4dy+GHH86yZcuoU6cOV155Je+88w633norACNHjiwqW9++fenduze9e/fm3nvvpV+/fjz55JMAfPPNN7z22mt89NFHdO3ale7duyda7/JQIC0iIiIiIlIBdevWZdKkSUyZMoVJkyZRUFDA3/72N3r27FniPBMmTODee+8tGm7YsCHPPfcceXl55OTkALDTTjsB8MorrzB+/HiGDx8OwKpVq5g3bx6tW7dm6NChfP3115xwwgnst99+HHDAAVxyySVcfvnldO7cmby8vE1ev08++YTZs2dz4oknArBu3Tp22203INxEePLJJ7nwwguZMmVKiXn88pe/pHXr1kXDjzzyCHfddRdr167lm2++4cMPP8TMaNy4MYcffjgA9evXL7Nsb7zxBo8//jgAvXr1YtCgQUXjunXrRrVq1TjggAP49ttvk694OSiQFhERERERqaDq1avToUMHOnTowIEHHshDDz1Ez549qV69OuvXrwdCAFwR7s6DDz5I06ZNN0hv1qwZrVq14j//+Q/du3fnlltu4cgjj2TSpEm88MIL/P3vf+fII49k8ODBG8xXo0aNojKVp1zuTvPmzXn55Zc3Grd+/XrmzJlDnTp1WLJkCbvvvnvWPOrUqVPU//nnnzN06FDefvttGjZsSEFBwSZ/hiqbVFP71DpsDnpGWkREREREpAI++eQTPv3006LhWbNmseeeewKw1157MX36dICi56ABOnbsyN133100vHjxYg4//HCmTJnC3LlzAYqadnfq1IkRI0YUBYMzZ84EQkC6995706dPH4477jjef/99vvnmG+rUqUOPHj3o169f0bTp9txzT+bMmcOqVatYsmQJEydOLHX9mjZtysKFC3nzzTeB0NR79uzZANx22200a9aMe+65h3PPPZc1a9YAULNmzaL+TMuWLWOHHXagQYMGfPvttzz33HNAuDHwzTffFL3x/IcffmDt2rXUq1ePH374IWteeXl5jBkzBoDRo0fToUOHUtelsqlGWkREREREpAIKCwsZOHAgS5cupUaNGuyzzz4MGzYMgMGDB3Peeedx1VVXbfDc9MCBA7nwwgtp06YN1atXZ/DgwXTt2pVbbrmFP/zhD6xfv55ddtmFp556ikGDBjF48GByc3NZv349e+21F48++ihPPPEEY8aMoWbNmuy6665ceOGFTJs2jcsuu4xq1apRo0YNbrrppo3Ku8cee3DSSSfRpk0b9tprL1q0aFHq+tWqVYsHHniAQYMGsWzZMtauXcu5555LjRo1GDVqFK+++ir16tUjLy+P66+/nksuuYSCggJyc3M5+OCDufzyyzfI7+CDD+aQQw6hefPm7LnnnrRr165oOWPHjqVv376sWLGC2rVr89JLL9GxY0euvfZaWrZsycUXX7xBXsOHD+eMM87ghhtuYJddduG+++6r0D6sKNtcVd2ybWnSrImfc+c5VV0MkZ+lfPKruggiIiLbpAYNGrDffvtVdTGknOrVq1fVRSgye/Zs9t9//w3SzOxdd29VnvnVtFtEREREREQkAQXSIiIiIiIiIgkokBYRERERERFJQIG0iIiIiIiISAIKpEVEREREREQSUCAtIiIiIiIikoACaRERERERkQqqX78+f/3rX4uGhw0bxtVXX73ZlvfMM8/w0UcfVVp+Q4cO3WD46KOPrrS8f8pqVHUBREREREREKsOUKVMqNb+8vLwyp9luu+3497//zYUXXkijRo0qdfnZPPPMM3Tu3JnmzZtvNG7t2rXUqJEsxLvxxhsZMGBA0fBLL720yWX8OVCNtIiIiIiISAXVqFGDgoICbrvtto3GffHFFxx//PHk5uZywgkn8NVXX200zfLlyzn33HPJz8+nffv2PPvsswAMGjSIa6+9FgjBbefOnXnzzTcZP348l112Ge3ateOzzz6jS5cuXHTRRRx55JHccccdPPfcc3Ts2JH27dvTtWtXvvvuOwAKCwvp06cPbdu2JTc3l6eeeoorrriCFStW0K5dO8466ywAGjduDIC7c+mll9KmTRvatm3LY489BsDkyZPp0qULvXr14rDDDuOss87C3St/w27lVCMtIiIiIiKyCc4++2zy8vL485//vEH6wIEDOfXUU+nZsycPPPAAgwYN4uGHH95gmqFDh3LEEUdw++23s2TJEjp27Eh+fj5DhgwhPz+fvLw8Bg0axLhx49hnn33o0qULnTt3plu3bkV5rF69mokTJwKwePFiXnnlFcyMUaNGcfPNN3P11Vdz/fXXU79+faZOnVo03Yknnshdd93F66+/vtE6Pf3007z33ntMmTKFRYsWkZ+fT7t27QCYNWsWb775Jo0bN+aYY45h6tSp5ObmVuYm3eopkBYREREREdkE9evXp0ePHowYMYLatWsXpb/11luMHj0agB49enDZZZdtNO8rr7zC+PHjGT58OACrVq1i3rx5NGvWjOHDh9O5c2euueYa9tlnnxKXf/LJJxf1f/311xQUFPDtt9+yevVq9tprLwAmTJjAvffeWzRdw4YNS12nN954g+7du1O9enV23XVX2rVrx7Rp06hXrx6HHXYYu+++OwAtWrTgiy++UCAtIiIiIiIiyZx77rkcccQR9OzZM9F87s6DDz5I06ZNNxr3wQcfsNNOOzF//vxS86hTp05R/8CBAzn//PPp0qULkydP5pprrklUnvKoVatWUX+1atVYt25dpS9ja6dnpEVERERERDbRTjvtxEknncQDDzxQlNamTRvGjRsHwCOPPJL15WWdOnVixIgRRc8Zz5w5E4Avv/yS4cOH89prr/Hiiy/y9ttvA1C3bl0KCwtLLMeyZcuKnnN+6KGHitI7duzI3XffXTS8ePFiAGrWrMmaNWs2yicvL4/HHnuMdevWsXDhQqZMmcJhhx1Wvo3xM6BAWkREREREpBL07duXRYsWFQ3fcMMNjB49mtzcXMaMGcN111230TyDBg1i7dq15Obm0rp1a/7xj3/g7px//vlcddVVNG7cmFtvvZW+ffuycuVKunfvzi233EL79u357LPPNsrv4osvpnfv3hxxxBEbvEV84MCBLFmyhDZt2pCXl8fkyZMBKCgoIDc3t+hlYyknnHACBx10EHl5eRx//PFceeWV7LbbbpW1qbZ59nN8w5psrEmzJn7OnedUdTFEfpbyya/qIoiIiGyTGjRowH777VfVxZByqlevXlUXocjs2bPZf//9N0gzs3fdvVV55leNtIiIiIiIiEgCCqRFREREREREElAgLSIiIiIiIpKAAmkREREREdlm6Z1PklRlHDMKpEVEREREZJu0bt06li5dqmBays3dWbRoEdtvv/0m5VOjksojIiIiIiKyRS1fvpxvv/2WhQsXVnVRpBw2NXitLNtvvz177LHHJuWhQFpERERERLZJ7k5hYWFVF0PK6ZBDDqnqIlQaNe0WERERERERSUCBtIiIiIiIiEgCCqRFREREREREElAgLSIiIiIiIpKAAmkRERERERGRBBRIi4iIiIiIiCSgQFpEREREREQkAQXSIiIiIiIiIgkokBYRERERERFJQIG0iIiIiIiISAIKpEVEREREREQSUCAtIiIiIiIikoACaREREREREZEEFEiLiIiIiIiIJKBAWkRERERERCQBBdIiIiIiIiIiCSiQFhEREREREUlAgbSIiIiIiIhIAgqkRURERERERBJQIC0iIiIiIiKSgAJpERERERERkQQUSIuIiIiIiIgkoEBaREREREREJAEF0iIiIiIiIiIJKJAWERERERERSUCBtIiIiIiIiEgCCqRFREREREREElAgLSIiIiIiIpKAAmkRERERERGRBBRIi4iIiIiIiCSgQFpEREREREQkAQXSIiIiIiIiIgkokBYRERERERFJoFyBtJmtM7MZZva+mf3bzHbczOVKX/YQMxtQSXk1MbNxsb+lmXXZHMvJWGaBmTXZhPkzy9nVzAaXY5m3VnSZIiIiIiIiUrLy1kivcPeW7n4Q8D1w3uYojAWbrZbc3b929+5xsCXQpZTJK0sBUOFAmoxyuvvT7n7tJpZJRESkSi1dupQLLriAY489lltuuWWDcWvWrGHo0KH06tWL008/nYkTJ24wfuLEiXTs2JE5c+ZsySKLiIgUqUjQ+gawO4CZ7Wtmz5vZu2Y22cyax/TdzOwJM5sZu7yY/pdYq/2+mfWPaTlmNsfM7gfeB/Y0s0vM7GMzew1ollqwmfUzsw/NbJaZjcksmJk9a2YtYv90M7s89l9pZmfHZb1vZrWAK4FTYk37KTGLA8xsgpl9Zmb9sq28mRWa2U1m9oGZvWxmu8T0lmY2NZbtCTNraGbdgVbA6Lic2mZ2mJlNjNvsP2bWOM4/wcyuM7O34rp3yFbO9NpmMzvBzN6M6/qSme1Wgf0pIiKyxdWqVYszzzyTPn36bDTuwQcfpGHDhjzwwAOMHDmSli1bFo378ccfefzxx9l///23YGlFREQ2lCiQNrPqQCfg6Zh0F9DX3Q8DBgC3x/RhwER3Pxg4FPjAzA4DzgDaAG2Bs83skDh9U+B2dz8Q2BnoQXFN7OFpRRgMHOLuLYA/ZSniZKCDmTUA1gLtYnoHYFJqIndfDVwOjI017WPjqObA/wGtgSvMrGaWZewAvBPLOhG4IqbfD1wUy/YecIW7jwPeAXq6e8tYpuFA97jN7gWuSsu7hru3BvrH+UsqZ8prQFt3PwQYAwzKUl4REZHNZv78+fTu3ZuhQ4dSUFDAwIEDWbVqVZnz1a5dm1//+tfUqlVro3HPPfccp512GgDVqlWjQYMGRePuvfdeevTokXU+ERGRLaVGOaerbWYzCDXRs4EXzawukAc8amap6baLf48CTgdw93XAUjNrDzzh7ssBzOxxQoD7NPCFu0+N83aI0/0Yp0sF7QCzCLW7TwJPZinnZKAf8DnwLHCMmdUB9nb3OWaWU8Z6Puvuq4BVZvYdsBswL2Oa9UAqoH0QeDwG7ju6e6rt2Sjg0Sz5NwMOImw/gOrAN2njH49/3wXKKivAHsDYWKtdi7DeIiIiW9S8efO47LLLGDBgAEOGDGHSpEksWrSIl156aaNpW7RoQb9+WRt9AVBYWAiEgHnmzJk0adKEfv36sdNOO/Hxxx/z3XffkZuby9ixmfeWRUREtpzyBtIr3L1lDEr/Q3hGeiSwJNa0bqrl5ZzuOOAI4ATgEjP7tbuvTRv/NqEp9WfAi4Ta7bMJgWl5pN9CX0f5to+XM28AAz5w99wyll/eZQ8H/unuT5tZPjAkQVlEREQqRePGjdlvv/0AaNasGfPnz6dXr1706NEjcV7r1q1jwYIFHHTQQZx33nk88sgjjBgxgsGDB3P77bczeHCp79sUERHZIhI17Y61xP2AC4Efgc/N7HdQ9KKwg+OkLwN9Ynr1WGM7GehmZnXMbAfgpJiWaVKcrraZ1SMEzcSXkO3p7q8CFwENgLoZ5VsNfAX8jvAs92RCk/NJbOwHoF6S9Y+qAakXlp0GvObuS4HFZtYhpvciNPvOXM4cYBczy43rVNPMDixjeaWVswHwv9jfO9FaiIiIVJKaNYufhKpWrRrr1q1jzJgx/L//9/826oYNG1ZqXvXr12f77benQ4fwk5qfn8/HH3/Mjz/+yOeff07//v3p0aMHH374IZdccoleOCYiIlWivDXSRdx9upnNAk4FegJ3mNmlQE3Cc7ozgT8Dd5nZWYTa1T7u/oaZjQTeiln9K+aVk5H/NDMbG/P5jlDLDKEZ9IMxKDdgmLsvyVLEyUAnd19hZpMJzZ+zBeyvAoNjk/VrEmyC5UDruM7fAakXlfUGRsRa+88Iz4NDqLkfYWYrgFxCED4srkcN4Gbgg1KWV1o5hxCa1i8GXgH2TrAeIiIim02PHj0qVCNtZuTm5jJjxgwOPfRQpk2bRk5ODnXr1uWpp54qmq5///706dOHZs2alZKbiIjI5mHuSVomi5kVunvdsqfctjRp1sTPufOcqi6GyM9SPvlVXQSRCps/fz4XX3wx9913HwBjx45lxYoVFBQUlDlvjx49+PHHH1mzZg1169blhhtuICcnh/nz53PNNddQWFhIgwYNuOiii9httw0/TKFAWkRk25Ofn1/VRSiVmb3r7q3KNa0C6WR+SoG0mZ0DnAPQYLcGh/Uf079qCyTyM6VAWkRERH4OfkqBdEW+I/2z9lMJogHc/S53b+Xureo0qFPVxREREREREdkmbNOBtJn1j88kp4bHm9mOZcwz18x2zpJennmbm9kMM5tuZvtWtNxJmFlLM+uSNtzVzPTKUhERERERkSqyTQfSQH+gKJB29y4lvICsTOWctxswzt0Pcff/lpVnfJP5pm7jlkBRIO3uT7v7tZuYp4iIiIiIiFRQoiDPzM4ys4/N7C0zu9vMbo3pu5jZY2b2duzaxfSdzOxJM5tlZlPNrEVMPzLW7KZqd+uZWb6ZTTKzZ81sjpmNSAWhZnaHmb1jZh+Y2d9iWj+gCfCqmb0a04pqm+Ny343zlPkWrdS8ZpZjZrPj+n1gZi/ET3F1IQTufdKW9xczez92/WNaTiz//cD7QAcz+8jMRsZtN9rMjjaz183sEzNrHedrbWZvxO0xxcyamVkt4ErglLitTjGzgrTtnmNmr8Tt+7KZ/TKmjzSzYTGfz8yse+b6ioiIiIiISMWUO5A2sybAZUBboB3QPG30LcBN7n44cDLwr5j+N2C6u7cA/grcH9MHAOe5e0ugA7AiprcG+gIHAPsCv43pl8SHvlsAR5pZC3cfBnwNdHT3jlmKfKa7Hwa0AvqZWaPyrivQFLjN3Q8ElgAnu/t4YERcz45mdhjhE1dt4jY528wOSZv/9jj/F8B+wI1xmzUnfH+6fdwOf43zfAR0cPdDgMuBq+N3sS8Hxrp7S3cfm1HO4cCouH1HA+kf52wcl3E8oBpsERERERGRSpLkO9KtgYnu/j2AmT0K/CqOOxo4wMxS09Y3s7qEQO5kAHd/xcwamVl94HXgn2Y2Gnjc3efFed9y989i/g/H+ccBv4+1yjUIAeIBwKwyytvPzE6K/XsSgttF5VzXz919Rux/F8jJMk174Al3Xx7L+zjhpsDTwBfuPjUjv/fidB8AL7u7m9l7aXk3AEaZWVPACd/lLksuxTcbHgCuTxv3pLuvBz40s902mlNEREREREQqJEkgXZpqQFt3X5memBZYb8DdrzWzZwnP/r5uZv+XGpU5qZntTai5PdzdF5vZSGD70gpjZvmE4D7X3X80swllzZNhVVr/OqB2gnkBlpeS3/q04fUU74O/A6+6+0lmlgNMSLjMTOnLzL4jREREREREJLEkz0i/TWhW3dDMahBrmqMXCE2ygfCm6dg7GegZ0/KBhe6+zMz2dff33P26mG+qmXhrM9s7Pht9CvAaUJ8QmC6NNavHpi33B6BelrI2ABbHILo5oel1ZZsMdDOzOma2A3BSTKuoBsD/Yn9BWnpJ6wgwBegR+3tu4vJFRERERESkHModSLv7/4CrgbcITbPnAkvj6H5Aq/jSqw+BP8X0IcBhZjaL8Jxu75jeP76gaxawBngupr8N3ArMBj4nNJ2eCUwnPEP8UFx2yl3A86mXf6V5HqhhZrPjcqdSydx9GjCSsD3eBP7l7tM3IcvrgWvMbDobthR4ldBsfoaZnZIxT1/gjLgdewF/3oTli4iIiIiISDmYe2Zr6lImNqvr7oWxRvoJ4F53f6JSChJqrAe4+/GVkZ8k06RZEz/nzjJfbi4im0E++VVdBBEREZHNLj8/v6qLUCozeze+5LpMSb9xPMTMZhA+6/Q58GTC+UVERERERES2aYleNubuAzZXQdx9Apv+gi0RERERERGRzSppjbSIiIiIiIjIz5oCaREREREREZEEFEiLiIiIiIiIJKBAWkRERERERCQBBdIiIiIiIiIiCSiQFhEREREREUlAgbSIiIiIiIhIAgqkRURERERERBJQIC0iIiIiIiKSgAJpERERERERkQQUSIuIiIiIiIgkoEBaREREREREJAEF0iIiIiIiIiIJKJAWERERERERSUCBtIiIiIiIiEgCCqRFREREREREElAgLSIiIiIiIpKAAmkRERERERGRBBRIi4iIiIiIiCSgQFpEREREREQkAQXSIiIiIiIiIgkokBYRERERERFJQIG0iIiIiIiISAIKpEVEREREREQSUCAtIiIiIiIikoACaREREREREZEEFEiLiIiIiIiIJKBAWkRERERERCQBBdIiIiIiIiIiCSiQFhEREREREUlAgbSIiIiIiIhIAgqkRURERERERBJQIC0iIiIiIiKSgAJpERERERERkQQUSIuIiIiIiIgkoEBaREREREREJAEF0iIiIiIiIiIJKJAWERERERERSUCBtIiIiIiIiEgCCqRFREREREREElAgLSIiIiIiIpKAAmkRERERERGRBBRIi4iIiIiIiCSgQFpEREREREQkAQXSIiIiIiIiIgkokBYRERERERFJQIG0iIiIiIiISAIKpEVEREREREQSUCAtIiIiIiIikoACaREREREREZEEFEiLiIiIiIiIJKBAWkRERERERCQBBdIiIiIiIiIiCSiQFhEREREREUlAgbSIiIiIiIhIAgqkRURERERERBJQIC0iIiIiIiKSgAJpERERERERkQQUSIuIiIiIiIgkoEBaREREREREJAEF0iIiIiIiIiIJ1KjqAsjWoUm9JgzJH1LVxRAREREREdnqqUZaREREREREJAEF0iIiIiIiIiIJKJAWERERERERSUCBtIiIiIiIiEgCCqRFREREREREElAgLSIiIiIiIpKAuXtVl0G2Amb2AzCnqsshP1s7AwuruhDys6RjT6qKjj2pSjr+pKps7cfeXu6+S3km1HekJWWOu7eq6kLIz5OZvaPjT6qCjj2pKjr2pCrp+JOq8lM69tS0W0RERERERCQBBdIiIiIiIiIiCSiQlpS7qroA8rOm40+qio49qSo69qQq6fiTqvKTOfb0sjERERER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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Extract total number of files with successful geoextent extraction by zenodo record\n", "geo_files = uni_files_gdf['bbox'].is_valid.groupby(uni_files_gdf['zenodo_record_id']).sum()\n", "\n", "#Extract number of records by category\n", "num_records_with_files = len(files_potential_geo_formats)\n", "\n", "num_repo_potential_geo = sum(files_potential_geo_formats>0)\n", "per_potential_geoextent = sum(geo_files>0)/num_repo_potential_geo*100\n", "per_potential_no_geoextent = 100-per_potential_geoextent\n", "\n", "## Plot\n", "fig, ax = plt.subplots(figsize=(15,3))\n", "# Plot configuration\n", "plt.barh(\"Records with potential \\n geospatial information\",per_potential_geoextent,color= 'green',alpha=0.5,label ='Successful extraction')\n", "plt.barh(\"Records with potential \\n geospatial information\",per_potential_no_geoextent,alpha=0.5, color = 'gray',label ='No extraction',left=per_potential_geoextent)\n", "plt.annotate('Figure '+str(fig_num)+'. Geoextent extraction for different groups of \\n Zenodo records with at least one potential file with geospatial information', (0,0),\n", " (160, -40), xycoords='axes fraction', weight='bold', textcoords='offset points', va='top')\n", "plt.annotate('https://o2r.info/geoextent/', (0,0), (710,-40), xycoords='axes fraction', textcoords='offset points', va='top')\n", "plt.annotate('n='+str(num_repo_potential_geo), (50,0))\n", "plt.xlabel('(%) Percentage of zenodo records')\n", "plt.legend()\n", "fig_num +=1\n", "ax.xaxis.set_major_formatter(mtick.PercentFormatter())\n", "plt.show()\n", "\n", "# dataframe with results\n", "df_repos_extractions_from_potential = pd.DataFrame.from_dict({\"Total repositories\":int(num_records),\n", " \"Repositories explored\":int(num_records_with_files),\n", " \"Number of repositories with potential\":int(num_repo_potential_geo),\n", " \"% Repositories with potential\":100*num_repo_potential_geo/num_records,\n", " \"% Successful extractions over potential\":per_potential_geoextent,\n", " \"% No extractions over potential\":per_potential_no_geoextent},\n", " orient='index',columns=['Geospatial extraction'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Table 5. Geospatial extraction by repositories" ] }, { "cell_type": "code", "execution_count": 69, "metadata": { "scrolled": true }, "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", "
Geospatial extraction
Total repositories319.000000
Repositories explored301.000000
Number of repositories with potential164.000000
% Repositories with potential51.410658
% Successful extractions over potential28.048780
% No extractions over potential71.951220
\n", "
" ], "text/plain": [ " Geospatial extraction\n", "Total repositories 319.000000\n", "Repositories explored 301.000000\n", "Number of repositories with potential 164.000000\n", "% Repositories with potential 51.410658\n", "% Successful extractions over potential 28.048780\n", "% No extractions over potential 71.951220" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_repos_extractions_from_potential" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "From the **301** Zenodo records analyzed, **164** have at least one file with a supported file format. Consequently, in the best scenario, the percentage of successful geospatial extraction on the level of records would be **51.41%**. However, from the **164** repositories with potential files, only **28.05%** of records could be attributed to a geospatial extent (i.e., **14.42%** over total records).\n", "\n", "To understand the problem better, we next explore the distribution of files per repository. Specifically, exploring the total number of files, the number of potential successful extractions (i.e., supported file formats), and the actual number of successful extractions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Figure 5. Files distribution over repositories\n", "" ] }, { "cell_type": "code", "execution_count": 70, "metadata": { "scrolled": false }, "outputs": [ { "data": { "image/png": "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vPLKK5PY0di67LLLmDVrFrfddtuY5I3l37lcynrwl2tVz4GLtIx2AJgr32q1Fty7EEIIIUSpioe7+a8bTkBr2LhtH6+9s4fLPzc3a+2vfr+fj37kQxx16PS869/v7B5RP6tWrWL58uW0trayYsUKbrvtNu64447hn1gCOjo6CIfDHHnkkZPdiigBZTvtc7jtHArdp2+stosQQgghhCg3lS4nSilMJsWHFzTwpXOOxVjYvT+tNV8651g+vKBhRPWVfVcJR2rmzJmcccYZvPvuuwA8/fTTHHnkkVRXV/Oxj32MTZs2AXDxxReze/duVq5cSWVlJXfeeScAr732GieddBLV1dUcffTRvPTSS+nsj33sY9x8882cfPLJuN1uTj/9dLq6ugBYunQpANXV1VRWVvL3v/+dhx9+mCVLlqSf/41vfIPZs2dTVVXFcccdx1//+tdhX88HH3zAwoUL09mnnnoqAEoptm7dmvU5zzzzDMcccwzV1dWcdNJJvPPOO+nHfvzjHzNz5kzcbjcLFy5k9erVg56/Y8cOqqurSSaTAFx++eVMn35wscOLL76Ye+65J/2ePPjgg2zatImrrrqKv//971RWVlJdXZ2u7+7u5qyzzsLtdnPCCSewbdu2nK/30Ucfpbm5mdraWm699Vbmzp3Ln//8ZwCSySR33HEH8+fPp7a2lvPPP58DBw6kn5vrZw3Q1tbG5z73Oerr65k3bx4/+9nPADhw4ACzZs1i1apVgHFF9dBDD+XRRx/lgQce4IknnuDOO++ksrKSlStXDpkFxvTd888/n0suuQS3282RRx7J66+/nn7fsv2dG2tlOfjLd2A22gGgDPyEEEIIIfJnNptQavAOYEopzObBp6Mjrc9XS0sLzz33HMceeywffPABF1xwAffccw+dnZ2ceeaZrFy5kmg0ymOPPcacOXNYtWoVfr+fa665htbWVs466yxuuukmDhw4wE9+8hM+97nP0dnZmc7/zW9+w3/913+xb98+otEoP/nJTwB4+eWXAejp6cHv93PiiScO6u1f/uVf+Mc//sGBAwf44he/yHnnnUc4HB7y9Rx22GFs3Lgxnb1mzZoh69966y2+9KUv8ctf/pL9+/dz5ZVXcvbZZxOJRHj//fe599572bBhAz6fjxdffJG5c+cOypg3bx5VVVW89dZb6ddWWVmZHkytXbuWZcuW9XvOEUccwf3338+JJ56I3++np6cn/diTTz7J97//fbq7uzn00EO58cYbs/b+3nvvcfXVV/PEE0+wd+9eent7aW1tTT/+85//nKeeeoq1a9fS1tZGTU0NX/2qsYvcUD/rZDLJypUrOfroo2ltbWX16tXcc889vPjii0ybNo2HHnqIyy+/nH379vGtb32LY445hksuuYQrrriCCy+8kGuuuQa/38+qVauGzEp5+umn+cIXvkBPTw9nn302X/va1wCy/p0bD2U3+BvpwGykA0AZ+AkhhBBClJZzzjmH6upqlixZwrJly7jhhhv47W9/y1lnncVpp52G1Wrlu9/9LqFQiL/97W9ZMx5//HHOPPNMzjzzTEwmE6eddhrHH388zz33XLrmX//1XznssMNwOp2cf/75/OMf/8i7x4suuoja2losFgvf+c530gOysfTAAw9w5ZVXcsIJJ2A2m7n00kux2+289tprmM1mIpEI7733HrFYjLlz5zJ//vysOcuWLWPt2rW0t7cDcO6557J27Vp27NiB1+tN33uYj8985jMsXrwYi8XChRdemPM9+93vfsfKlStZsmQJNpuNH/zgB/1+QXD//fdz++23M2vWLOx2O7fccgu/+93viMfjQ/6sN2zYQGdnJ9/73vew2WwccsghXH755Tz55JMAnH766Zx33nl84hOf4LnnnuOXv/xlztcyXBbAkiVLOPPMMzGbzVx88cW8/fbbeb9XY6Gs7vkb7cAs33sAZeAnhBBCCFGYlzbsBOBj/zJ3XOqzeeqppwYtotHW1kZzc3P6a5PJxOzZs/tdTcq0a9cu/ud//ic9BRCMxVY+/vGPp7+eMWNG+nOXyzWihVd+8pOf8Otf/5q2tjaUUni93vS00bGya9cuHnnkEX7+85+nj0WjUdra2li2bBn33HMPt9xyCxs3bmTFihXcfffdNDU1DcpZtmwZTz/9NLNmzWLp0qV87GMf47HHHsPhcHDKKadgMuV/fSnf96ytrY3Zs2f3q62tre332j7zmc/0+95ms5mOjo4hf9ZWq5W2trZ+U1ETiQSnnHJK+usrrriCe++9lxtuuKHf9xxo165dw2YNfL3hcJh4PJ5eCGi8lc2Vv0IHZsNdAZSBnxBCCCFEYbTWPPWXzTz1l81Z7+krtH4kmpqa2LVrV7/v1dLSwsyZMwEGTTudPXs2F198MT09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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Define plot\n", "fig, ax = plt.subplots(figsize=(15,5))\n", "# Extract bins in logaritmic scale\n", "f = uni_files_gdf.zenodo_record_id.value_counts()\n", "hist, bins = np.histogram(f, bins=12)\n", "logbins = np.logspace(np.log10(bins[0]),np.log10(bins[-1]),len(bins))\n", "# Includes 0 into the 'logaritmic' scale\n", "bin_dist = np.append([-0.1],logbins)\n", "\n", "# Plot distribution of 3 categories in common sudo-logaritmic (zero-included) scale\n", "total_files.hist(ax = ax, bins=bin_dist,alpha=0.3,color = 'blue',edgecolor=\"blue\", grid=False, label = \"Total files\")\n", "files_potential_geo_formats.hist(ax=ax,alpha=0.5, color = 'orange',edgecolor=\"black\",hatch = '*',grid=False,bins=bin_dist, label = \"Potential files with geoextent\")\n", "geo_files.hist(ax= ax,histtype='barstacked',color= 'green',edgecolor=\"black\",hatch = 'x',alpha=0.7,grid=False,bins=bin_dist, label = \"Files with geoextent\")\n", "\n", "# Plot configuration\n", "plt.ylabel('Number of repositories (Count)')\n", "plt.xlabel('Number of files (Equally-space logaritmic)')\n", "plt.xscale('log')\n", "plt.yscale('log')\n", "plt.gca().yaxis.set_major_formatter(mpl.ticker.ScalarFormatter())\n", "plt.gca().xaxis.set_major_formatter(mpl.ticker.ScalarFormatter())\n", "plt.yticks([1,2,5,10,20,50,100,200])\n", "plt.xticks([1,2,5,10,20,50,100,200,500,1000,2000,5000,1000])\n", "plt.annotate('Figure '+str(fig_num)+'. Potential and successful files for geospatial metadata extration\\n across Zenodo repositories with different number of files', (0,0),\n", " (200, -40), xycoords='axes fraction', weight='bold', textcoords='offset points', va='top')\n", "plt.annotate('https://o2r.info/geoextent/', (0,0), (710,-50), xycoords='axes fraction', textcoords='offset points', va='top')\n", "fig_num +=1\n", "plt.legend(loc=1, prop={'size': 12})\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Table 6. Distribution of the number of files by repositories." ] }, { "cell_type": "code", "execution_count": 71, "metadata": { "scrolled": false }, "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", "
Files in repositoryPotential files with geoextentFiles with geoextent
Mean86.22923643.0365451.840532
Standard deviation457.793327400.69976511.620147
Min1.0000000.0000000.000000
25%3.0000000.0000000.000000
50%12.0000001.0000000.000000
75%31.0000004.0000000.000000
Max6515.0000006515.000000180.000000
\n", "
" ], "text/plain": [ " Files in repository Potential files with geoextent \\\n", "Mean 86.229236 43.036545 \n", "Standard deviation 457.793327 400.699765 \n", "Min 1.000000 0.000000 \n", "25% 3.000000 0.000000 \n", "50% 12.000000 1.000000 \n", "75% 31.000000 4.000000 \n", "Max 6515.000000 6515.000000 \n", "\n", " Files with geoextent \n", "Mean 1.840532 \n", "Standard deviation 11.620147 \n", "Min 0.000000 \n", "25% 0.000000 \n", "50% 0.000000 \n", "75% 0.000000 \n", "Max 180.000000 " ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ "pd.DataFrame(list(zip(total_files.describe()[1:],files_potential_geo_formats.describe()[1:],geo_files.describe()[1:])),\n", " columns =['Files in repository', 'Potential files with geoextent','Files with geoextent'],\n", " index=['Mean','Standard deviation','Min','25%','50%','75%','Max'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can observe that for the distribution of the total number of files in Zenodo records, there are on average **86.23** files with a standard deviation of **457.79**. As suggested by the high standard deviation, there are a few records with a very high number of files. A better way to describe the number of files by repository is by quantiles. For example, **50%** of the records have less than **12.0** files.\n", "\n", "In the figure, we can see that supported files are found in repositories with varying numbers of files. There are **43.04** files on average with potential geospatial information with a standard deviation of **400.7**. As before, a better indicator of the distribution results from the quantiles. For this case, **50%** of the repositories have less than **1.0** file with a supported file format. **137** records of the **319** analyzed have **0** supported files.\n", "\n", "Regarding successful extractions, there are **1.84** files on average with geoextent per repository analyzed with a standard deviation of **11.62**. In total **255** records did not have a successful geoextent extraction. For repositories with successful extraction, we can see that the final geospatial extraction relies in some cases on only **1** file extraction result, yet in one case on **180** file extractions.\n", "\n", "To understand the types of Zenodo records that result in a successful geoextent extraction, we computed the proportion of files with potential geospatial information over the total number of files and the percentage of files with successful extraction over the potential." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Figure 6. Percentage of potential geospatial files and success rate of extraction\n", "" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1IAAAH3CAYAAACxaG5zAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAADQdklEQVR4nOzdd3zUVdbH8c+Z9EACIYD0oqCioDRFBVkUe8G1d8G6uiqWXcuqq6vrY2/YxbbYsK0VXRsKKigKig1EUEBApEMC6Znz/DEDBkjCkMxkksn3/bzmNfn95v7uPcF9ICf33nPN3REREREREZHIBeIdgIiIiIiISEOjREpERERERGQrKZESERERERHZSkqkREREREREtpISKRERERERka2kREpERERERGQrKZESEREREZE6Y2ZPmNlSM/u+wr0WZva+mc0Ov+eE75uZ3Wtmc8zsWzPrG7/IN6ZESkRERERE6tJ/gIM2uXclMN7duwPjw9cABwPdw69zgIfqKMYtUiIlIiIiIiJ1xt0/BlZucvsIYEz46zHAnyvcf8pDPgeam1nbOgl0C5RIiYiIiIhIvG3j7ovDX/8ObBP+uj2woEK7heF7cZcc7wDqUsuWLb1Lly7xDkNEREREEti0adOWu3ureMexJQftvasvX5Uf9X6n/TD3B6Cowq3R7j460ufd3c3Mox5YlDWqRKpLly5MnTo13mGIiIiISAIzs/nxjiESy1esYOpTF0W9X9vt8iJ377+Vjy0xs7buvji8dG9p+P4ioGOFdh3C9+KuUSVSIiKJqLS4kMU/fcvSebNYuXAe5aXFJKdl0LLjdrTqsj1tu/ciKSU13mGKiEh9E0iFpu3iHcV6bwDDgVvC769XuH+BmT0PDADWVFgCGFdKpEREGqiykmJmfvwWP33+PuVlZZgZyalpmAUoWpvH6sXzmfPFhySlprHT4EPZfs/9CSTpr30REQkLlsDaup/cMbOxwBCgpZktBK4jlEC9aGZnAvOB48LN3wYOAeYABcDpdR5wFfQvqohIA7Rm6W9Meu4+1q5aRnrTZqQ32fyv89SMTADKS0v49v2X+fW7Lxh44vk0ad6yrsMVEZH6KJAKTeu+boO7n1jFR0MraevA+bGNqGaUSImINDBrlv7Gh4/fTLCsjCbNc7fYPikllcxmueQt+40PH7uFfc+6UsmUiIhAeQnk14vtRg2Syp+LiDQgZSXFfPrcvQTLykhvmh3xc2ZGRlZzitfl8dmLjxAsL4thlCIi0mC4R//VSGhGqo65O1999RUvv/wyP//8M5mZmRx88EEcdNDBNGvWLN7hiUgdCAbLKS8rJTklDTPbqmdnfDyOdauWRzQTVZn0rOasXDSXOV9OZPs9NltBISIijUlSfJb2JQolUnWoqKiIq6++ik8++YSkpGSaNMlk6dKl3HnnXTz88MPcffc99O7dO95hikiMrF21nG8/epOfv/qUYHk5GVnN2Xnvg9lxz6EkJW/5r+PS4kJmf/YB6U1r/ksXMyMtsykzPx5Ht93+pOITIiKNmZb21Uq9+RfUzJ4ADgOWunvP8L0WwAtAF2AecJy7r7LQr3BHEargUQCMcPev4hH31rjlllv4+OOPadOm7Ua/hc7OziY/P5+RIy9k7Njnad9evxkQqei3uT/x83dfkd6kKT36D6Rps5x4h7TV8lYs5e2H/k3xurVkZGUTSEqmtLiIL8Y9x++/zGCfUy7cYlLz26xvCZaXRZR0VSc5NY2CNatYOm8WbbbbuVZ9iYhIAxanYhOJot4kUsB/gPuBpyrcuxIY7+63mNmV4esrgIOB7uHXAOCh8Hu9tXjxYv73v7fZZps2lS7lycrKYsmS33n55Ze46KKL6z5AabCCwSCBQN1ud1z86y9889lEWrRuS7+996v1D/alJcV8P+VjPOj0HLA3qekZGz77cvw4JrzyDBBac/3Z/17hpL9dT8u2HavorX76ctxYSgrW0qR5iw33UtLSSU5NY8HM6fw642u69Nqt2j6Wzp251UsBq+IeZOXCudUmUmXFRaxduYSmLduS3EjOoQqWl1FWuJaUJs2i9mcdTeXFheT//DWB5BSabtenTmYUg8EyCmZOxlIzaNK9+v+Nbi33IGbari0xUlYAgZTQSyoXLIG1C+MdRYNVbxIpd//YzLpscvsIQjXmAcYAEwglUkcAT4XLIX5uZs3Xn4RcR+FutU8++Zhg0Kv9gTcnpwWvvvqqEimJSFlpKaNvu45ffvyeE/9yCf0G7VMn465esYwnbrmGkuIigsEgeSuXs9/Rp9Sqz1ceuYOpH76FO/QeNJRT/v5vAIoK1vHJG2PJzG5GcnLoH8K1q1fy6bgX+fPZf6v191JXitbmsXDWdDKzmm/22fqzn378fPwWE6mVi+aRnJoelZiSUlJZseCXKj8vKy7ig/uvYtWiueR23oGh5/+bpOTE/mGkvKSIGS/dQ9HK32m962A6Dz4q3iFtxN357b0nKFoyHwwKF//CNn86PubjLn/jbooWzASgZPEccgZXVbV46xT/PJWir8aR3LY7mQNPVEIl0fX7dJj3WmjGZdfzIU370CX66vvfWttUSI5+B7YJf90eWFCh3cLwvc2Y2TlmNtXMpi5btix2kW7BypUr2dIvN1NSUli7di3BYLBugpIGbcWyJcyZ8R2BpCQmffB2nY277LcFlJWV0jy3NZlNsvh5xre17vOn6V9SVlpKeVkZs7+dhocr/uStXIY7G5IogLTMJvw+v+oEoD4qWpdPIJCEVfGLlOSUVNatXL7FfspLi6vsY2sFAgHKSoqq/HztyqWs+m0exQVrWblgDoVrVkRl3PqscOUSilYtITkzi+Uzp8Q7nM14eSlFS38lOSuHpIws1i2aVSfjFi/+GUtKBgtQOO+bqPVbMucLSEqhbPFPeGF+1PoVAWDJ5NB7sATW/RbfWOqzQEpoaV+0X41EfU+kNgjPPm11PUV3H+3u/d29f6tWrWIQWWRatWq1xWqQxcXFNGvWvM6XaUnD1HKbtuy6+0BSU9MZOuyYOhu3TccupKZlsHLZ7xQWrKVHn91r3WevAYNJSUsnJTWNnXYftGFJVbPc1qEf+EtLNrQtXJdPx2471nrMupSR1Qz3IMFgeaWfl5YUk9Vym0o/qyg5NaPKPrZWMFhOclpGlZ9ntWxDyy47kt60Gdt060Vm8/j9/VlXMnLb0mSbzpQW5NOmT93M8G4NS0ohs103ytauprxwLU279KqTcdM79sTLyzB3MnfcM2r9pvUYhCUlkdK5N5YReSl/kYi02wdIgqRMaNqwloLXqWAp5C+M/quRqDdL+6qwZP2SPTNrCywN318EVPz/ig7he/XWn/40hNtvv4Py8nKSkpIqbbN69WpOP/30Oo5MGqqkpCSGX3RlnY+b1bwF51xzKzO/nkJObmt26l/7H6wOP3MkO/bbk6AH2X7XP5a3pWVkMvT4M3jvudEEy8sxMzKzmjHwsONqPWZdSstsSuee/Zn33Zc0adZio8/cg5SXldJjr/232E9uh21Zs3QhqemZtY6pvLSUlp22q/LzpJRUhp53AwV5K8lslkugir+3EklSSio9jrmIYFkJSSlp8Q5nM2ZG2/2Hs27+DCwpmSaddqqTcXMP+SvF87/FUjNJb7991PpN7bQLqZ12iVp/Ihtp1QNy/wEWCL2kcoEUaNoh3lE0WPU9kXoDGA7cEn5/vcL9C8zseUJFJtbU5/1RAC1btuToo4/mhReep02btpvNOq1evZqmTZtw9NFHxylCkcjlbtOWQQf9OWr9JSUls2O/yhOyXfbch/ZdujN/1vekZWSyXa9+pGc2idrYdaX/ISewdP4c1q5aQXrTLJKSkykpLKS0uJDt+gykww5b/oGyddcd+HnaxKjEYxYgt0PViRRAIDmZpi1aR2W8hsLM6mUStV4gOZWs7XrX7ZiBABld63ZMkagI1Pcfc+uB9TNSUiP15n9hZjaWUGGJlma2ELiOUAL1opmdCcwH1v8a+m1Cpc/nECp/3iCmcS655BIKCgp4++23ACM9PZ3y8nJKS0to3jyHe++9l9atG9cPLSKRyG3bgdy2Dfs3Zk2ateCwC65j5qT3mfXFRxSsWU3zbdqx8+BD2K73nhHtfWq7/S4kJ6dSXlZaq8IPpcVFpDfNpmXnbjXuQ0Skrrg7EyZMICcnh06dOpGTk1Mvq2o2SO5sce+JVMm8Ef3h9e/f36dOnRrvMJg9ezavvfYac+bMITMzkwMPPJAhQ4aQnh6dalwikrhmTBzH9x++RmazFjX6QcLdKVizgv7DRrBtv71jEKGISHQVFxdz8sknM3v2bH799VcKCwtJTU3lxRdf5KCDDop3eJUys2nu3j/ecWxJ/527+tTnr496v7bL8Abx/ddWvZmRaky6d+/OZZddFu8wRKQB2mHggfz6/ResXbGUjKytL+dbmL+a1l12pGvfQTGITkQk+pKTk/nLX/7C008/zbx588jJyaFly5YMHjw43qE1fOUlkKelfTWlREpEpAFJSk5h0IkX8uHjN1OQt5qMrMgOjnV3CvNX06R5K/Y49i9aFiMi9Zq78+233/L000/z3HPP0a5dO0455RSSkpKYM2cO77zzDpmZtS+80+glpUJ2w146H09KpEREGpimLVqx75n/YPILD7J68QLSmjQlObXqAgmlxUWUFK6lVecd2PO4c0lvqlLTIlI/LVy4kOeee46nn36avLw8TjnlFMaPH0+PHj246aab+O677xg/fjxNmjS8okP1UnkJ5C3YcjuplBIpEZEGqGmLVux3ztXMnvIhMz9+i4K8VXh5kOS0VMwCeDBIWWkJZgHSmmTRf9hwuvYZFLUDfUVEoiUvL4///ve/PP3000yfPp2jjz6aBx54gEGDBm1U5XjvvffmL3/5C82abf2yZqlCUipk6ZytmlIiJSLSQAWSktlhrwPotvu+LJ07kxULfmblormUlRSTkpZBbqdu5HbYllZdticQSPxzoESk4SgtLeW9997j6aef5n//+x/77LMPf/3rXznssMOqLL61994qkBN1mpGqFSVSIiINXFJyMm2796Jt917xDkVEpEruzpdffskzzzzDCy+8wHbbbcepp57KAw88QG5ubrzDa7waUQXvaFMiJSIiIiIxM3fuXJ555hmeeeYZgsEgp5xyCpMnT2a77ao/FFzqQFIqZGtpX00pkRIRERGRqFq5ciUvvfQSTz/9NLNmzeL4449nzJgxDBgwQFVD65PyElijpX01pURKRERERCq1YMECTjvtNJYsWYKZcc4553DRRRcxYsQIRowYwZAhQza0dXdee+01nn76acaPH8+BBx7IFVdcwYEHHkhqamr8vgmpWkDlz2tDiZSIiIiIVCo5OZk777yTvn37kp+fT79+/dh///0rbbtkyRKefPJJjjjiCJ588klV12sINCNVK0qkRERERKRSbdu2pW3btgBkZWXRo0cPFi1aRLNmzTabZWrTpg1vvPFGPMIUiQslUiIiIiINXUkhrPglNMOQ3Q6yWkOU9yLNmzePr7/+mgEDBlQ5KyUNjIpN1IoSKREREZGGbMmP8P1bECwHHDBo3R16Hg5J0flRb+3atRx99NHcc889ZGdnR6VPqQe0tK9WlEiJiIiINFQFq+C7cZCcBqkpoXvusGQWNGkF3QbVeojS0lKOPvpoTj75ZI466qha9yf1iGakakWJlIiIiEhDtXgGeBCSUv64ZwapTWHBVNhuYK2W+Lk7Z555Jj169ODSSy+NQsBSr5SXwJpf4x1FgxWIdwAiIiIiUkOFq8Eq+XEukARlxRAsq1X3kyZN4umnn+bDDz+kd+/e9O7dm7fffrtWfYokCs1IiYiIiDRUzdrB4h82v19eAhnNIVC7H/UGDRqEu9eqD6nHklKgmZb21ZQSKREREZGGqs2O8MskKFkLKU1Cy/jKS6G0CHbcL+qV+yTBlJfAai3tqyklUiIiIiINVUoG9D8Rvn8b8n4PJU5JybDj/tBmp3hHJ/VdUqpmpGpBiZSIiIhIQ9YkFwacCgWrQzMMmS2iVvZcElx5CaxW+fOa0v+XiYiIiCSCzObxjkAaJO2BqyklUiIiIiIijZGW9tWKEikRERERkcaoTEv7akOJlIiIiIhIY6QZqVpRIiUiIiIi0hip2EStKJESEREREWmMklKhuWakakqJlIiIiIhIY6QDeWtFiZSIiIiISGOl6uc1pkRKRERERKQx0tK+WlEiJSIiIiLSGJWXwCot7aspJVJbUFpaysKFCykqKop3KA1Weno6HTp0ICUlJd6hiEgNFa3No7hgLakZmWRkNY93OCIiEg1JqdC8U7yjaLCUSG3BwoULycrKokuXLphZvMNpcNydFStWsHDhQrp27RrvcERkKy2d/xM/THiT33+eiQUCeLCclh23Y+chw2jXvWe8wxMRkdrQjFStBOIdQH1XVFREbm6ukqgaMjNyc3M1oyfSAM395jPGP3YrS+b+REZ2czKympOR3YKVixcwYcxdzJz0brxDFBGRWvMYvBoHzUhFQElU7ejPT6ThyV+xhCmvPEFqkyySU1I33Dcz0ptkUZ6WwdfvvEirTt1p2XHbOEYqjYm7698UkWjS0r5aUSIlIiKbmTP1Y9yDGyVRFSUlJxMwY9Zn79Oy41/qODppbErXLGP5hGcoW7OMjI470WLv4wgkV/6/TRHZCmVa2lcbWtpXC//4xz/46KOPeO2117j55pu36tlly5YxYMAA+vTpwyeffLLRZ/fccw8FBQVb7OOmm26KaKwuXbqwfPnyze6/9NJL9OjRg3322YepU6cycuRIAP7zn/9wwQUXRNS3iCSm+d9+TmpG02rbpDVtxoIfpuLeeJZxSHysnPQSZfkrCDRpTsGv35M/Y1K8QxJJDMnhGalovxoJzUjVwpQpU7j22mu56qqrOOaYY7bq2fHjx9OrVy8ee+yxzT675557OOWUU8jMzKy2j5tuuomrrrpqq8at6PHHH+fRRx9l0KBBAPTv37/GfYlIYikrKSGQXH2lTQsEKC8vA3fQciuJobL8lQRSMzEzLCmFsrUr4x2SREtpEcydBEt+hOQ06LQbtNtFf6fUlbJiWDU/3lE0WJqRqoHLLruMXXbZhS+//JI999yTxx57jPPOO48bbrhhs7bz5s1j3333ZZdddmHo0KH8+uuvTJ8+ncsvv5zXX3+d3r17U1hYuKH9vffey2+//cY+++zDPvvsA8DYsWPp1asXPXv25IorrgDgyiuvpLCwkN69e3PyyScD8Oc//5l+/fqx8847M3r06Gq/hxtuuIFPP/2UM888k8suu4wJEyZw2GGHbdZu2bJlHH300ey2227stttuTJoU+i3gxIkT6d27N71796ZPnz7k5+fX7A9TROqlrJbbUFZSfZGYspJimjRrgQX0T4nEVpNu/SgvzKds7SrwIE269o53SBIN7vDtK7BgWujrkgKY+S4smBrvyBoX1ZqoMc1I1cDtt9/Occcdx1NPPcVdd93FkCFDNiQYm7rwwgsZPnw4w4cP54knnmDkyJG89tpr3HDDDUydOpX7779/o/YjR47krrvu4qOPPqJly5b89ttvXHHFFUybNo2cnBwOOOAAXnvtNW655Rbuv/9+pk+fvuHZJ554ghYtWlBYWMhuu+3G0UcfTW5ubqVxXXvttXz44Yfccccd9O/fnwkTJlTa7qKLLuKSSy5h0KBB/Prrrxx44IHMnDmTO+64gwceeICBAweydu1a0tPTa/RnKSL104577c+kF0eTlln18r6SwrX0/NPxdRiVNFbN+h5ISk5bSvOWkdG2O2nbdIl3SBIN+UtgzW+Qlv3HDJQFYN7n0LG/ZqXqQlIq5DSepXjRpkSqhr766it23XVXfvzxR3r06FFlu88++4xXXnkFgFNPPZXLL798q8b58ssvGTJkCK1atQLg5JNP5uOPP+bPf/7zZm3vvfdeXn31VQAWLFjA7Nmzq0ykIvXBBx8wY8aMDdd5eXmsXbuWgQMHcumll3LyySdz1FFH0aFDh1qNIyL1S/sd+9C8dTvWLFtMRnbOZpXSCvNXk5ndgq59BsYpQmlMzAI02bZ3vMOQaCstAGzjhCmQDMV54EGwpLiF1miUl2hpXy0okdpK06dPZ8SIESxcuJCWLVtSUFCAu9O7d28+++wzMjIy4hLXhAkT+OCDD/jss8/IzMxkyJAhUTm7KRgM8vnnn28243TllVdy6KGH8vbbbzNw4EDeffdddtxxx1qPJyL1Q3JKKvuM+DsTnxnFqsW/ghlJySkEy8vwYJCmLVqxz2mXVjtjJSJSrey2YEB5GSSFfyQtXRcqVhBQElUnklIhp3O8o2iwlEhtpd69ezN9+nT22msvPv30U8444wwuv/xydtppp0rb77XXXjz//POceuqpPPvss+y9995bHCMrK4v8/HxatmzJ7rvvzsiRI1m+fDk5OTmMHTuWCy+8EICUlBRKS0tJSUlhzZo15OTkkJmZyY8//sjnn38ele/3gAMO4L777uOyyy4DQolk7969+fnnn+nVqxe9evXiyy+/5Mcff1QiJZJgMrKaceBfrmHpvFn8/NUkCtasIL1JNtv2HUib7XYikKR/QkSkFlIyYIcD4Md3oTRctCYlA3bcP96RNR7lJbBSM1I1pX8Fa2DZsmXk5OQQCAT48ccfq0yiAO677z5OP/10br/9dlq1asWTTz65xf7POeccDjroINq1a8dHH33ELbfcwj777IO7c+ihh3LEEUdsaLfLLrvQt29fnnjiCR5++GF69OjBDjvswB577BGV7/Xee+/l/PPPZ5dddqGsrIzBgwfz8MMPc8899/DRRx8RCATYeeedOfjgg6MynojULxYIsM22Pdhm26qXMIuI1Fi7XqE9Oqt+DZXibtE19C51Q3ukasUa0/kf/fv396lTt64SzMyZM6vdAyWR0Z+jiIiINBZmNs3d6/25Mv27t/Wpd58e9X7t8JsbxPdfW5qREhEREZHE4g7F+aEZlxRVFq5W45lTiTolUiIiIiKSWH7+GBZODVUB3OUoaN4x3hHVTyo2UStKpGrpkEMO4bnnnqN58+bxDqVK//rXv2jatCl///vf4x2KiIiISGyVl4YO9U1rCqWFMH+KEqmqlKnYRG0okaqlt99+u8bPlpWVkZwc3f8E7o67EwgEotqviIiISIMQSIb0LCjKCy3xa9oq3hHVX8mp0EIzUjWlRKqWunTpwtSpU1m7di0HH3wwgwYNYvLkybRv357XX399s3OlRowYQXp6Ol9//TUDBw7k/PPP5/zzz2fZsmVkZmby6KOPsuOOO7JkyRLOPfdcfvnlFwAeeugh9tprL+666y6eeOIJAM466ywuvvhi5s2bx4EHHsiAAQOYNm0ab7/9Ns888wxjxoyhdevWdOzYkX79+tX5n42IiIhInTOD3sfBwq8gtSl07BvviOqvshJYOS/eUTRYSqSiaPbs2YwdO5ZHH32U4447jv/+97+ccsopm7VbuHAhkydPJikpiaFDh/Lwww/TvXt3pkyZwl//+lc+/PBDRo4cyZ/+9CdeffVVysvLWbt2LdOmTePJJ59kypQpuDsDBgzgT3/6Ezk5OcyePZsxY8awxx57MG3aNJ5//nmmT59OWVkZffv2VSIlIiIijUdGc+i+b7yjaBhUbKLGlEhFUdeuXenduzcA/fr1Y968eZW2O/bYY0lKSmLt2rVMnjyZY489dsNnxcXFAHz44Yc89dRTACQlJdGsWTM+/fRTjjzySJo0aQLAUUcdxSeffMKwYcPo3LnzhrOjPvnkE4488kgyMzMBGDZsWCy+XRERERFpyLS0r1aUSEVRWlrahq+TkpIoLCystN36RCgYDNK8eXOmT59e67HX9ykiIiIiEpGyElgxL95RNFiqSBBH2dnZdO3alZdeegkIFYr45ptvABg6dCgPPfQQAOXl5axZs4a9996b1157jYKCAtatW8err77K3nvvvVm/gwcP5rXXXqOwsJD8/HzefPPNuvumRERERKRhWD8jFe1XI6EZqTh79tlnOe+887jxxhspLS3lhBNOYNddd2XUqFGcc845PP744yQlJfHQQw+x5557MmLECHbffXcgVGyiT58+my0h7Nu3L8cffzy77rorrVu3ZrfddovDdyYiIiIi9VpZCaxQ+fOaMvfGs8Osf//+PnXq1K16ZubMmfTo0SNGETUe+nMUERGRxsLMprl7/3jHsSX9u7XxqbcNj3q/dvRtDeL7ry3NSImIiIiINEZJaZDbeJbiRZsSKRERERGRxqi8WEv7akGJlIiIiIhIY5SU1qiKQ0SbEikRERERkcaoTDNStaFESkRERESkMUrWHqnaUCIlIiIiItIYlRXD8nnxjqLB0oG8CeKMM86gdevW9OzZs9LP3Z2RI0fSrVs3dtllF7766qs6jlBERERE6h2PwauR0IxUghgxYgQXXHABp512WqWf/+9//2P27NnMnj2bKVOmcN555zFlypQ6jlJERERE6o3kVC3tqwUlUgli8ODBzJs3r8rPX3/9dU477TTMjD322IPVq1ezePFi2rZtW3dBioiIiEj9UVYCK+bFO4oGS4lUI7Fo0SI6duy44bpDhw4sWrRIiZSIiIhIY5WcCrld4h1Fg6VEKk4KCgr4+uuv6dOnD5mZmfEOR0REREQam7ISPA4zUmZ2CXAWoR1V3wGnA22B54FcYBpwqruX1HlwW0HFJuLk66+/5tZbb+Xrr7+uk/Hat2/PggULNlwvXLiQ9u3b18nYIiIiIlI/uXvUX9Uxs/bASKC/u/cEkoATgFuBu929G7AKODPG33qtaUYqTvr06cMVV1xBnz596mS8YcOGcf/993PCCScwZcoUmjVrpmV9IiIiIo1Z/Jb2JQMZZlYKZAKLgX2Bk8KfjwH+BTwUj+AipUQqTjIzMxk4cGDU+jvxxBOZMGECy5cvp0OHDlx//fWUlpYCcO6553LIIYfw9ttv061bNzIzM3nyySejNraIiIiINEBlJXgdnyPl7ovM7A7gV6AQeI/QUr7V7l4WbrYQqPdLp5RIJYixY8dW+7mZ8cADD9RRNCIiIiJS7yXFbEaqpZlNrXA92t1HA5hZDnAE0BVYDbwEHBSLIGJNiZSIiIiISGNUVgLL58ai5+Xu3r+Kz/YD5rr7MgAzewUYCDQ3s+TwrFQHYFEsAosmFZsQEREREWmEPEavLfgV2MPMMs3MgKHADOAj4Jhwm+HA67X/DmNLM1IiIiIiIo1Rciq07FKnQ7r7FDN7GfgKKAO+BkYDbwHPm9mN4XuP12lgNaBESkRERESkMSorxpfFZGlftdz9OuC6TW7/Auxe58HUQoNIpBLl0C4RERERkXojOQ1ado13FA1WvU+kKhzatZO7F5rZi4QO7TqE0KFdz5vZw4QO7arXteZFREREROqNsmKCcZiRShT1PpEKS4hDu2KtvLyc/v370759e8aNG7fRZ8XFxZx22mlMmzaN3NxcXnjhBbp06RKfQEVEREQk/pLTMM1I1Vi9T6QS6dCuWBs1ahQ9evQgLy9vs88ef/xxcnJymDNnDs8//zxXXHEFL7zwQhyiFBEREZF6QTNStVLvy59vcmhXO6AJW3Fol5mdY2ZTzWzqsmXLYhRl/C1cuJC33nqLs846q9LPX3/9dYYPHw7AMcccw/jx43GPoECliIiIiCQkB9w96q/Got7PSFHLQ7vCpyiPBujfv3/C/pe9+OKLue2228jPz6/080WLFtGxY0cAkpOTadasGStWrKBly5Z1GaaIiIiI1BOWnIa10tK+mmoIidSGQ7sILe0bCkzlj0O7nqeBHNpV0RtvvMGbb77J4YcfzrBhw2rV17hx42jdujX9+vVjwoQJ0QlQRERERBKaa2lfrdT7RCqRDu2q6M0336RJkya8+eabtU6kJk2axBtvvMHbb79NUVEReXl5nHLKKTzzzDMb2rRv354FCxbQoUMHysrKWLNmDbm5ubX9NkRERESkodKMVK3U+0QKEufQrooOP/zwDTNStXXzzTdz8803AzBhwgTuuOOOjZIogGHDhjFmzBj23HNPXn75Zfbdd1/MrNZji4iIiEgDVVpM+VLNSNVUg0ikEtGwYcNqPRO1Jddeey39+/dn2LBhnHnmmZx66ql069aNFi1a8Pzzz8d0bBERERGp/xpTcYhoUyKVYIYMGcKQIUMAuOGGGzbcT09P56WXXopTVCIiIiJS7ySnkaSlfTWmREpEREREpBHysmLKtLSvxpRIiYiIiIg0QpacRlJrzUjVlBIpEREREZFGKDQj9Uu8w2iwlEiJiIiIiDRSqjVRc1UmUmZ2aXUPuvtd0Q9HRERERETqgiWnamlfLVQ3I5VVZ1GIiIiIiEid8tISypZoaV9NVZlIufv1dRmI1M4ZZ5zBuHHjaN26Nd9//z0A06dP59xzz6WoqIjk5GQefPBBdt998zOMx4wZw4033gjANddcw/Dhw+s0dhERERGJgxTNSNXGFvdImVk6cCawM5C+/r67nxHDuGQrjRgxggsuuIDTTjttw73LL7+c6667joMPPpi3336byy+/nAkTJmz03MqVK7n++uuZOnUqZka/fv0YNmwYOTk5dfwdiIiIiEhd8tISlT+vhUiKTTwN/AgcCNwAnAzMjGVQjUEwGKSgoIDMzEwCgUCt+xs8eDDz5s3b6J6ZkZeXB8CaNWto167dZs+9++677L///rRo0QKA/fffn3feeYcTTzyx1jGJiIiISP1lmpGqlUgSqW7ufqyZHeHuY8zsOeCTWAeWyBYsWMCoUaNYsWIFubm5XHTRRXTs2DHq49xzzz0ceOCB/P3vfycYDDJ58uTN2ixatGijsTt06MCiRYuiHouIiIiI1C+hPVKakaqpSKZCSsPvq82sJ9AMaF1VYzM71syywl9fY2avmFnf2oeaGILBIKNGjaK4uJjOnTtTXFzMqFGjCAaDUR/roYce4u6772bBggXcfffdnHnmmVEfQ0REREQaKicYg1djEcmM1GgzywH+CbwBNAWurab9P939JTMbBOwH3A48BAyobbCJoKCggBUrVtC5c2cAcnNzmT9/PgUFBTRt2jSqY40ZM4ZRo0YBcOyxx3LWWWdt1qZ9+/Yb7ZtauHAhQ4YMiWocIiIiIlL/WEoaya23jXcYDdYWEyl3fyz85UQgkj/p8vD7ocBod3/LzG6sYXwJJzMzk9zc3A3L+ta/Z2ZmRn2sdu3aMXHiRIYMGcKHH35I9+7dN2tz4IEHctVVV7Fq1SoA3nvvPW6++eaoxyIiIiJSV7y8jNIF3xPIyCJ5m+3iHU695aXFlKr8eY1VdyDvKe7+TFUH81ZzIO8iM3sE2B+41czSiGwJYaMQCAS46KKLGDVqFPPnz9+wR6q2BSdOPPFEJkyYwPLly+nQoQPXX389jz76KBdddBFlZWWkp6czevRoAKZOncrDDz/MY489RosWLfjnP//JbrvtBsC11167ofCEiIiISENUPPNjimZ8hAWSaTr0HJJy2sY7pHrJUtJIUbGJGqtuRqpJ+L2yg3mrW/x4HHAQcIe7rzaztsBlNYwvIXXs2JHbbrstqlX7xo4dW+n9adOmbXavf//+PPbYYxuuzzjjDM44Q9XsRUREJIE0nq06NRYsLaZEM1I1Vt2BvI+Ev/zA3SdV/MzMBlbzXIGZLQUGAbOBsvC7VBAIBKK+J0pEREREIK3H3gSaNCeQ0UyzUVvgSjhrLJJiE/cBm1bdq+weAGZ2HdAf2AF4EkgBngGqTL5ERERERKLFklJI7aqi0VtiyWmkbKOlfTVV3R6pPYG9gFab7JPKBpKq6fNIoA/wFYC7/7a+HLqIiIiIiNQPXqalfbVR3YxUKqFS58lsvE8qDzimmudK3N3NzAHMrEk1bUVEREREJA5CM1Iqf15T1e2RmghMNLP/uPv8rejzxXDVvuZmdjZwBvBoLeMUEREREZEo8tJiSn7XjFRNRbJHqsDMbgd2BtLX33T3fStr7O53mNn+hGaudgCudff3oxGsiIiIiIhEj6vaRI1Fkkg9C7wAHAacCwwHllX3QDhxUvJUx8rLy+nfvz/t27dn3LhxjBgxgokTJ9KsWTMA/vOf/9C7d+/NnhszZgw33hg6M/maa65h+PDhdRm2iIiIiMSBpaSRogOLayySRCrX3R83s4sqLPf7ctNGZpZP5RX7DXB3z65lrAnD3Vm8eDErV66kRYsWtG3bFjOrdb+jRo2iR48e5OXlbbh3++23c8wxVW9pW7lyJddffz1Tp07FzOjXrx/Dhg0jJyen1vGIiIiISP0VLC2m5Pef4x1GgxVJIlUafl9sZocCvwEtNm3k7qrMF4H8/HweffRRvvvuOwKBAMFgkF69enH22WeTlVXzP8KFCxfy1ltvcfXVV3PXXXdF/Ny7777L/vvvT4sWof+k+++/P++88w4nnnhijWMRERERkfovkJJGahsVm6ipSBKpG82sGfA3QudHZQOXbNrIzLLdPc/MNkuyANx9Za0iTQDuzujRo5kxYwadOnXCzHB3fvjhBx599FEuueSSGs9MXXzxxdx2223k5+dvdP/qq6/mhhtuYOjQodxyyy2kpaVt9PmiRYvo2LHjhusOHTqwaNGiGsUgIiIiIg1HsLSYYs1I1dgWEyl3Hxf+cg2wTzVNnyO0j2oaoSV+FTMCBxp9urt48WK+//77DUkUgJnRoUMHvvvuOxYvXky7du22ut9x48bRunVr+vXrx4QJEzbcv/nmm2nTpg0lJSWcc8453HrrrVx77bXR+nZEREREpAGzlDRS2miPVE1tMZEys22BUcCeQBD4DLjE3TetlXhL+L2HuxdFNcoEsXLlSgKBwGazTmZGIBBg5cqVNUqkJk2axBtvvMHbb79NUVEReXl5nHLKKTzzzDMApKWlcfrpp3PHHXds9mz79u03Sr4WLlzIkCFDtjoGEREREWlYvLSY4sWakaqpQARtngNeBNoA7YCXgLGVtBsVfp8cndAST4sWLQgGg5uVmXR3gsHghn1KW+vmm29m4cKFzJs3j+eff559992XZ555hsWLF2/o/7XXXqNnz56bPXvggQfy3nvvsWrVKlatWsV7773HgQceWKM4RERERKQhcdyj/2osItkjlenuT1e4fsbMLqukXamZjQY6mNm9m37o7iNrGmSiaNu2LT179mTGjBl06NBhwx6phQsX0qtXL9q2bRvV8U4++WSWLVuGu9O7d28efvhhAKZOncrDDz/MY489RosWLfjnP//JbrvtBsC1115b44RORERERBoOS0kjTUv7asy2lDWa2a3AKuB5QnudjgdygNvhjyISZtYS2A+4FdhsI467j4lm4DXRv39/nzp16lY9M3PmTHr06BG1GKqq2nfOOefQtGnTqI1T30T7z1FERESkvjKzae7eP95xbEmvzq38jSuOjnq/257/SNy+fzM7ilA+0ppQzYaYHcUUyYzUceH3v2xy/wQqFJFw9+XA82Y2092/iV6IiSUrK4tLLrlko3OkarIvSkRERESkNgKJOSN1G3C4u8+M9UCRVO3rujUdKonaMjOjXbt2SqBEREREJG6CJcUULZ4T7zCibUldJFEQWdW+Y4F33D3fzK4B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eioP/ushVeAVRelwKioq2LJlC5s3b2blypXk5eVRXV1NbW0tLpeLqKgoUlNTOeGEExg2bBhDhgwhLi6uo8XukRhjeOyRh3nn7bfoldyr6cE4Y30jav/+/US4IvB6vKT360e/AYd1q1kpPzU1NeTn57NixYou8R2llORe5mdnnR72cF99890ukf62oopUK6itrWXRokXMnj2b1atXIyL06tWrTR1Sr9dLQUEBXq+XPn36cPnll3P22Wd3qg/SKV2PvXv38tpr/2HOu+/g8Xjx+Xz07duXyyZM4Be/OK9JhxSKoijtgTGG9evXM2fOHJYsWcKuXbtwOp14PB5cLhcul6uONYfP56O2thaPx0NERAS1tbX07duXk08+mV/+8pccc8wx3bJT3hl5/rlnefH55+jdpzdOp7PJ67dnb2fHjh1ERUUFyrOmpoYBh2XQNz38H4LtDFRWVvLll192CUUiJjrKHD6gb9jDXbtlR5dIf1tRRaoFGGP48ssv+ec//0lJSQkul4ukpKSwzx6VlZVRVlZGREQEEyZM4KqrriIqKiqscSg9i+rqavLz83G5XKSlpWmHQ1GUDqGqqor58+cze/ZsNm/ejIgQHx9PTExMi55LxhiqqqooLS3F5/ORkZHB5ZdfzhlnnEFsbGw7pqBns3ZNFtdfO4nklJRmma/l78tn3bp1REZF4QgqX5/Ph8fj4ahjRuJ2d8/ymjt3bpdQJGKioszgdlCk1m1VRarb0RZFqqCggGnTpvHVV1+RmJh4SB7UtbW17N+/n4EDB/L3v/+do446qt3jVBRFUZRwU1NTw+zZs5k9e7bl0S06moSEhLAM6hhjKC0tpaKigsjISC6++GKuvvpqYmLUI2k4McYw4dKLydubR1JSUpPXV1ZUsmLFCpxOZ8iZq9qaGmJi3Rx59MhuObjXVRSplORe5uwzwm/a95+3e4ZpX9dZDddB+Geh7r//fioqKujbt+8hW7/kcrno27cveXl5XHHFFUycOFFnpxRFUZQuxfr167nrrrvIzs4mOTmZRNsBQbgQERISEkhISAgobJ9//jl///vfOfbYY8MaV09m9apV5OTsIK137yavNT7D+g0bABo0/4twuagoK6eiopzYWF3v1lFUlJezYvnSjhajy6KKVCNUV1czdepUPv30UxITE+nTp0+HyJGcnExtbS0vvvgiX331FY8/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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Extract number of total files by records with successful extraction by zenodo record\n", "files_in_record = uni_files_gdf.zenodo_record_id.value_counts()\n", "# Extract number of files with successful extraction with potential geospatial information by zenodo record\n", "potential_files_with_geo_in_record = uni_files_gdf['format'].isin(potential_geo_formats).groupby(uni_files_gdf['zenodo_record_id']).sum()\n", "# Extract number of files with successful geoextent extraction by zenodo record\n", "files_with_geo_in_record = uni_files_gdf['bbox'].is_valid.groupby(uni_files_gdf['zenodo_record_id']).sum()\n", "\n", "# Store information\n", "result = pd.DataFrame({'files_in_record': files_in_record,\n", " 'files_with_potential_geoextent': potential_files_with_geo_in_record,\n", " 'files_with_extracted_geoextent': files_with_geo_in_record,\n", " })\n", "\n", "result['per_success_from_total'] = result.files_with_extracted_geoextent/result.files_in_record*100\n", "result['per_success_from_potential'] = result.files_with_extracted_geoextent/result.files_with_potential_geoextent*100\n", "result['potential_per_success'] = result['files_with_potential_geoextent']/result['files_in_record']*100\n", "\n", "# This line includes repositories with 0 potential files. Replace NaN to 0 \n", "# All repos without potential files go to (0,0)\n", "result.per_success_from_potential.fillna(0, inplace=True)\n", "\n", "## Plot\n", "\n", "fig, ax = plt.subplots(figsize=(15,8))\n", "\n", "scatter = plt.scatter(result['potential_per_success'],result['per_success_from_potential'],\n", " c=result['per_success_from_total'], s=result['files_in_record'], cmap=\"copper\",alpha= 0.7)\n", "\n", "range_per_success_total = list(np.arange(0.0,120,20))\n", "\n", "# produce a legend with the unique colors from the scatter\n", "plt.colorbar(label=\"Percentage of successful extraction \\n over total files in repository\")\n", "\n", "range_num_files = list(result['files_in_record'].quantile([0.1,0.3,0.6,0.8,0.9,0.99]).round(0))\n", "\n", "# produce a legend with a cross section of sizes from the scatter\n", "kw = dict(prop=\"sizes\", num=range_num_files, fmt=\"{x:,}\", func=lambda s: s,alpha=0.5)\n", "legend2 = ax.legend(*scatter.legend_elements(**kw),title=\"# of total files \\n in record\" ,bbox_to_anchor=(0.15,0.9))\n", "plt.ylim(-1,103)\n", "plt.xlabel('Percentage of files in repository with potential geospatial information')\n", "plt.ylabel('Percentage of files with successful geospatial \\n information extraction over potential files')\n", "plt.annotate('Figure '+str(fig_num)+'. Potential geospatial files vs. success rate over potential', (0,0),\n", " (140, -40), xycoords='axes fraction', weight='bold', textcoords='offset points', va='top')\n", "plt.annotate('https://o2r.info/geoextent/', (0,0), (600,-40), xycoords='axes fraction', textcoords='offset points', va='top')\n", "plt.annotate(\"1'\",xy=(42, 20), xytext=(45, 25),arrowprops=dict(arrowstyle=\"->\"))\n", "plt.annotate(\"2'\", xy=(99, 99), xytext=(92, 95),arrowprops=dict(arrowstyle=\"->\"))\n", "\n", "fig_num +=1\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each circle in the above figure represents a Zenodo record and its extraction results. For example, the repository *[Is drought tolerance a domestication trait in tepary bean?: Allelic diversity at abiotic stress responsive genes in cultivated Phaseolus acutifolius A. Gray and its wild relatives](https://zenodo.org/record/3981412)* (see **1'** in the figure) has a total number of \n", "**12** files. From those files, **5** (41.67%) corresponds to a file format known to possibly store geospatial information (`.CSV`) and the remaining files are text files with DNA data (`FAS`). From these supported files, only **1** has a successful extraction resulting in a **20%** of success over the potential. Another example repository, *[The Literary Geographies of Christine de Pizan (geo-data)](https://zenodo.org/record/35350)* (see **2'** in the figure) only has **1** file. This file is from a supported format (`CSV`) and the extraction was successful resulting in both potential and successful extraction of **100%**. The differences between these two cases with only one successful geoextent extraction illustrate the complexity in understanding the reliability of the extraction.\n", "\n", "In general, we observe that records with 0% successful extractions (vertical axis) over their potential (horizontal axis) have different percentages of potential geospatial information over the total number of files. That means that most of these records have a relevant (proportional to their size) number of files with formats known to contain geospatial information, but geoextent did not extract any information. As mentioned before, this could be due to ambiguous file formats (such as `CSV` files) that do not necessarily store geospatial information or that do so in an unsupported way. We observe that repositories with successful extraction are usually small repositories in which the potential geospatial files represent more than 20% of the total files. There are few cases in which records with successful geospatial extractions have a 100% success rate of extraction over its potential. That means that the extracted bounding box could be missing some information.\n", "\n", "To understand which formats are problematic to extract geospatial information, we compute the percentages of extraction success." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Figure 7. Success rate of extraction by file format\n", "" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "image/png": "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soiIiIiIiIinJFlERERERETEU5IsIiIiIiIi4ilJFhEREREREfGUJIuIiIiIiIh4SpJFREREREREPCXJIiIiIiIiIp6SZBERERERERFPSbKIiIiIiIiIpyRZRERERERExFOSLCIiIiIiIuIpSRYRERERERHxlCSLiIiIiIiIeEqSRURERERERDwlySIiIiIiIiKekmQRERERERERT0myiIiIiIiIiKckWURERERERMRTkiwiIiIiIiLiKUkWERERERER8ZQki4iIiIiIiHilkiSb2Q1m9qeZzTGzd8ysgpk1NbPfzGyxmb1nZuVKo2wiIiIiIiJSdpV4kmxmjYBrgc7OucOBaKAf8CjwpHOuObAZuLykyyYiIiIiIiJlW2k1t44BKppZDFAJWA2cAoz1w0cBfUqnaCIiIiIiIlJWlXiS7JxbCTwO/E2QHG8FpgFbnHPpfrQVQKNw05vZYDObamZT169fXxJFFhERERERkTKiNJpb1wDOAZoCDYHKwJkFnd4594pzrrNzrnOdOnWKqZQiIiIiIiJSFpVGc+vTgGXOufXOuTTgI+B4oLpvfg3QGFhZCmUTERERERGRMqw0kuS/gWPMrJKZGXAqMBeYAJzvxxkIfFoKZRMREREREZEyrDTuSf6N4AFdfwCzfRleAW4DbjSzxUAt4LWSLpuIiIiIiIiUbTF7H6XoOefuAe7J1Xsp0KUUiiMiIiIiIiIClN5fQImIiIiIiIhEHCXJIiIiIiIiIp6SZBERERERERFPSbKIiIiIiIiIpyRZRERERERExFOSLCIiIiIiIuIpSRYRERERERHxlCSLiIiIiIiIeEqSRURERERERDwlySIiIiIiIiKekmQRERERERERT0myiIiIiIiIiKckWURERERERMRTkiwiIiIiIiLiKUkWERERERER8ZQki4iIiIiIiHhKkkVEREREREQ8JckiIiIiIiIinpJkEREREREREU9JsoiIiIiIiIinJFlERERERETEU5IsIiIiIiIi4ilJFhEREREREfGUJIuIiIiIiIh4SpJFREREREREPCXJIiIiIiIiIp6SZBERERERERFPSbKIiIiIiIiIpyRZRERERERExFOSLCIiIiIiIuIpSRYRERERERHxlCSLiIiIiIiIeEqSRURERERERDwlySIiIiIiIiJegZJkC1xkZnf7z03MrEthv9TMqpvZWDObb2bzzOxYM6tpZt+Z2SL/XqOw8xcREREREREpjIJeSX4BOBbo7z9vA57fj+99GvjaOZcAtAfmAcOA8c65FsB4/1lERERERESkxBQ0ST7aOXcVsAvAObcZKFeYLzSzasBJwGt+XqnOuS3AOcAoP9oooE9h5i8iIiIiIiJSWAVNktPMLBpwAGZWB8gs5Hc2BdYDb5jZdDN71cwqA/Wcc6v9OGuAeuEmNrPBZjbVzKauX7++kEUQERERERERyaugSfIzwMdAXTN7CPgZ+HchvzMG6Ai86Jw7EthBrqbVzjmHT8hzc8694pzr7JzrXKdOnUIWQURERERERCSvmIKM5Jx728ymAacCBvRxzs0r5HeuAFY4537zn8cSJMlrzayBc261mTUA1hVy/iIiIiIiIiKFUtCnW9ckSFrfAcYQJLSxhflC59waYLmZtfK9TgXmAp8BA32/gcCnhZm/iIiIiIiISGEV6Eoy8AdwCLCZ4EpydWCNma0FrnDOTdvH770GeNvMygFLgUsJEvb3zexy4C/gH/s4TxEREREREZH9UtAk+TtgrHPuGwAz6w6cB7xB8PdQR+/LlzrnZgCdwww6dV/mIyIiIiIiIlKUCpokH+OcuyLrg3PuWzN73Dn3f2ZWvpjKJiIiIiIickBLS0tjxYoV7Nq1q1jm/91337WbOXNmYrHM/OCVCcxJT0//V6dOnfI8C6ugSfJqM7sNeNd/vpDgvuRoCv9XUCIiBxQbvK93luxd2Mf4i4iIyEFjxYoVVKlShfj4eMysyOefkZGRfvjhh28o8hkfxDIzM239+vVt1qxZ8yrQO/fwgv4F1D+BxsAn/tXE94tG9w6LiIiIiIiEtWvXLmrVqlUsCbIUTlRUlKtTp85W4PBwwwv6F1AbCB62Fc7iQpZNRERERETkoKcEOfJERUU58rloXNC/gKpjZo+Z2Zdm9kPWq0hLKSIiIiIiIkXutttuq9+8efO2LVu2bJOQkNDmhx9+qFzaZcry9ddfxzVv3rxtQkJCm+3bt+d7NqFLly6tJk2aVKkkylTQe5LfBt4DegJXEvyP8friKpSIiIiIiMjByF4p2qvKs4+bvcfh33//feVvvvmm+uzZs+dWrFjRrV69OiYlJSViLm2/+eabNW+88cbVQ4cO3VTaZclS0HuSaznnXgPSnHM/OucuA04pxnKJiIiIiIjIflq5cmVszZo10ytWrOgAGjRokB4fH5/WqFGjdqtXr44BmDRpUqUuXbq0Ati6dWvU+eefH9+yZcs2LVu2bDNy5MjqAGPHjq3apk2b1q1atWpz7LHHtgRISkqKuuCCC+LbtWvXunXr1m1Gjx5dHWDq1KkV2rVr1zohIaFNy5Yt28yePbt8UlJSVNeuXZu3atWqTYsWLdqOGDGixhNPPFH7iy++qPnQQw816t27d9Nx48ZV6datW/Ossl9yySVNnnnmmVolu8QKfiU5zb+vNrMewCqgZvEUSURERERERIpCnz59kh5++OGG8fHxh59wwglJ/fv339SjR4/t+Y0/bNiwBlWrVs1YuHDhXID169dHr1q1Kubqq6+Onzhx4vyEhITUtWvXRgPccccdDbp165b0wQcfJG7YsCG6c+fOrXv37p307LPP1hk6dOjaIUOGbNq1a5elp6czduzYavXr10+bOHHiYoCNGzdG16pVK2Py5MlxPXv23HrppZduHjduXJWSWSp7VtAryQ+aWTXgJuBm4FXg+uIqlIiIiIiIiOy/atWqZc6ZM2fuc88991edOnXSBw4c2GxPV2cnTZpU9YYbbsj+7+A6depkTJw4sXKXLl22JSQkpALUq1cvA2DixIlVn3zyyQYJCQltTjjhhFYpKSm2ePHicscee+yO//73vw2GDx9ef9GiReXi4uJcx44dk3/66aeqQ4YMafT111/H1apVK6P4oy+cgl5J3uyc2wpsBboBmNnxxVYqERERERERKRIxMTH07NlzW8+ePbcdccQRyW+99Vat6Ohol5mZCUBycnJBL57m4Jxj7Nixi9u3b58S2r9jx467TjzxxB0ff/xxtZ49e7Z49tln/+rdu/e2P/74Y+6HH35Y7a677mr0/fffJz3++OOrQ6eLjY3NLhNAad07XdCF8WwB+4mIiIiIiEiEmDlzZvnZs2eXz/o8ffr0io0bN05t3Lhx6uTJkysBvP/++zWyhp988slJTz75ZN2sz+vXr4/u2rXrjilTplSZP39+OYCs5tbdunVL+u9//1svK7GdPHlyRYC5c+eWa926dcqdd9657owzztgyY8aMiomJibFVqlTJHDp06KYbb7xxzYwZM/I8qbpZs2YpixcvrpicnGwbNmyI/vnnn6sW02LZoz1eSTazY4HjgDpmdmPIoKpAdHEWTERERESkqNjg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9NJDbr755gYAH374YdXOnTu3+u677yp///331e+8887GCQkJbf7888/yXbp0aXXZZZcdcvjhh7d+8MEH640ZM6baEUcckdC6des2xx13XMvly5fHAGzdujXq/PPPj2/ZsmWbli1bthk5cmT1oUOHNkpJSYlKSEho07t376YQJM0AmZmZ/N///V/jFi1atG3ZsmWbESNG1AAYN25clS5durQ688wzD2vatGnb3r17N83ch7++K+g9yc2ccxeaWX8A59xOi7Q/MhUREREREZGwbrnllnXt2rVre++9964J7T9kyJAmAwYM2HjNNddsfOqpp2oNGTLkkO+//35J6Dh33HFHg27duiV98MEHiRs2bIju3Llz6969eyc988wzK4888sjWJ5988vabbrqpyRdffLGobdu2KaeddtqW3FeSU1NTbc6cOfMA1q9fH92vX7/5UVFRPPHEE7Xvv//++iNGjFgxbNiwBlWrVs1YuHDh3KzxBg0atGXkyJF158+fn+epmm+++Wb12bNnV5w3b96fq1evjunSpUvr7t27bweYN29exRkzZiyNj49P69SpU8J3330Xd8YZZ2wvyLIqaJKcamYVCVrkY2bNCHnKtYiIiIiIiESumjVrZl5wwQUbH3nkkboVK1bMvqw6ffr0yl999dUSgCFDhmy67777GueeduLEiVW/+eab6s8880x9gJSUFFu8eHG5jh077nrxxRcTzzrrrIT77rtvedu2bfPNEfv375/9KP1ly5aV69OnT+P169fHpqamRh1yyCEpAJMmTar67rvvLs0ar06dOnv8c+qffvqpyj/+8Y9NMTExHHLIIelHH3309p9//rlStWrVMtu1a7ejWbNmaQBt27bduWTJkjxXyPNT0ObW9wBfA4eY2dvAeODWgn6JiIiIiIiIlK7bb7997ZgxY2rv2LFjn/5ewjnH2LFjF8+fP3/u/Pnz565evXp2x44ddwHMmDGjYrVq1dJXrVq1xxuNq1Spkp2YX3311U2GDh26buHChXOfe+65v1JSUor87y7Kly+ffRN5dHQ06enpBW4JXaDCOOe+A84l+Ov0d4DOzrmJ+1ZMERERERERKS316tXL6NWr1+YxY8bUzup35JFH7nj11VdrALz88ss1O3funKdJcrdu3ZL++9//1su6r3fy5MkVARYuXFju+eefrz9t2rS548ePr/bDDz9UBoiLi8tISkrKN9fctm1bdJMmTdIARo4cWSur/8knn5z05JNP1s36vH79+miAmJgYl5KSkifJPemkk7aNHTu2Znp6OqtWrYqZMmVK3IknnrhjnxdMLgVKks2sL5DunPvCP9E63cz67O+Xi4iIiIiISMkZPnz4mi1btmTfdvvSSy/9/dZbb9Vu2bJlm3feeafWCy+8sDz3NI888siq9PR0S0hIaNO8efO2d955Z6PMzEwGDRoU/9BDDy2Pj49PGzFiROKVV1556M6dO23AgAGbnnnmmfqtW7du8+eff5YPU4ZV/fv3b9a2bdvWtWrVSs/q//DDD6/esmVLdIsWLdq2atWqzZdfflkFYMCAAetbt26d/eCuLBdffPGWtm3bJrdu3bpt165dW953330rmjRpkp77+/ZVQf8CaoZzrkOuftOdc0fubwH2h/4CKsKUwb+TKKvrOtL+WqGk6G80ik6kx636rAgp7shUBrfxslqf6dhVdIrsL6CK2Jw5c/b6F1AS3v7+BVS48Qr60C8RERERERGRA0JBk+SpZvaEmTXzryeAacVZMBEREREREZGSVtCrwdcAdwHvEfwN1HfAVcVVKBEREREpPja46K91RHYDXBGRgttrkmxm0cA451y3EiiPiIiIiIjIQcU5h1nx3CsthZOZmWlAZrhhe21u7ZzLADLNrFpRF0xERERERORgVqFCBTZu3EhBHpgsJSMzM9PWr19fDZgTbnhBm1tvB2ab2XdA9v9OOeeu3f8iioiIiIiIHJwaN27MihUrWL9+fbHMf82aNTEZGRm19z6mhMgE5qSnp/8r3MCCJskf+ZeIiIiIiIgUUGxsLE2bNt37iIXUpk2b2c65Yvo/u7KpQEmyc26UmVUEmjjnFhTFF/t7nacCK51zPc2sKfAuUIvgydkXO+dSi+K7RERERERERAqiQH8BZWa9gBnA1/5zBzP7bD+/+zog9E+vHwWedM41BzYDl+/n/EVERERERET2SUH/J/leoAuwBcA5NwM4rLBfamaNgR7Aq/6zAacAY/0oo4A+hZ2/iIiIiIiISGEUNElOc85tzdUv7OOyC+gp4NaQedQCtjjn0v3nFUCjcBOa2WAzm2pmU4vr5ncREREREREpmwqaJP9pZv8Eos2shZk9C/xSmC80s57AOudcof7F3jn3inOus3Ouc506dQozCxEREREREZGwCpokXwO0BVKAMcBW4PpCfufxQG8zSyR4UNcpwNNAdTPLepBYY2BlIecvIiIiIiIiUih7fLq1mVUArgSaA7OBY0OaRBeKc+524HY//67Azc65AWb2AXA+QeI8EPh0f75HREREREREZF/t7UryKKAzQYJ8FvB4MZblNuBGM1tMcI/ya8X4XSIiIiIiIiJ57O1/kts459oBmNlrwJSi/HLn3ERgou9eSvAEbREREREREZFSsbcryWlZHfvbzFpEREREREQk0u3tSnJ7M0vy3QZU9J8NcM65qsVaOhEREREREZEStMck2TkXXVIFERERERERESltBf0LKBEREREREZGDnpJkEREREREREU9JsoiIiIiIiIinJFlERERERETEU5IsIiIiIiIi4ilJFhEREREREfGUJIuIiIiIiIh4SpJFREREREREPCXJIiIiIiIiIp6SZBERERERERFPSbKIiIiIiIiIpyRZRERERERExFOSLCIiIiIiIuIpSRYRERERERHxlCSLiIiIiIiIeEqSRURERERERDwlySIiIiIiIiKekmQRERERERERT0myiIiIiIiIiKckWURERERERMRTkiwiIiIiIiLiKUkWERERERER8ZQki4iIiIiIiHhKkkVEREREREQ8JckiIiIiIiIinpJkEREREREREU9JsoiIiIiIiIinJFlERERERETEU5IsIiIiIiIi4ilJFhEREREREfGUJIuIiIiIiIh4JZ4km9khZjbBzOaa2Z9mdp3vX9PMvjOzRf69RkmXTURERERERMq20riSnA7c5JxrAxwDXGVmbYBhwHjnXAtgvP8sIiIiIiIiUmJKPEl2zq12zv3hu7cB84BGwDnAKD/aKKBPSZdNREREREREyrZSvSfZzOKBI4HfgHrOudV+0BqgXj7TDDazqWY2df369SVTUBERERERESkTSi1JNrM44EPgeudcUugw55wDXLjpnHOvOOc6O+c616lTpwRKKiIiIiIiImVFqSTJZhZLkCC/7Zz7yPdea2YN/PAGwLrSKJuIiIiIiIiUXaXxdGsDXgPmOeeeCBn0GTDQdw8EPi3psomIiIiIiEjZFlMK33k8cDEw28xm+H53AI8A75vZ5cBfwD9KoWwiIiIiIiJShpV4kuyc+xmwfAafWpJlEREREREREQlVqk+3FhEREREREYkkSpJFRERERERE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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "uni_files_gdf['format'].value_counts()\n", "files_valid = uni_files_gdf[uni_files_gdf.geometry.is_valid].copy().reset_index(drop=True)\n", "\n", "d1 = pd.DataFrame({\"Total\":uni_files_gdf['format'].value_counts(),\n", " \"geoextent_success\":files_valid['format'].value_counts()})\n", "d1.dropna(inplace=True)\n", "d1['perc_success'] = (d1['geoextent_success']/d1['Total'])*100\n", "\n", "# To avoid repetition for shapefiles we remote dbf and shx\n", "d1.drop('dbf',inplace=True)\n", "d1.drop('shx',inplace=True)\n", "\n", "labels = d1.index.values\n", "success = d1['perc_success']\n", "failure = 100 - d1['perc_success']\n", "\n", "color_success = [\"#009900\",\"#255e25\"]\n", "color_failure = [\"#FF3333\",\"#930707\"]\n", "fig, ax = plt.subplots(figsize=(15,4))\n", "width = 0.35\n", "plt.bar(labels, success, width, label='Successful',color= color_success[0])\n", "plt.bar(labels, failure, width, bottom=success, color = color_failure[0],label='No extraction')\n", "plt.ylabel('Percentage')\n", "plt.xlabel('File format')\n", "plt.ylabel('Percentage')\n", "\n", "count = 0\n", "for bar in ax.patches: \n", " displace =-1\n", " color = color_failure[1]\n", " pos = 90\n", " if bar.get_y() == 0:\n", " n = d1['Total'][count]\n", " count+=1\n", " displace = 3\n", " color= color_success[1]\n", " pos = 0\n", " plt.annotate(\"n= \"+str(n), \n", " (bar.get_x() + (bar.get_width()/2), \n", " 50), ha='center', va='center', \n", " size=10, xytext=(0, 0),color='black', \n", " textcoords='offset points')\n", " plt.annotate(format(bar.get_height()/100, \".1%\"), \n", " (bar.get_x() + (bar.get_width()*1.5), \n", " pos), ha='center', va='center', \n", " size=10, xytext=(0, 8),color=color, \n", " textcoords='offset points')\n", " \n", "plt.legend(loc='center right', bbox_to_anchor=(1.1, 0.5))\n", "plt.annotate('Figure '+str(fig_num)+'. Geoextent extraction success by supported file type', (0,0), (240, -40), xycoords='axes fraction', weight='bold', textcoords='offset points', va='top')\n", "plt.annotate('https://o2r.info/geoextent/', (0,0), (710,-40), xycoords='axes fraction', textcoords='offset points', va='top')\n", "fig_num +=1\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, we can observe that file formats whose main purpose is to store geospatial information have a higher success rate of extraction. For example, [GeoJSON](https://geojson.org/), [TIFF](https://en.wikipedia.org/wiki/TIFF), [KML](https://developers.google.com/kml/documentation/kml_tut), and [UNW](https://uavsar.jpl.nasa.gov/science/documents/rpi-format.html) have a **100%** success rate, but the number of files is relatively small. \n", "Surprisingly though, other popular formats have a lower success rate (with bigger samples). For example,\n", "[GeoPackage](https://www.geopackage.org/) (`.gpkg`), an open format for geospatial information, has a lower success rate of **57.1%**. That could result from the small sample size (n=**7**) and errors in the formatting of files as those present in other geospatial file formats (e.g., **56.25%** failure in `.shp`). Similarly, `.shp` and`.tif` success rates vary between **43.75** and **52.54%**. \n", "\n", "Second, the results suggest that ambiguous formats (i.e., those that do not necessarily have geospatial information) unsurprisingly have a high percentage of no extractions. For CSV files, geoextent could not extract geospatial information in **98.8%** of files. To determine what percentage corresponds to information without geospatial data (e.g., laboratory results) and those with geospatial information but unsuccessful extraction, we would need to evaluate each file by hand. However, what is relevant for us is that at least **1.2%** of CSV files have extractable geospatial information. Files with a `.png` format also have a similar low success rate of **0.10%**. That means that we can not discard ambiguous file formats as potential sources of geometada.\n", "\n", "Third, the low success rate for [NetCDF`.nc`](https://www.unidata.ucar.edu/software/netcdf/) (**6.6%**) files, an array-oriented scientific data format, could suggest that information is store in multiple formats without implementing its full capabilities to preserve geospatial information. Even though the success rate of this and other specialised file formats are higher than ambiguous formats, a better performance would be desirable to store and reduce problems while reproducing the findings of the studies." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Visualization of extracted geospatial extents" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For a final evaluation of the geoextent extraction, we generate a map of bounding boxes by record (repository).\n", "\n", "#### Map 1. Extracted bounding boxes visualization\n", "" ] }, { "cell_type": "code", "execution_count": 74, "metadata": { "scrolled": false }, "outputs": [ { "data": { "text/html": [ "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ "" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Extract only repositories and files with geometry\n", "\n", "rep_valid = gdf_repository[gdf_repository.geometry.is_valid].copy().reset_index(drop=True)\n", "rep_valid.tbox = rep_valid.tbox.fillna(\"\")\n", "rep_valid.zenodo_record_id = rep_valid.zenodo_record_id.astype(str)\n", "\n", "files_valid = uni_files_gdf[uni_files_gdf.geometry.is_valid].copy().reset_index(drop=True)\n", "files_valid.zenodo_record_id = files_valid.zenodo_record_id.astype(str)\n", "\n", "rep_valid = rep_valid.merge(df_geo_zenodo_api,left_on=\"zenodo_record_id\",right_index=True)\n", "\n", "m = folium.Map(max_bounds= True,height=500)\n", "stripes = plugins.pattern.StripePattern(angle=-45,color=\"#B22222\")\n", "style = {'fillColor': '#B22222', 'color': '#B22222', 'dashArray': 5,'fillPattern' :stripes,'fillOpacity' : 0.6} \n", "\n", "for i in range(0, len(rep_valid)):\n", "\n", " fg = FeatureGroup(name=rep_valid[\"zenodo_record_id\"][i])\n", " folium.GeoJson(data=rep_valid[\"bbox\"][i],\n", " name=rep_valid[\"zenodo_record_id\"][i],\n", " style_function=lambda x: style,\n", " ).add_child(\n", " folium.Popup(\n", " \" REPOSITORY \" +\n", " \"
  • Repository ID: \" + rep_valid[\"zenodo_record_id\"][i] + \"
  • \" +\n", " \"
  • Title: \" + rep_valid[\"title\"][i] + \"
  • \" +\n", " \"
  • D.O.I: \" + rep_valid[\"doi\"][i] + \"
  • \" +\n", " \"
  • License: \" + rep_valid[\"license\"][i] + \"
  • \" +\n", " \"
  • tbox: \" + str(rep_valid[\"tbox\"][i]) + \"
  • \"\n", " , max_width='250')).add_to(fg)\n", "\n", " for j in range(0, len(files_valid)):\n", " if files_valid[\"zenodo_record_id\"][j] == rep_valid[\"zenodo_record_id\"][i]:\n", " folium.GeoJson(data=files_valid[\"bbox\"][j],\n", " name=rep_valid[\"zenodo_record_id\"][i]).add_child(\n", " folium.Popup(\n", " \" FILE \" +\n", " \"
  • Filename: \" + files_valid[\"filename\"][j] + \"
  • \" +\n", " \"
  • Format: \" + files_valid[\"format\"][j] + \"
  • \" +\n", " \"
  • Geoextent Handler: \" + str(files_valid[\"handler\"][j]) + \"
  • \" +\n", " \"
    REPOSITORY OF ORIGIN \" +\n", " \"
  • Repository ID: \" + rep_valid[\"zenodo_record_id\"][i] + \"
  • \" +\n", " \"
  • Title: \" + rep_valid[\"title\"][i] + \"
  • \" +\n", " \"
  • D.O.I: \" + rep_valid[\"doi\"][i] + \"
  • \" +\n", " \"
  • License: \" + rep_valid[\"license\"][i] + \"
  • \"\n", " , max_width='400')).add_to(fg)\n", " m.add_child(fg)\n", "\n", "LayerControl().add_to(m)\n", "m" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As expected, a visual inspection of the bounding boxes suggests that there are correct, partially correct, and erroneous extractions. Even though determining the proportions would require an individual analysis record by record, we can make some initial observations. First, there are records with a bbox that corresponds to the geographical area mentioned in the description or title of the repository. Second, there are records with bbox with flipped coordinates or a combination of correct and erroneous individual file extractions. Finally, extractions with errors are the records with bbox that do not correspond with the area of study described in the title or description of the repository.\n", "\n", "Erroneous and flipped extractions could be due to errors in the original files or errors in the extraction due to geoextent assumptions. On the one hand, some files could store errors or be ambiguous (e.g., absence of a coordinate reference system or incorrect ordering of latitude and longitude). On the other hand, geoextent tries to extract information from ambiguous files by assuming WGS84 as a coordinate reference system if this information is not available or by flipping latitude and longitude values when the extracted values are not correct (e.g., latitude > 90). This strategy could help in some cases but could also potentially result in incorrect extractions." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# References\n", "\n", "\n", "\n", "Chandra, R.V. & Varanasi, B.S., 2015. Python requests essentials, Packt Publishing Ltd.\n", "\n", "GDAL/OGR contributors. 2021. GDAL/OGR Geospatial Data Abstraction software Library. Open Source Geospatial Foundation. [https://gdal.org](https://gdal.org)\n", "\n", "Gillies, S. & others, 2007. Shapely: manipulation and analysis of geometric objects. https://pandas.pydata.org/https://github.com/Toblerity/Shapely\n", "\n", "Gregory, Kathleen, Siri Jodha Khalsa, William K. Michener, Fotis E. Psomopoulos, Anita de Waard, and Mingfang Wu. 2018. “Eleven Quick Tips for Finding Research Data.” Edited by Francis Ouellette. PLOS Computational Biology 14 (4): e1006038. https://doi.org/10.1371/journal.pcbi.1006038.\n", "\n", "Jordahl, K., 2014. GeoPandas: Python tools for geographic data. URL: https://github.com/geopandas/geopandas.\n", "\n", "Harris, Charles R., K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, et al. 2020. “Array Programming with NumPy.” Nature 585 (7825): 357–62. https://doi.org/10.1038/s41586-020-2649-2.\n", "\n", "Hunter, John D. 2007. “Matplotlib: A 2D Graphics Environment.” Computing in Science & Engineering 9 (3): 90–95. https://doi.org/10.1109/mcse.2007.55.\n", "\n", "Kluyver Thomas, Ragan-Kelley Benjamin, Pérez Fernando, Granger Brian, Bussonnier Matthias, Frederic Jonathan, Kelley Kyle, et al. 2016. “Jupyter Notebooks, a Publishing Format for Reproducible Computational Workflows.” JB. Stand Alone 0 (Positioning and Power in Academic Publishing: Players, Agents and Agendas): 87–90. https://doi.org/10.3233/978-1-61499-649-1-87.\n", "\n", "McKinney, W., 2010. Data structures for statistical computing in python. In Proceedings of the 9th Python in Science Conference. pp. 51–56.\n", "\n", "Nüst, Daniel, Garzón Sebastian, and Qamaz Yousef. 2021. o2r-project/geoextent (Version v0.7.1). Zenodo. https://doi.org/10.5281/ZENODO.4762205\n", "\n", "python-visualization, (2020). Folium. https://python-visualization.github.io/folium/.\n", "\n", "Van Rossum, G. & Drake, F.L., 2009. Python 3 Reference Manual, Scotts Valley, CA: CreateSpace." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.6.9" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": false, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": true, "toc_position": { "height": "493px", "left": "108px", "top": "110px", "width": "259.797px" }, "toc_section_display": true, "toc_window_display": true }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 5 }