Research notebook · Thailand · 25 September 2026

A forest worth caring for. Evidence worth trusting.

A practical case for using AI, satellites and field measurements to make forest carbon understandable—and every estimate open to scrutiny.

A person can spend years protecting a forest and still struggle to prove what that work has achieved. The trees are there. The effort is real. The evidence is scattered across survey sheets, maps, government tables and satellite archives. Turning those pieces into a defensible carbon estimate takes work that a beautiful dashboard cannot wish away.

That is the reason for this project. Make the evidence easier to assemble. Make the calculation easier to question. Give the person in the field and the person reviewing the result a shared view of what is known, what was assumed, and what still needs measuring. Technology earns its place when it makes that conversation more honest.

This independent pilot grew from an enquiry about AI-assisted forest-carbon assessment from Thailand's greenhouse-gas management community. It is a working research instrument, with public code and traceable calculations. No TGO endorsement, approved AI model or credit issuance is claimed.

01 · Start with the question that matters

“How much carbon is in this forest?” and “How many credits can this project receive?” require different evidence. A forest can contain a great deal of carbon without that entire stock being available for a new credit claim.

Quantity Plain meaning What this workbench does
Carbon stock Carbon held in the included tree pools at a date, expressed here as tCO₂e Converts supplied biomass or accepts a compatible total tree-stock estimate
Monitoring-period change The difference between comparable dates, after applicable deductions Calculates a signed estimate from the supplied inputs
Issued credits Units approved and recorded through the relevant programme No registry connection; never inferred from the estimate
Follow the evidence
  1. Define an eligible project and its boundary
  2. Measure comparable tree stocks at two dates
  3. Apply the selected methodology and required deductions
  4. Independent review and programme approval
  5. Registry issuance is a separate external step

The order matters. Drawing a polygon establishes a calculation area; it does not establish land rights. Finding trees establishes vegetation; it does not establish additionality, meaning the benefit required beyond the applicable baseline. A registration count is administrative evidence, not proof that the same carbon has never been claimed elsewhere.

02 · Follow one tonne through the calculation

Trees are measured before they become numbers on a carbon ledger. Diameter and height feed an allometric equation: a relationship developed from measured trees to estimate dry biomass. “Dry” matters because water adds weight without adding the carbon being estimated. The equation must fit the forest and tree group.

The current importer supports the TGO appendix equation for mixed deciduous and dry dipterocarp trees, with DBH at least 4.5 cm. It estimates aboveground biomass from measured trees, then expands the plot total by surveyed area under a single representative-stratum assumption. It does not prove that the sampling design is representative. Empty plots cannot be represented by the current CSV format; do not quietly drop them. See the user guide for coefficients, units and exclusions.

Follow the evidence
  1. Diameter (cm) + height (m) in measured plots
  2. Suitable tree equation → dry aboveground biomass
  3. Expand by surveyed area within a representative stratum
  4. Include roots using the applicable root:shoot ratio
  5. Multiply by carbon fraction, then 44/12 → tCO₂e

For the general-tree factors in TGO tree tool v2, roots are estimated at 0.27 times aboveground biomass and the carbon fraction is 0.47. The factor 44/12 converts carbon mass to the corresponding CO₂ mass. Other tree groups use other factors. If an input already includes roots or is already in tCO₂e, applying those conversions again inflates the answer.

A worked example you can reproduce

Assume the same project's dry aboveground biomass rises from 1,000 to 1,100 tonnes. Keep factors and included pools unchanged. This is synthetic teaching data, not a measured Thai forest.

Step Calculation Result
Aboveground increase 1,100 − 1,000 100 t dry biomass
Include estimated roots 100 × 1.27 127 t total biomass
Convert to carbon 127 × 0.47 59.69 tC
Convert to CO₂ 59.69 × 44/12 218.8633 tCO₂

This is the stock increase before applicable deductions. For an exactly five-year duration, its average is 43.7727 tCO₂ per year. The app instead divides by elapsed days / 365.25; its sample dates therefore produce a slightly different annual average. Neither average creates five additional claims on top of the period total.

