Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

03a — Step 1 reproduction: a country’s natural-regeneration area from the published map

LifeWatch ERIC

Question. Do the country numbers in Williams et al. (2024) follow from the authors’ own published 30 m map (Zenodo Williams et al. (2023))?

The country is a parameter: environment variable ISO3 (default COL). Colombia is the replication’s study country; Costa Rica (ISO3=CRI) is run as a second-country check of the area-method finding. Paper values are read directly from Supp. Tables 3 and 4 (paper/supplementary/, MOESM5 / MOESM6).

Paper value (Colombia, Neotropics; default run)MhaSource
Potential for natural regeneration, continuous (expected) area11.19Supp. Table 3
Potential for natural regeneration, binary > 50 %13.70Supp. Table 4
Area available for restoration93.78Supp. Tables 3 and 4

Method.

  • Country mask: GADM 4.1 level 0 polygon (paper: “GADM (2022)”). A 30 m pixel belongs to Colombia when its centre lies inside the polygon (GDAL rasterize default rule).

  • Pixel area: the raster is on a regular 0.00025° lon/lat grid (EPSG:4326), so a pixel’s area depends only on its row. We compute it three ways:

    1. ellipsoid_wgs84: the exact area of the lon/lat cell on the WGS84 ellipsoid (closed form with the authalic q function, checked against pyproj.Geod below). This is the reference.

    2. sphere_a_mollweide: the area the paper’s stated method gives. The paper computes areas “in Mollweide projection”. PROJ’s Mollweide (ESRI:54009, +proj=moll +datum=WGS84) is a spherical projection that uses the semi-major axis a as the sphere radius, so an equal-area Mollweide area equals the area on a sphere of radius a = 6,378,137 m (verified numerically below).

    3. nominal_900m2: every pixel counted as 30 m × 30 m = 900 m² (0.09 ha, the per-cell area the paper uses for carbon), applied to the native 0.00025° lon/lat pixels without reprojection. At Colombia’s latitudes a 0.00025° pixel is ~740–770 m², so this overstates area by ~17–21 %.

  • Continuous product: values are integer percentages (0–100, 255 = NoData). Expected area = Σ area × pct / 100. Because of integer storage, the true expected area lies within Σ area × (pct ± 0.5) / 100 if values were rounded, or within [pct, pct + 1) if truncated; both bounds are reported. The product has almost no 0 values: pixels whose probability rounds (or truncates) to 0 % appear to be stored as NoData. Their missing mass is bounded by treating pixels that are NoData in the continuous product but 0 in the binary product as p ∈ [0, 0.5 %) (rounding) or [0, 1 %) (truncation).

  • Binary product (pnv_bin_30m, 0/1, 3 = NoData): area = Σ area where value = 1. It is compared with the continuous product thresholded at > 50 % and ≥ 50 %.

  • “Available for restoration”: the paper does not define the mask. We report candidate definitions (valid pixels of each product) and compare them with 93.78 Mha.

  • HEALPix aggregation (for the step-2 map comparison): each 30 m pixel centre is assigned to its HEALPix depth-8 NESTED cell on the WGS84 ellipsoid (healpix_geo.nested.lonlat_to_healpix(..., ellipsoid="WGS84")), and exact ellipsoidal pixel areas are summed per cell. No resampling.

This step reuses the authors’ outputs, not their code (available on request only).

Pixel-area models

Check both formulas: ellipsoid against pyproj.Geod (geodesic polygon area), sphere-a against the planar area of the cell projected to ESRI:54009 Mollweide.

   lat  ellipsoid    geod  sphere_a  mollweide_planar  sphere_over_ellipsoid
0   -4    767.493 767.493   772.615           772.615             0.00667391
1    0    769.317 769.317   774.502           774.502              0.0067395
2    4    767.493 767.493   772.615           772.615             0.00667391
3    8    762.027 762.027   766.964           766.964             0.00647843
4   12    752.941 752.941   757.577           757.578             0.00615691
5 15.9    740.628 740.628    744.87           744.869             0.00572809

Country polygon and tile pairs

