Guardado en:
| Autor principal: | |
|---|---|
| Formato: | Recurso digital |
| Lenguaje: | |
| Publicado: |
Zenodo
2026
|
| Acceso en línea: | https://doi.org/10.5281/zenodo.20268179 |
| Etiquetas: |
Agregar Etiqueta
Sin Etiquetas, Sea el primero en etiquetar este registro!
|
Tabla de Contenidos:
- <p># Regulatory Language Limits Satellite-Based Enforcement in Marine Protected Areas</p> <p>**Submission package for *Science* (Policy Forum) + Zenodo archive**</p> <p>Authors: Fabio Favoretto, Catalina López-Sagástegui, Paolo Guidetti, Aldo Simone, Jennifer Sletten, Virgil Zetterlind, Octavio Aburto-Oropeza, Keiron Fraser, Enric Sala.</p> <p>Corresponding author: Fabio Favoretto — <fabio.favoretto@plymouth.ac.uk></p> <p>---</p> <p>## Contents</p> <p>```<br>for_submission/<br>├── manuscript/<br>│ ├── Favoretto_Main_Manuscript.docx Final main text<br>│ ├── Favoretto_Supplementary_Materials.docx Final supplementary<br>│ └── Favoretto_Cover_Letter_Science.docx Cover letter to Science editors<br>├── figures/<br>│ ├── Figure1_regulation_preparedness.{pdf,png}<br>│ ├── Figure2_improvement_potential.{pdf,png}<br>│ ├── Figure3_legislation_enforcement.{pdf,png}<br>│ ├── FigureS1_country_comparison.{pdf,png}<br>│ ├── FigureS2_enforcement_features.{pdf,png}<br>│ ├── FigureS3_legislative_age.{pdf,png}<br>│ └── FigureS4_score_vs_recency.{pdf,png}<br>├── code/<br>│ ├── python/<br>│ │ ├── nlp_contextual_scoring.py Primary scoring (RPI + Legislation Readiness)<br>│ │ ├── build_legislation_index.py Document-year metadata + country index<br>│ │ └── nlp_validation_scoring.py Optional LLM validation cross-check<br>│ └── R/<br>│ ├── 01_policy_unpreparedness_analysis.R Generates Fig 1, 2, S1, S2<br>│ └── 02_legislation_readiness_figures.R Generates Fig 3, S3, S4<br>├── data/<br>│ ├── input/<br>│ │ └── navigator_priority_countries_202507.csv 9,740 MPA regulations<br>│ ├── legislation_texts/ 119 FAOLEX PDFs + 7 EN translations<br>│ ├── faolex_fisheries_legislation.csv FAOLEX document metadata<br>│ └── legislation_extracted_metadata.csv Extracted year/title metadata<br>├── outputs/ Pre-computed analysis outputs<br>│ ├── regulation_scores.csv 9,740 scored MPAs<br>│ ├── legislation_country_scores.csv 15 country legislation scores<br>│ ├── legislation_scores.csv 119 document-level scores<br>│ ├── legislation_readiness_index.csv Country index with year metadata<br>│ ├── manuscript_statistics.json Key stats cited in main text<br>│ ├── manuscript_legislation_statistics.json<br>│ └── derived/{country_summary.csv,fix_impact_summary.csv}<br>├── requirements.txt Python dependencies<br>├── R_dependencies.txt R package list<br>├── LICENSE MIT<br>└── README.md This file<br>```</p> <p>**One file is intentionally excluded** from this package due to size: `navigator_priority_countries_202507_clean.gpkg` (~581 MB), the GeoPackage of MPA polygon geometries. It is required only to regenerate **Figure 1A** (the map). It can be rebuilt from the ProtectedSeas Navigator shapefile distribution at <https://navigatormap.org/> or obtained on request from the corresponding author.</p> <p>---</p> <p>## Reproducing every number in the paper (≤ 5 minutes)</p> <p>The analysis is **fully deterministic**: no machine-learning models, no random seeds, no external APIs in the scoring path. Given the same input data, any machine with Python 3.8+ produces identical scores.</p> <p>### Environment</p> <p>```bash<br># Python (only pdfplumber is strictly required; lxml is used by nlp_validation_scoring.py)<br>pip install -r requirements.txt</p> <p># R packages<br>Rscript -e 'install.packages(c("tidyverse","sf","viridis","scales","patchwork","ggrepel"))'<br>```</p> <p>### Run</p> <p>From the root of this package:</p> <p>```bash<br># 1. Score all 9,740 MPAs and all 119 FAOLEX documents (~2 minutes)<br>python3 code/python/nlp_contextual_scoring.py</p> <p># 2. Build the year-metadata-enriched legislation index<br>python3 code/python/build_legislation_index.py</p> <p># 3. Generate figures 1, 2, S1, S2 (regulation side)<br>Rscript code/R/01_policy_unpreparedness_analysis.R</p> <p># 4. Generate figures 3, S3, S4 (legislation side)<br>Rscript code/R/02_legislation_readiness_figures.R<br>```</p> <p>Outputs are written to `outputs/latest/` next to the inputs. Compare against the pre-computed `outputs/` directory in this package to verify reproducibility.</p> <p>> ⚠ **Workflow note:** `build_legislation_index.py` and `nlp_contextual_scoring.py` both write `manuscript_legislation_statistics.json`. To reproduce the manuscript numbers, run `nlp_contextual_scoring.py` **last** so its statistics overwrite the build-script's.</p> <p>### Optional: LLM validation cross-check</p> <p>`code/python/nlp_validation_scoring.py` reproduces the Claude-API-based independent scoring used to validate the keyword Legislation Readiness Index. Requires `ANTHROPIC_API_KEY` and is NOT needed to reproduce any number in the manuscript — it is only a cross-validation that the keyword scoring captures meaningful legal provisions.</p> <p>---</p> <p>## Key reproduced numbers (cross-checked against fresh outputs)</p> <p>| Claim in manuscript | Output value | Source file |<br>|---|---|---|<br>| 9,740 zonations, 15 countries | 9,740 / 15 | `navigator_priority_countries_202507.csv` |<br>| Mean RPI = 33 | 33.0 | `manuscript_statistics.json` |<br>| Median RPI = 33 | 33.4 | `manuscript_statistics.json` |<br>| ~40% MPAs below 30 | 39.2% | `manuscript_statistics.json` |<br>| No MPA above 75 | max score 71.3 | `regulation_scores.csv` |<br>| 4% mention monitoring | 3.7% | `manuscript_statistics.json` |<br>| 68% with prohibition | 68.1% | `manuscript_statistics.json` |<br>| 61% with discretionary | 61.3% | `manuscript_statistics.json` |<br>| Mean RPI → 76 after fixes (+130%) | 75.9 / 129.7% | `manuscript_statistics.json` |<br>| Mean Legislation Readiness = 47 | 47.0 | `manuscript_legislation_statistics.json` |<br>| Best: Maldives 67; Worst: Ecuador 19, Gabon 19 | 67 / 19 / 19 | `legislation_country_scores.csv` |<br>| Evidence admissibility mean = 11/22 | 10.9 | `manuscript_legislation_statistics.json` |<br>| Pearson r = 0.32, p = 0.25 (recency vs readiness) | 0.316 / 0.2506 | computed by `02_legislation_readiness_figures.R` |</p> <p>---</p> <p>## Data provenance & licensing</p> <p>- **ProtectedSeas Navigator** regulatory text and zone polygons: © ProtectedSeas / Anthropocene Institute, distributed under the Navigator data-use terms. The CSV extract included here covers the 15 countries used in our sample (release 2025-07).<br>- **FAOLEX** fisheries legislation PDFs: © FAO. Included for reproducibility of the keyword scoring. Original documents are publicly accessible at <https://www.fao.org/faolex/>.<br>- **Analysis code** (`code/`): MIT License (see `LICENSE`).<br>- **Pre-computed outputs and figures**: CC-BY-4.0.</p> <p>---</p> <p>## Citing this work</p> <p>```<br>Favoretto, F., López-Sagástegui, C., Guidetti, P., Simone, A., Sletten, J.,<br>Zetterlind, V., Aburto-Oropeza, O., Fraser, K., & Sala, E. (2026).<br>Regulatory Language Limits Satellite-Based Enforcement in Marine Protected<br>Areas. Submitted to Science (Policy Forum). Zenodo. doi:[to be assigned]<br>```</p> <p>Once the *Science* DOI is issued, please cite the paper directly and use the Zenodo archive only for the data and code.</p> <p>---</p> <p>## Acknowledgments</p> <p>AI tools were used as a coding assistant and for proofreading the manuscript.</p> <p>## Competing interests</p> <p>The authors declare no competing interests.</p>