The selected accounting reference is Standard T-VER-S-METH-13-01 v2: current tree stock minus baseline or last credited stock, minus prescribed project emissions and leakage. This method does not consider leakage, so that term is zero here. Its fire conditions, eligibility and small-project limit must be checked in the full document. Other activities and programme tiers can require different accounting. A loss stays negative; the software must not hide it behind a zero.

03 · What the satellite sees—and what it needs from the field

The JAXA vegetation page is a useful starting point. It provides routes to vegetation indices, leaf-area information and forest/non-forest products. These observations describe vegetation. They do not measure issued credits.

NDVI compares red and near-infrared reflectance. It can help describe greenness, but a greener pixel is not a universal quantity of stored carbon. Forest type, season, canopy structure and observation conditions affect interpretation. A model connecting imagery to biomass needs suitable measurements and validation.

Source Contribution to a pilot Limit that travels with the data
JAXA PALSAR / PALSAR-2 Radar predictors and forest screening; approximately 25 m mosaics Preserve observation dates, masks and processing versions; check download registration and terms
Sentinel-2 Optical predictors and cloud-screened change evidence Compare usable observations with compatible seasons and processing
NASA GEDI L4A v3 Footprint estimates of aboveground biomass density, prediction errors and quality information Samples are not a continuous parcel census or error-free field truth
Measured field plots Local evidence for fitting and independently testing a model Record sampling design, coordinates, dates, species/group and measurement quality

The project workbench does not use these products: its numbers come only from the user's own measurements. The carbon map (section 06) does use published satellite products — ESA CCI Biomass and JAXA's forest map among them. It runs no model of its own: it re-grids, masks and converts those products, and its landscape figures never feed a project calculation. The street and imagery basemaps are navigation aids, not evidence.

04 · Give AI a job it can be tested on

The useful first AI task is specific: predict biomass for a defined forest type from dated observations, then compare those predictions with independent measurements. A language model can help explain a method or flag a missing field. It should not fill a missing biomass value with a plausible sentence.

Follow the evidence
  1. Match plot locations, survey dates and satellite observations
  2. Separate training plots from spatially independent test plots
  3. Compare a simple baseline with a candidate biomass model
  4. Test bias, prediction error and uncertainty on unseen plots
  5. Document valid scope and obtain required method approval

A tempting shortcut is to split neighboring pixels randomly between training and testing. The test can then reward familiarity with the same landscape. For this pilot, reserve spatially separated plots and inspect error by forest type and biomass range. Compare a simple regression with a candidate such as Random Forest before accepting more complexity. This is a proposed validation design, not a completed experiment.

Uncertainty must follow the calculation. A difference between two uncertain stock maps is itself uncertain. Shared model errors, plot sampling and spatial correlation affect how much confidence to place in the change. Reporting more decimal places does not resolve those errors. The current workbench explicitly exports uncertainty as unavailable; a validated interval remains a prerequisite for a defensible project assessment.

05 · Open data: open the file before believing the label

The research search for “ป่าไม้” in data.go.th on 25 September 2026 returned 570 unique dataset records and 2,111 resource records. These are catalogue counts. They include documents, duplicate-looking resources, file components and links; they are not 570 ready-to-use biomass datasets. Nine selected resource files were downloaded and inspected. The app currently ships 11 normalized province-year observations.

Source inspected What was actually found Decision
Saraburi forest area Seven annual observations, 2018–2024; 2024: 532,177.56 rai Historical province context
Kanchanaburi forest area Four years, 2021–2024; 2024: 7,478,170.33 rai Historical province context; checked unit agreement
RFD forest cover 2019 ZIP contained metadata only; separate geometry headers were probed Full geometry not ingested; CRS is UTM 47N, requiring reprojection
DNP conservation-area carbon Table labelled tCO₂eq without an explicit annual denominator Do not label it yearly credits
Reserved-forest table Inconsistent area units in an inspected row Quarantined; no guessed correction