GADM 4.1 Colombia geodesic polygon area: 113.7241 Mha
Supp. Table 3: ['Colombia', 'Neotropics', '93.78', '11.19', '0.12'] 
Supp. Table 4: ['Colombia', 'Neotropics', '93.78', '13.70', '0.15', '']
pnv_pct_30m_tile_-70_-60_-5_5.tif <-> pnv_bin_30m_tile_14.tif
pnv_pct_30m_tile_-70_-60_5_15.tif <-> pnv_bin_30m_tile_10.tif
pnv_pct_30m_tile_-80_-70_-5_5.tif <-> pnv_bin_30m_tile_13.tif
pnv_pct_30m_tile_-80_-70_15_25.tif <-> pnv_bin_30m_tile_5.tif
pnv_pct_30m_tile_-80_-70_5_15.tif <-> pnv_bin_30m_tile_9.tif
pnv_pct_30m_tile_-90_-80_5_15.tif <-> pnv_bin_30m_tile_8.tif

Block jobs

Each tile is cut into bands of 256 rows; for each band the polygon is clipped to the band, and only the column span of the clipped polygon is read.

434 blocks, 1.56 G pixels read

Per-block computation

For every in-country pixel the worker records (pct value, bin value) and, per row, the pixel area. Output per block:

  • counts[row, pct * 4 + bin]: pixel counts, folded with the three row-area models into area histograms over the 256 × 4 (pct, bin) combinations. Every area statistic below is derived from these histograms.

  • HEALPix depth-8 sums of ellipsoidal area for several masks.

Run all blocks in parallel (fork start method; serial fallback where fork is unavailable, e.g. Windows). On 14 cores this takes a few minutes.

0/434 blocks
100/434 blocks
200/434 blocks
300/434 blocks
400/434 blocks
done

Area statistics

H[m] is the area (m²) per (pct, bin) combination under area model m.

                                  ellipsoid_wgs84  sphere_a_mollweide  nominal_900m2
country_pixels                           113.7241            114.4786       133.5579
pct_valid                                 18.7986             18.9222        22.1242
pct_gt0                                   18.7985             18.9221        22.1242
expected                                  10.5143             10.5835        12.3736
expected_lower_round                      10.4203             10.4889        12.2630
expected_upper_round                      10.6082             10.6780        12.4841
expected_upper_trunc                      10.7021             10.7725        12.5947
pct_nodata_bin0                           89.1137             89.7071       104.5571
expected_upper_round_incl_subpct          11.0538             11.1265        13.0069
expected_upper_trunc_incl_subpct          11.5933             11.6696        13.6402
pct_gt50                                  11.1840             11.2576        13.1618
pct_ge50                                  11.4639             11.5393        13.4911
bin_valid                                108.5022            109.2232       127.3736
bin_pnr                                   11.6418             11.7184        13.6986
bin_pnr_where_pct_valid                   11.0394             11.1120        12.9918
bin_pnr_where_pct_nodata                   0.6024              0.6064         0.7068
bin_valid_where_pct_valid                 18.7862             18.9097        22.1096
pct_valid_where_bin_nodata                 0.0124              0.0125         0.0146
pct_gt50_and_bin1                         10.9293             11.0011        12.8622
pct_le50_and_bin1                          0.1102              0.1109         0.1296
pct_gt50_and_bin0                          0.2506              0.2522         0.2946

GADM geodesic polygon area: 113.7241 Mha (country pixel sum, ellipsoid: 113.7241 Mha)

Comparison with the paper

