This repository accompanies an upcoming investigation by Grist and High Country News exploring state trust lands on tribal nations' reservations. It allows users to build and modify the dataset underlying the project. For more details on our methodology, please view METHODOLOGY.md
. Final built datasets are available in the public_data
folder.
The investigation was written and reported by Maria Parazo Rose and Anna V. Smith, with editing by Tristan Ahtone and Kate Schimel. This repository was authored by Maria Parazo Rose, Clayton Aldern, and Parker Ziegler.
This project uses Git LFS to store .dbf
and .shp
files remotely on GitHub rather than directly in the repository source. In order to access these files and build the datasets locally, you'll need to do the following:
$ git lfs install
$ git lfs pull
Together, these commands will install the Git LFS configuration, fetch LFS changes from the remote, and replace pointer files locally with the actual data.
While not strictly necessary, we recommend creating a Python virtual environment to isolate this project's dependencies from other Python projects on your machine. The following commands will create a virtual environment and active it in your shell:
$ python -m venv .venv
$ source .venv/bin/activate
Note that you're welcome to name your virtual environment something other than .venv
.
After completing the above, install Python dependencies with the following command:
$ pip install .
If you'd like to edit the source code in the course of your work, make sure to pass the -e
or --editable
flag to install the stlor
package in editable mode.
$ pip install -e .
Originally, the datasets in this repository were produced through a manual process using QGIS, documented in METHODOLOGY.md. The scripts in this repository transfer a subset of these steps to an automated process using Python.
The primary automation in this repository involves enriching state trust land parcels with information on their designated land use activities, clipping parcels to reservation boundaries, and filtering parcels to those 10 acres and greater. Collectively, these actions correspond to steps 5-7 in METHODOLOGY.md.
To run these steps locally, execute the following command from the root directory:
python stlor/main.py
The outputs of this process are written to 03_ActivityMatch.{geojson,csv,xlsx}
, 04_Clipped.{geojson,csv,xlsx}
, 05_AcreageGreaterThan10.{geojson,csv,xlsx}
, and 06_All-STLs-on-Reservations-Final.{geojson,csv,xlsx}
in the public_data/04_All States
folder. All outputs are in the NAD83 Conus Albers (EPSG:5070) coordinate reference system. In addition, versions of each dataset in the WGS84 (EPSG:4326) coordinate reference system are generated with the _WGS84
suffix. Web mapping libraries such as Leaflet, MapLibre GL JS, and D3 can currently only work with geospatial data in WGS84, so please use this version of each dataset when integrating with your favorite web mapping tool.
The 02_All-STLs-on-Reservations{_WGS84}.{geojson,csv,xlsx}
files in the public_data/05_Final-Dataset
folder are just re-exports of the 06_All-STLs-on-Reservations-Final{_WGS84}.{geojson,csv,xlsx}
files.
The secondary automation in this repository involves computing aggregate statistics of state trust land acreage by reservation. This step corresponds to step 8 in METHODOLOGY.md.
To compute the aggregations locally, execute the following command from the root directory:
$ python stlor/aggregate.py
This script computes summary statistics on state trust land total acreage, surface acreage, subsurface acreage, parcel count, surface parcel count, and subsurface parcel count for each reservation, in addition to measuring the total reservation area. All area computations are performed in the NAD83 Conus Albers (EPSG:5070) coordinate reference system. The output of this step is written to public_data/05_Final-Dataset/01_STLs-on-Reservations-by-Reservation{_WGS84}.{geojson,csv,xlsx}
.