The full research record, download manifest and normalized province data make these decisions inspectable. A catalogue's “modified” date is not automatically a measurement date. Conflicting or restrictive licences require clarification before reuse.

The RFD dashboard: a useful lead with a visible discrepancy

The Royal Forest Department dashboard, inspected on 25 September 2026, displayed 83,290 plantation registrants, 83,681 plots, 1,447,111 rai and 139,013,341 trees. Its regional registration breakdown summed to 83,217 registrants, a difference of 73. No explicit update date explaining this difference was found during inspection. These are separate observed views; neither has been silently corrected.

The northern drill-down returned 9,480 registrants in Nan and 9,538 in Uttaradit. These counts can inform a discussion about where to seek pilot partners. They cannot establish current living biomass. Public endpoints returned HTML and chart configuration without login; no documented API contract was established. These observations are a dated research snapshot, not a live integration or calculator input.

06 · Absorption and emission from space

The workbench answers a project question: how much has this parcel's measured carbon changed? The carbon map answers a landscape question. How much carbon do a province's forests hold? How much do they take up and release each year? What else is emitted in the same place? It uses published satellite-derived products and runs no model of its own: it re-grids, masks and converts those products, as described below. Every figure in it is a screening estimate, never a credit, and never an input to the project workbench.

Follow the evidence
  1. 100 m satellite biomass (ESA CCI 2020) and the JAXA forest map (FNF 2020)
  2. Each pixel counted once: one province, one 2.8 km grid cell
  3. Forest carbon stock, with a 95% range
  4. Beside it, never added: GFW forest flux, GFED fire, ODIAC fossil CO₂
  5. Cross-checked against Climate TRACE and Thailand's own inventory (BTR1)

Four quantities, four datasets

Quantity What the map shows Dataset Period Resolution
Carbon stock Carbon held in forest trees, tCO₂e ESA CCI Biomass v7.0 aboveground biomass, masked with JAXA PALSAR-2 FNF v2.1.0 2020 100 m
Forest flux Gross removals, gross emissions and their net, tCO₂e per year GFW forest carbon flux v1.4.3 (Harris et al. 2021; Gibbs et al. 2025) Average of 2001–2025 30 m model, summarised by province
Fire CO₂ from all landscape fire, with the share by land type and month GFED5.1 Mean of 2013–2022 0.25° (about 28 km)
Fossil CO₂ Energy, industry and transport emissions ODIAC2025 2024 1 km

Cross-checks: Climate TRACE API v7 forest subsectors by province for 2024, and Thailand's First Biennial Transparency Report (BTR1) for the nation in 2022. Province boundaries are the Royal Thai Survey Department's, published by OCHA/HDX (COD-AB v01).

Where JAXA fits

JAXA's vegetation page offers NDVI, leaf area and a forest/non-forest map. None of these is a carbon stock. The carbon map uses JAXA's 2020 forest/non-forest map in three ways. It is the visible "JAXA forest map (FNF 2020)" layer. It decides which part of each biomass pixel counts as forest. Its land classes also weight how coarse fire and fossil data are spread over land. Both FNF forest classes count: canopy of 90% or more, and canopy between 10% and 90%.

FNF forest is not the Royal Forest Department's forest. FNF maps 44.7% of Thailand as forest in 2020. The Royal Forest Department reports 31.64% (102,353,484.76 rai) for the same year. A radar forest mask sees tree canopy. It does not know whether the trees are natural forest, plantation or a tree crop. Read "forest" on this map as "tree canopy seen by radar", not as a legal or administrative forest.

How a number is computed

One pixel, counted once. Every 100 m biomass pixel is assigned by its centre to at most one province and exactly one 2.8 km grid cell. Provinces, grid cells and the national total are therefore sums of the same pixels. Automated tests check this for every quantity. Thailand's land area computed pixel by pixel is 515,415 km². That matches the boundary file's own attribute (515,416 km²) and is within 0.45% of the official 513,120 km².