iso3                                                     metric         area_model  value_mha  paper_value_mha     paper_source  diff_mha  diff_pct
 COL                                    pnr_continuous_expected    ellipsoid_wgs84  10.514300            11.19    Supp. Table 3   -0.6757     -6.04
 COL                                    pnr_continuous_expected sphere_a_mollweide  10.583500            11.19    Supp. Table 3   -0.6065     -5.42
 COL                                    pnr_continuous_expected      nominal_900m2  12.373600            11.19    Supp. Table 3    1.1836     10.58
 COL                   pnr_continuous_expected_lower_if_rounded    ellipsoid_wgs84  10.420300            11.19    Supp. Table 3   -0.7697     -6.88
 COL                   pnr_continuous_expected_lower_if_rounded sphere_a_mollweide  10.488900            11.19    Supp. Table 3   -0.7011     -6.27
 COL                   pnr_continuous_expected_lower_if_rounded      nominal_900m2  12.263000            11.19    Supp. Table 3    1.0730      9.59
 COL                   pnr_continuous_expected_upper_if_rounded    ellipsoid_wgs84  10.608200            11.19    Supp. Table 3   -0.5818     -5.20
 COL                   pnr_continuous_expected_upper_if_rounded sphere_a_mollweide  10.678000            11.19    Supp. Table 3   -0.5120     -4.58
 COL                   pnr_continuous_expected_upper_if_rounded      nominal_900m2  12.484100            11.19    Supp. Table 3    1.2941     11.57
 COL                 pnr_continuous_expected_upper_if_truncated    ellipsoid_wgs84  10.702100            11.19    Supp. Table 3   -0.4879     -4.36
 COL                 pnr_continuous_expected_upper_if_truncated sphere_a_mollweide  10.772500            11.19    Supp. Table 3   -0.4175     -3.73
 COL                 pnr_continuous_expected_upper_if_truncated      nominal_900m2  12.594700            11.19    Supp. Table 3    1.4047     12.55
 COL   pnr_continuous_expected_upper_if_rounded_incl_subpercent    ellipsoid_wgs84  11.053800            11.19    Supp. Table 3   -0.1362     -1.22
 COL   pnr_continuous_expected_upper_if_rounded_incl_subpercent sphere_a_mollweide  11.126500            11.19    Supp. Table 3   -0.0635     -0.57
 COL   pnr_continuous_expected_upper_if_rounded_incl_subpercent      nominal_900m2  13.006900            11.19    Supp. Table 3    1.8169     16.24
 COL pnr_continuous_expected_upper_if_truncated_incl_subpercent    ellipsoid_wgs84  11.593300            11.19    Supp. Table 3    0.4033      3.60
 COL pnr_continuous_expected_upper_if_truncated_incl_subpercent sphere_a_mollweide  11.669600            11.19    Supp. Table 3    0.4796      4.29
 COL pnr_continuous_expected_upper_if_truncated_incl_subpercent      nominal_900m2  13.640200            11.19    Supp. Table 3    2.4502     21.90
 COL                                         pnr_binary_product    ellipsoid_wgs84  11.641800            13.70    Supp. Table 4   -2.0582    -15.02
 COL                                         pnr_binary_product sphere_a_mollweide  11.718400            13.70    Supp. Table 4   -1.9816    -14.46
 COL                                         pnr_binary_product      nominal_900m2  13.698600            13.70    Supp. Table 4   -0.0014     -0.01
 COL                         pnr_binary_product_where_pct_valid    ellipsoid_wgs84  11.039400            13.70    Supp. Table 4   -2.6606    -19.42
 COL                         pnr_binary_product_where_pct_valid sphere_a_mollweide  11.112000            13.70    Supp. Table 4   -2.5880    -18.89
 COL                         pnr_binary_product_where_pct_valid      nominal_900m2  12.991800            13.70    Supp. Table 4   -0.7082     -5.17
 COL                            pnr_continuous_thresholded_gt50    ellipsoid_wgs84  11.184000            13.70    Supp. Table 4   -2.5160    -18.36
 COL                            pnr_continuous_thresholded_gt50 sphere_a_mollweide  11.257600            13.70    Supp. Table 4   -2.4424    -17.83
 COL                            pnr_continuous_thresholded_gt50      nominal_900m2  13.161800            13.70    Supp. Table 4   -0.5382     -3.93
 COL                            pnr_continuous_thresholded_ge50    ellipsoid_wgs84  11.463900            13.70    Supp. Table 4   -2.2361    -16.32
 COL                            pnr_continuous_thresholded_ge50 sphere_a_mollweide  11.539300            13.70    Supp. Table 4   -2.1607    -15.77
 COL                            pnr_continuous_thresholded_ge50      nominal_900m2  13.491100            13.70    Supp. Table 4   -0.2089     -1.52
 COL                              available_candidate_pct_valid    ellipsoid_wgs84  18.798600            93.78 Supp. Tables 3-4  -74.9814    -79.95
 COL                              available_candidate_pct_valid sphere_a_mollweide  18.922200            93.78 Supp. Tables 3-4  -74.8578    -79.82
 COL                              available_candidate_pct_valid      nominal_900m2  22.124200            93.78 Supp. Tables 3-4  -71.6558    -76.41
 COL                              available_candidate_bin_valid    ellipsoid_wgs84 108.502200            93.78 Supp. Tables 3-4   14.7222     15.70
 COL                              available_candidate_bin_valid sphere_a_mollweide 109.223200            93.78 Supp. Tables 3-4   15.4432     16.47
 COL                              available_candidate_bin_valid      nominal_900m2 127.373600            93.78 Supp. Tables 3-4   33.5936     35.82
 COL                                available_candidate_pct_gt0    ellipsoid_wgs84  18.798500            93.78 Supp. Tables 3-4  -74.9815    -79.95
 COL                                available_candidate_pct_gt0 sphere_a_mollweide  18.922100            93.78 Supp. Tables 3-4  -74.8579    -79.82
 COL                                available_candidate_pct_gt0      nominal_900m2  22.124200            93.78 Supp. Tables 3-4  -71.6558    -76.41
 COL                         country_area_pixel_centres_in_gadm    ellipsoid_wgs84 113.724100              NaN             None       NaN       NaN
 COL                         country_area_pixel_centres_in_gadm sphere_a_mollweide 114.478600              NaN             None       NaN       NaN
 COL                         country_area_pixel_centres_in_gadm      nominal_900m2 133.557900              NaN             None       NaN       NaN
 COL                                 diag_bin1_where_pct_nodata    ellipsoid_wgs84   0.602400              NaN             None       NaN       NaN
 COL                                 diag_bin1_where_pct_nodata sphere_a_mollweide   0.606400              NaN             None       NaN       NaN
 COL                                 diag_bin1_where_pct_nodata      nominal_900m2   0.706800              NaN             None       NaN       NaN
 COL                                   diag_bin1_where_pct_le50    ellipsoid_wgs84   0.110200              NaN             None       NaN       NaN
 COL                                   diag_bin1_where_pct_le50 sphere_a_mollweide   0.110900              NaN             None       NaN       NaN
 COL                                   diag_bin1_where_pct_le50      nominal_900m2   0.129600              NaN             None       NaN       NaN
 COL                                   diag_bin0_where_pct_gt50    ellipsoid_wgs84   0.250600              NaN             None       NaN       NaN
 COL                                   diag_bin0_where_pct_gt50 sphere_a_mollweide   0.252200              NaN             None       NaN       NaN
 COL                                   diag_bin0_where_pct_gt50      nominal_900m2   0.294600              NaN             None       NaN       NaN
 COL                            diag_pct_valid_where_bin_nodata    ellipsoid_wgs84   0.012400              NaN             None       NaN       NaN
 COL                            diag_pct_valid_where_bin_nodata sphere_a_mollweide   0.012500              NaN             None       NaN       NaN
 COL                            diag_pct_valid_where_bin_nodata      nominal_900m2   0.014600              NaN             None       NaN       NaN
 COL                                 diag_pct_nodata_where_bin0    ellipsoid_wgs84  89.113700              NaN             None       NaN       NaN
 COL                                 diag_pct_nodata_where_bin0 sphere_a_mollweide  89.707100              NaN             None       NaN       NaN
 COL                                 diag_pct_nodata_where_bin0      nominal_900m2 104.557100              NaN             None       NaN       NaN
 COL                         country_area_gadm_geodesic_polygon    ellipsoid_wgs84 113.724100              NaN             None       NaN       NaN
 COL               proportion_continuous_of_available_pct_valid    ellipsoid_wgs84   0.559300             0.12    Supp. Table 3    0.4393    366.10
 COL                   proportion_binary_of_available_bin_valid    ellipsoid_wgs84   0.107300             0.15    Supp. Table 4   -0.0427    -28.47
 COL                    sphere_a_over_ellipsoid_minus1_expected              ratio   0.006577              NaN             None       NaN       NaN
 COL                     sphere_a_over_ellipsoid_minus1_bin_pnr              ratio   0.006581              NaN             None       NaN       NaN
 COL                   sphere_a_over_ellipsoid_minus1_pct_valid              ratio   0.006575              NaN             None       NaN       NaN
 COL              sphere_a_over_ellipsoid_minus1_country_pixels              ratio   0.006634              NaN             None       NaN       NaN