From biomass to CO₂e. Stock (tCO₂e) = aboveground biomass (t) × (1 + 0.27) × 0.47 × 44/12. That is 2.1886 tCO₂e per tonne of aboveground biomass. These are the general-tree values of TGO's tree tool, the same ones the workbench uses. IPCC 2019 root-to-shoot ratios for Asian tropical natural forests range from about 0.21 to 0.44 by forest type and biomass class (2019 Refinement, Vol. 4, Ch. 4, Table 4.4). Using that range instead would move total biomass by about −5% to +13%.

Forest share of a pixel. ESA CCI biomass is a mean over the whole pixel, forest or not. Each pixel's biomass is multiplied by the fraction of the pixel that FNF classes as forest. This assumes biomass is spread evenly within the pixel. It also keeps forest plus non-forest equal to the total, so nothing is created or lost.

Coarse data. Fire (0.25°) and fossil CO₂ (1 km) are spread over the 100 m land pixels in each coarse cell in proportion to land area. A coarse cell with no land in the JAXA map, such as a coastal sliver, falls back to plain area, so no emission is lost in the allocation step. Emissions allocated outside Thai province boundaries, such as offshore or across a border, are excluded by design. The Thai fossil total from this allocation differs by 0.3% from a crude alternative that assigns whole 1 km cells by their centre.

Drawn boxes. A box is summed from 2.8 km cells, each weighted by the share of its area on the sphere that falls inside the box. Values are assumed to be spread evenly within a cell. The sum counts Thai land only; parts of a box outside Thailand add nothing. A project boundary imported in the workbench is summed with 16 sample points per cell. In practice box figures therefore have about 2.8 km resolution, not 100 m. A figure is greyed out when the box's shorter side is narrower than the dataset's cell: 2.8 km for stock, 28 km for fire, 1 km for fossil CO₂.

Uncertainty, stated as a range rather than a decimal

ESA CCI publishes a standard deviation for every pixel. How those errors add up over a province depends on something the map does not know: how much neighbouring pixels err together. The carbon map therefore gives two 95% ranges:

  • Independent errors, where errors cancel as pixels are added. For Thailand this gives ±0.03%.
  • Fully correlated errors, where every pixel errs in the same direction. For Thailand this gives ±110%, and the lower end stops at zero.

Fully correlated error is the hard ceiling; the truth is expected between the two ranges. A study of biomass estimates for New York State parcels found that spatially correlated residual error dominated (Johnson et al.), which suggests the narrow range is too optimistic for large areas. Neither range includes systematic map bias. Global biomass maps tend to overestimate low biomass and underestimate high biomass (Araza et al. 2022). The CCI Biomass fact sheet (written for v5; the map uses v7.0) advises checking regional totals against a national forest inventory or field plots, and says estimates for individual full-resolution pixels should not be used on their own (CCI Biomass v5 fact sheet). GFW's province summaries carry only partial variance components, not a complete flux uncertainty, and the map does not use them. Its global estimate of removals for 2001–2023 is −14.5 ± 7.7 GtCO₂ per year (Gibbs et al. 2025). GFED and ODIAC publish no pixel uncertainty. The ODIAC spatial pattern is itself a model: national totals spread by night lights and point sources.

Why these figures are never added together

  • GFW forest emissions already include forest loss caused by fire. GFED fire in forest classes, especially its "deforestation" class, may describe some of the same events. They are marked and never added.
  • GFED counts all landscape fire. Its land types come from its own land-cover map. In Thailand 79% of fire carbon falls in its savanna, shrub and grass classes, and only 9% in cropland; in Chiang Mai, where JAXA maps 80% of the land as forest, the savanna group is 90%. Much of this is deciduous forest by Thai definitions, and Thailand's inventory reports wildfire carbon losses on forest land. IPCC practice treats CO₂ from cropland and grassland burning as balanced by regrowth; that assumption does not cover all of this fire. Fire CO₂ is shown as gross emission from burning, not as a net loss of stock.
  • ODIAC excludes land use and biomass burning. Its scope complements the others, but its year and method differ. It sits beside the forest figures and is not netted against them.
  • The only net shown is GFW's own: emissions minus removals within one model. A negative value means the forest is a net sink.
  • Two stock years are never subtracted. ESA warns that differences between CCI years "may be affected by substantial biases" (fact sheet above). The Global Forest Observations Initiative rates change estimated from two biomass maps as research-level (GFOI 2025).