area_model                     ellipsoid_wgs84  nominal_900m2  sphere_a_mollweide  paper
metric                                                                                  
available_candidate_bin_valid         108.5022       127.3736            109.2232  93.78
pnr_binary_product                     11.6418        13.6986             11.7184  13.70
pnr_continuous_expected                10.5143        12.3736             10.5835  11.19

Reading the table (written for the Colombia run; see the CSV for other countries)

  • Binary product. Counting each 0.00025° pixel as a nominal 0.09 ha (nominal_900m2) reproduces Supp. Table 4 almost exactly; the ellipsoidal and Mollweide (sphere-a) areas of the same pixels are ~15 % lower. This points to the binary country sums having been computed as pixel count × 0.09 ha on the lon/lat grid rather than in an equal-area projection, contrary to the Methods. It is an inference from one country, not a demonstrated fact; a second country (e.g. Brazil, 55.12 Mha in Supp. Table 4) would test it.

  • Continuous product. No area model reproduces 11.19 Mha from the published integer-percent tiles: the nominal area is too high, and the ellipsoidal / Mollweide areas fall short unless a sizeable sub-1 % probability mass (stored as NoData) is assumed and values were truncated rather than rounded.

  • The two published products are not one thresholded prediction. Their valid domains differ by ~90 Mha and they disagree near the 50 % threshold and where the continuous product is NoData (diag_* rows).

  • “Available for restoration” (93.78 Mha) is not reproduced by any mask definable from the published rasters.

  • Sphere vs ellipsoid. The Mollweide (sphere radius a) areas exceed the exact WGS84 areas by ~0.66 % at Colombia’s latitudes (sphere_a_over_ellipsoid_*).