Aerosol is not carbon

The atmosphere layers answer a different question from the ledger:

  • Aerosol optical depth measures particles: dust and smoke. It shows the burning season clearly and contains no CO₂.
  • Carbon monoxide indicates combustion, but it is not CO₂.
  • Column CO₂ (XCO₂) from OCO-2 is a concentration along a narrow orbit track, not an emission.

Directly, plume by plume, satellites can turn XCO₂ into an emission only for large, isolated sources. A study of power plants seen by OCO-2 and OCO-3 kept 106 usable cases out of about 23,000 candidate tracks (Atmospheric Chemistry and Physics, 2023). Atmospheric inversions using OCO-2 estimate coarse national and regional net fluxes (Byrne et al. 2023), not provincial totals. For this reason the atmosphere layers (NASA GIBS) are pictures with labels and never numbers.

Two national accounts, side by side

Account Removals Emissions Net Scope
GFW, average 2001–2025 92.9 Mt/yr 71.7 Mt CO₂e/yr −21.2 Mt CO₂e/yr Satellite-mapped forest with >30% tree cover in 2000, or later gain; stand-replacing loss
BTR1 2022, forest land remaining forest 49.0 Mt 19.7 Mt −29.3 Mt Managed land by national definitions
BTR1 2022, land converted to cropland — 12.5 Mt +12.5 Mt Conversion to cropland
BTR1 2022, whole LULUCF sector 156.8 Mt 48.6 Mt −107.9 Mt Includes cropland remaining cropland, −91.5 Mt