Per-percentage area histogram (ellipsoidal) of the continuous product inside Colombia, split by the binary product’s value.

 pct_value  area_mha_total  area_mha_bin0  area_mha_bin1  area_mha_bin_nodata
         0        0.000037       0.000037            0.0         0.000000e+00
         1        0.001475       0.001474            0.0         6.797626e-07
         2        0.005554       0.005546            0.0         7.936736e-06
         3        0.010934       0.010921            0.0         1.307933e-05
         4        0.021005       0.020982            0.0         2.345391e-05 
...
  pct_value  area_mha_total  area_mha_bin0  area_mha_bin1  area_mha_bin_nodata
        99        0.050999       0.000048       0.050947         3.942023e-06
       100        0.018098       0.000001       0.018096         7.580517e-08
       255       94.925588      89.113663       0.602376         5.209549e+00

HEALPix depth-8 aggregation of the authors’ map (NetCDF)

Ellipsoidal areas (m²) of in-country 30 m pixels summed per HEALPix NESTED cell (WGS84 ellipsoid, authalic latitude). HEALPix cells are equal-area, so the cell area is the ellipsoid area / (12 × 4^depth).

<xarray.Dataset> Size: 141kB
Dimensions:         (cells: 1952)
Coordinates:
    cell_ids        (cells) uint64 16kB 478916 478917 478918 ... 512794 512811
    longitude       (cells) float64 16kB -69.96 -69.79 -70.14 ... -78.57 -79.8
    latitude        (cells) float64 16kB -4.351 -4.2 -4.2 ... 14.23 15.78 15.94
Dimensions without coordinates: cells
Data variables:
    area_country    (cells) float64 16kB 5.346e+06 1.352e+07 ... 1.193e+05
    area_pct_valid  (cells) float64 16kB 1.715e+06 7.121e+06 ... 0.0 0.0
    expected_pnr    (cells) float64 16kB 1.219e+06 5.445e+06 ... 0.0 0.0
    area_pct_gt50   (cells) float64 16kB 1.627e+06 6.738e+06 ... 0.0 0.0
    area_bin_valid  (cells) float64 16kB 5.346e+06 1.352e+07 ... 0.0 0.0
    area_bin_pnr    (cells) float64 16kB 5.294e+05 3.097e+06 ... 0.0 0.0
Attributes:
    title:                 Williams et al. (2024) natural-regeneration potent...
    source:                Zenodo 10.5281/zenodo.7428804 (pnv_pct_30m, pnv_bi...
    method:                30 m pixel centres in GADM polygon assigned to HEA...
    healpix_cell_area_m2:  648581977.4933989
    variables:             area_country: all in-country pixels; area_pct_vali...
check: HEALPix total expected = 10.5143212229235 Mha
<Figure size 1100x600 with 4 Axes>
References
  1. Williams, B., Beyer, H., Fagan, M., Chazdon, R., Schmoeller, M., Sprenkle-Hyppolite, S., Griscom, B., Watson, J., Tedesco, A., Gonzalez-Roglich, M., Daldegan, G., Bodin, B., Celentano, D., Wilson, S. J., Rhodes, J., Alexandre, N., Kim, D.-H., Bastos, D., & Crouzeilles, R. (2023). The potential for natural forest regeneration in tropical regions. Zenodo. 10.5281/ZENODO.7428804