Sources: GFW row, sum of the 77 province summaries divided by 25 (equal to GFW's own country table); GFW emissions include methane and nitrous oxide. BTR1 rows, Table 2-184, page 2-241, million tonnes; removals and emissions are CO₂, and the sector net also includes 0.27 Mt of methane and nitrous oxide from biomass burning. Most of Thailand's reported land sink sits in cropland remaining cropland, not forest. A satellite forest model and a national inventory also define "forest" and "anthropogenic" differently. Global bookkeeping models and national inventories differ by about 6.7 GtCO₂ per year for similar definitional reasons (Grassi et al. 2023). The carbon map shows both and chooses neither.

Checks performed

Run on 26 September 2026:

  • Conservation. Provinces, grid cells and a box covering Thailand all reproduce the national total for every quantity. Split boxes add up to the whole box.
  • Boundary crosswalk. All 77 COD-AB province names match Climate TRACE's GADM names one to one. GFW rows are joined by the same GADM numbers, and GFW's province areas agree with COD-AB within 6.7%, which confirms the numbering.
  • Fossil CO₂. ODIAC's 2024 total for Thailand is 290.0 Mt. BTR1 reports 271.1 Mt of CO₂ excluding land use for 2022 (Table 2-3), of which energy is 241.3 Mt and industrial processes 28.6 Mt. The scopes differ (ODIAC covers fossil combustion, cement and flaring), the years differ, and ODIAC projects recent years from energy statistics.
  • Fire season. 83% of fire carbon falls in February–April, and March alone is 44%. This matches the northern burning season.
  • Chiang Mai. GFED fire CO₂ is 12.1 Mt per year (2013–2022, all land types). Climate TRACE forest-land fires are 6.3 MtCO₂e (2024, forest only). The scopes differ; the order of magnitude agrees.
  • Provenance. Every source file's URL, size, SHA-256 and retrieval date is in the ledger manifest. The processing code is scripts/ingest/build_ledger.py.

What this map cannot tell you

  • Credits, eligibility or additionality. A satellite removal figure has no baseline, no leakage deduction, no permanence buffer and no independent verification. See the ICVCM Core Carbon Principles.
  • An approved method. T-VER remote-sensing models need TGO approval. These products have none for project use.
  • Current conditions. Stock is for 2020, forest flux is a 2001–2025 average, fire is 2013–2022 and fossil CO₂ is 2024.
  • Flux inside a drawn box. GFW's 30 m grids require an API key and are not yet ingested. The map says so instead of showing zero.

07 · The first pilot should earn the next one

Start with one project whose boundary, rights, methodology and field records can be checked. Agree on the decision first: screening a candidate, estimating stock, or preparing monitoring evidence. Each requires a different level of proof.

Follow the evidence
  1. One project: boundary, rights, applicable methodology
  2. Baseline and repeat field evidence with dates and units
  3. Reproduce the calculation and challenge the assumptions
  4. Independent validation and uncertainty assessment
  5. Review with the relevant programme before expanding

A useful pilot pack includes a versioned boundary, the project's registration details where applicable, sampling design, plot measurements at comparable dates, disturbance records, and permission to use the data. If an approved remote-sensing provider is involved, obtain its output definitions, approved scope and uncertainty documentation. An approval held by another platform does not transfer to this application.

The pilot succeeds when another qualified person can reproduce the result, explain its limits and identify the measurements that would change the conclusion. That is a harder target than making the map look convincing. It is also a target worth building for.

08 · The person behind the work

Dr Non Arkaraprasertkul speaking with a microphone

Dr Non Arkaraprasertkul

Architect, anthropologist and civic-systems builder. His public profile describes architectural training at MIT, anthropology at Harvard, and work in smart-city promotion at Thailand's Digital Economy Promotion Agency (depa).

The connection to forest carbon is a design question: how can complicated evidence become usable by people making decisions? This project applies that question to boundaries, measurements and the public record behind each estimate.

Personal website · Public projects · LinkedIn

Portrait source: RMIT Vietnam's profile. Biography checked against that page and the personal website on 25 September 2026. Institutional affiliations provide background; this independent pilot does not claim institutional endorsement. No personal quotation or fieldwork story has been invented for this page.

09 · Keep the evidence within reach

The Thai guide and English guide cover actual use, formulas, file formats and deployment. The source catalogue records the supplied references. Code and tests are public, together with the original research audit. Official documents linked above govern their own methods; this page is an explanation, not a replacement.

Open the workbench, try the clearly labelled synthetic example, and follow a number back to its inputs. Then ask what evidence would be needed to replace that example with a real forest. That is where this work becomes useful.

Global data sources, cadence and fallback rules / แหล่งข้อมูลโลกและรอบการอัปเดต.

Standards, scope & accountability

Research and assessment pilot · not certified credits. The features below support selected practices relevant to ISO standards. This is a design mapping, not a clause-by-clause conformity assessment, ISO certification or assurance opinion.

ISO 14064-2:2019 · Project accounting
Project boundaries, baseline and monitoring dates, named factors and reproducible exports support transparent quantification. Complete project eligibility, baseline justification and monitoring plans remain project-specific work.
ISO 14064-3:2019 · Validation and verification
Sources, versions, assumptions and calculation records support independent review. No independent validation or verification has been performed by this software.
ISO 14065:2020 · Verification bodies
Relevant when appointing an environmental-information validation or verification body. It applies to those bodies; this application is not an accredited verifier.

T-VER programme rules and the applicable approved methodology govern eligibility and issuance. Satellite stock is not a monitoring-period credit. Aerosol imagery is context, not a carbon-credit measurement.

User project files are processed in browser memory; exports are your record. Map providers receive tile requests. The server retrieves public global feeds. Source licences and dates apply. Organisation marks identify the project context; they do not establish endorsement, ISO certification or TGO approval. Standards references checked 26 September 2026.