==============================================================================
 SIGRID 1 km SAMPLING GRID - THAILAND (TH/THA)
 Every plot tagged with its province (ADM1NM) and district (ADM2NM)
==============================================================================
 Generated 2026-07-10 10:10 UTC by build_all_countries.py v2.0
==============================================================================

==============================================================================
 1. WHAT THIS IS
==============================================================================

SIGRID is a global systematic sampling grid of points spaced 1 km apart.
This archive contains every SIGRID plot that falls inside Thailand, and
for each plot the province and district it belongs to, taken from the
United Nations 2023 administrative boundaries.

The same plots are also provided at coarser sampling intensities (every
2 km, 3 km, ... up to 100 km), so you can pick the plot spacing that suits
your survey budget and precision target. Each coarser grid is a strict
subset of the 1x1 km grid: a plot in the 10x10 km file is also in the
1x1 km file, with the same CE_ID. This means you can start a survey at a
coarse intensity and densify later without moving or renumbering plots.

==============================================================================
 2. AT A GLANCE
==============================================================================

  Country                    : Thailand (TH/THA)
  Total plots (1x1 km)       : 515,121
  Land area (equal-area)     : 518,397 km2
  Plots per km2 (QA ratio)   : 0.9937   [ok]
  Provinces (ADM1NM)         : 77
  Districts (ADM2NM)         : 814
  Sampling intensities       : 17 (1x1 km to 100x100 km)
  Bounding box (lon)         : 97.3445 to 105.6340
  Bounding box (lat)         : 5.6206 to 20.4620
  Coordinate system          : WGS 84 geographic (EPSG:4326)
  Boundary source            : UN 2023 ADM2 (EarthMap public store)
  Plot grid source           : SIGRID 1000 m, Open Foris

==============================================================================
 3. FILES IN THIS ARCHIVE
==============================================================================

  Plots is the number of sample points at that intensity. Each file is a
  plain UTF-8 CSV with a header row.

  File                                    Spacing        Plots       Size
  ------------------------------------- --------- ------------ ----------
  Thailand_1x1km.csv *                       1 km      515,121    76.2 MB
  Thailand_2x2km.csv *                       2 km      128,774     6.7 MB
  Thailand_3x3km.csv *                       3 km       57,220     3.0 MB
  Thailand_4x4km.csv *                       4 km       32,182     1.7 MB
  Thailand_5x5km.csv *                       5 km       20,598     1.1 MB
  Thailand_6x6km.csv *                       6 km       14,304   762.7 KB
  Thailand_8x8km.csv *                       8 km        8,048   429.0 KB
  Thailand_9x9km.csv *                       9 km        6,355   338.6 KB
  Thailand_10x10km.csv *                    10 km        5,161   275.5 KB
  Thailand_12x12km.csv *                    12 km        3,573   190.5 KB
  Thailand_15x15km.csv *                    15 km        2,294   122.5 KB
  Thailand_16x16km.csv *                    16 km        2,016   107.6 KB
  Thailand_20x20km.csv                      20 km        1,294    69.0 KB
  Thailand_25x25km.csv                      25 km          832    44.6 KB
  Thailand_30x30km.csv                      30 km          576    30.8 KB
  Thailand_50x50km.csv                      50 km          210    11.2 KB
  Thailand_100x100km.csv                   100 km           54     2.9 KB
  Thailand_plot_counts_by_district.csv  per district            -    51.6 KB
  Thailand_README.txt                           -            -          -

  Plot counts fall off roughly as 1/N^2: the 2x2 km grid holds about a
  quarter of the 1x1 km plots, the 10x10 km grid about one hundredth.

  (*) Holds more than 2,000 plots. Google Earth struggles beyond
      roughly that many placemarks, so divide these files before loading
      them into Collect Earth - see section 6.

==============================================================================
 4. COLUMN DICTIONARY
==============================================================================

  CE_ID         Unique, stable identifier of the plot in the global SIGRID
                grid. The SAME plot carries the SAME CE_ID in every file
                here and in the global SIGRID tiles. Use it as your key.
  yCoordinate   Latitude  of the plot centre, decimal degrees, WGS 84.
  xCoordinate   Longitude of the plot centre, decimal degrees, WGS 84.
  ADM1NM        Province / state / department name (UN 2023, level 1).
  ADM2NM        District / county / municipality name (UN 2023, level 2).
  grid_1 ...    Boolean flags, PRESENT ONLY IN THE 1x1 km FILE. grid_N is
  grid_100      true when the plot belongs to the N x N km sampling grid.
                grid_1 is true for every plot. The coarser CSVs omit these
                columns because the filename already states the intensity.

  Note on names: ADM1NM/ADM2NM are reproduced exactly as published by the
  UN, including diacritics (e.g. Oueme, Hadramawt). Files are UTF-8; open
  them as UTF-8 in Excel (Data > From Text/CSV > 65001) or accents break.

==============================================================================
 5. PLOTS BY PROVINCE
==============================================================================

  Province (ADM1NM)                         Plots (1x1 km)    Share
  ---------------------------------------- --------------- --------
  Nakhon Ratchasima                                 20,605     4.0%
  Tak                                               20,022     3.9%
  Kanchanaburi                                      19,553     3.8%
  Chiang Mai                                        19,419     3.8%
  Ubon Ratchathani                                  15,495     3.0%
  Surat Thani                                       13,295     2.6%
  Mae Hong Son                                      12,858     2.5%
  Chaiyaphum                                        12,680     2.5%
  Lampang                                           12,526     2.4%
  Phetchabun                                        12,420     2.4%
  Nan                                               12,233     2.4%
  Chiang Rai                                        11,541     2.2%
  Udon Thani                                        11,030     2.1%
  Khon Kaen                                         10,610     2.1%
  Loei                                              10,605     2.1%
  Phitsanulok                                       10,557     2.0%
  Buriram                                           10,100     2.0%
  Nakhon Si Thammarat                                9,853     1.9%
  Nakhon Sawan                                       9,496     1.8%
  Sakon Nakhon                                       9,463     1.8%
  Si Saket                                           8,875     1.7%
  Surin                                              8,798     1.7%
  Kampaeng Phet                                      8,616     1.7%
  Uttaradit                                          7,879     1.5%
  Roi Et                                             7,828     1.5%
  Nong Khai                                          7,316     1.4%
  Songkhla                                           7,226     1.4%
  Kalasin                                            6,922     1.3%
  Sa Kaeo                                            6,829     1.3%
  Uthai Thani                                        6,666     1.3%
  Sukhothai                                          6,639     1.3%
  Phrae                                              6,471     1.3%
  Chanthaburi                                        6,379     1.2%
  Prachuap Khilikhan                                 6,329     1.2%
  Lopburi                                            6,288     1.2%
  Phetchaburi                                        6,251     1.2%
  Phayao                                             6,145     1.2%
  Chumphon                                           5,876     1.1%
  Maha Sarakham                                      5,581     1.1%
  Nakhon Phanom                                      5,485     1.1%
  Chachoengsao                                       5,397     1.0%
  Suphanburi                                         5,326     1.0%
  Ratchaburi                                         5,199     1.0%
  Narathiwat                                         5,145     1.0%
  Phachinburi                                        4,841     0.9%
  Trang                                              4,770     0.9%
  Lamphun                                            4,497     0.9%
  Yala                                               4,489     0.9%
  Chonburi                                           4,477     0.9%
  Krabi                                              4,460     0.9%
  Phichit                                            4,282     0.8%
  Mukdahan                                           4,184     0.8%
  Nong Bua Lamphu                                    4,094     0.8%
  Yasothon                                           4,085     0.8%
  Rayong                                             3,668     0.7%
  Saraburi                                           3,501     0.7%
  Phatthalung                                        3,384     0.7%
  Phangnga                                           3,333     0.6%
  Ranong                                             3,264     0.6%
  Amnat Charoen                                      3,223     0.6%
  Trad                                               2,691     0.5%
  Phra Nakhon Si Ayudhya                             2,551     0.5%
  Chainat                                            2,446     0.5%
  Satun                                              2,424     0.5%
  Nakhon Nayok                                       2,156     0.4%
  Nakhon Pathom                                      2,142     0.4%
  nan                                                2,089     0.4%
  Pattani                                            1,973     0.4%
  Bangkok                                            1,562     0.3%
  Pathum Thani                                       1,489     0.3%
  Ang Thong                                            956     0.2%
  Samut Prakarn                                        951     0.2%
  Samut Sakhon                                         850     0.2%
  Singburi                                             828     0.2%
  Nonthaburi                                           644     0.1%
  Phuket                                               526     0.1%
  Samut Songkham                                       398     0.1%
  Xaignabouli                                           66     0.0%
  ---------------------------------------- --------------- --------
  TOTAL                                            515,121   100.0%

  A full breakdown per district is in Thailand_plot_counts_by_district.csv,
  which gives the plot count of every district at every intensity.

==============================================================================
 6. HOW TO USE THESE FILES
==============================================================================

  Choosing an intensity. Pick the coarsest grid that still gives you enough
  plots in your smallest reporting unit. If you report by district, open
  Thailand_plot_counts_by_district.csv and check the district with the fewest plots.

  Python
    import pandas as pd
    df = pd.read_csv('Thailand_10x10km.csv')
    df[df.ADM1NM == 'YourProvince']          # subset one province
    df.groupby('ADM2NM').size()              # plots per district

  R
    df <- read.csv('Thailand_10x10km.csv', fileEncoding='UTF-8')
    table(df$ADM2NM)

  QGIS
    Layer > Add Layer > Add Delimited Text Layer. X field = xCoordinate,
    Y field = yCoordinate, CRS = EPSG:4326.

  Google Earth / Collect Earth
    The CSV can be used directly as a Collect Earth plot file: the first
    three columns are already an id (CE_ID) followed by latitude and
    longitude, which is the order Collect Earth expects. Keep the
    ADM1NM/ADM2NM columns to stratify or to hand districts to field teams.

  Splitting a file into smaller plot files
    Collect Earth draws one Google Earth placemark per plot, and Google
    Earth has trouble with KML files holding more than about 2,000
    plots. Any file marked (*) in section 3 should be divided first.

    Collect Earth ships a tool for exactly this:

        Tools -> Utilities -> Divide large CSV files

    Choose the large CSV, then pick one of:
      - how many smaller files to divide it into;
      - whether to randomize the order of the plots first;
      - or aggregate the plots using one of the columns in the CSV.

    The aggregate option is the one to use here. Select ADM1NM to get
    one CSV per province, or ADM2NM to get one CSV per district; each
    output file is named after the value of that column
    (Nakhon_Ratchasima.csv, Tak.csv, ...), which makes them straightforward to
    hand to field teams.

    Because CE_ID is unique and stable, plots keep their identity across
    the split, and interpreted results can be merged back together.

    See: https://openforis.support/questions/3623/

  Excel
    Do NOT double-click the CSV. Use Data > From Text/CSV and set File
    Origin to 65001: UTF-8, otherwise accented district names are corrupted.

==============================================================================
 7. HOW THIS WAS GENERATED
==============================================================================

  1. The UN 2023 ADM2 boundaries for the country were downloaded and any
     invalid polygon geometry repaired.
  2. The SIGRID 10 x 10 degree tiles that actually intersect the country
     were identified from the boundary geometry (not merely its bounding
     box, which is wrong for countries crossing the 180th meridian) and
     downloaded from:
       https://www.openforis.org/fileadmin/SIGRID_1000m_grids
  3. Every plot in those tiles was tested against the district polygons
     with a point-in-polygon join (predicate 'intersects', so a plot lying
     exactly on a boundary line is kept, not discarded). Plots outside all
     districts were dropped. A plot on a shared border is assigned to one
     district only, so no plot is ever duplicated.
  4. The tagged plots were split on the grid_N flags into the density files
     listed in section 3.

  Snap tolerance used: 0.0 degrees (disabled).
  Plots recovered by snapping: 0

==============================================================================
 8. QUALITY CONTROL
==============================================================================

  Because SIGRID plots sit on a 1 km lattice, the number of plots inside a
  country should equal that country's land area in square kilometres. That
  is the single most informative check on this dataset, and it is reported
  above as the QA ratio:

      515,121 plots / 518,397 km2  =  0.9937

  Status: ok

  A value inside 0.97-1.01 is considered correct. Values are
  typically 0.99-1.00; the small shortfall is explained in section 9.
  Additional checks applied to this file: no duplicate CE_ID, no plot
  assigned to more than one district, and no missing coordinates.

==============================================================================
 9. KNOWN LIMITATIONS
==============================================================================

  Coastlines. National boundaries are generalized. A small number of plots
  that are genuinely on land can fall a few hundred metres outside the
  published polygon and are therefore not included. This is the ~0.5%
  visible in the QA ratio. Widening the tolerance to recover them pulls in
  offshore sea points instead, which is worse, so the small undercount is
  deliberate.

  Boundary vintage. Districts follow the UN 2023 definition. If your
  national administration has since split or merged districts, the names
  here will not match your current official list.

  Disputed areas. Boundaries follow UN depiction; see the disclaimer.

==============================================================================
 10. PROVENANCE AND CITATION
==============================================================================

  Generated        : 2026-07-10 10:10 UTC
  Generator        : build_all_countries.py v2.0
  Plot grid        : SIGRID 1000 m (https://www.openforis.org/fileadmin/SIGRID_1000m_grids)
  Boundaries       : United Nations 2023, ADM2 (EarthMap public store)
  Coordinate system: EPSG:4326 (WGS 84)

  Suggested citation:
    Open Foris SIGRID 1 km sampling grid for Thailand, tagged with UN 2023
    ADM1/ADM2 administrative names. Generated 2026-07-10 10:10 UTC.

==============================================================================
 11. DISCLAIMER
==============================================================================

  Administrative boundaries: United Nations 2023 (UN Geospatial, ADM2), obtained via the EarthMap public boundary store.
  The designations employed and the presentation of material on this product do not imply the expression of any opinion whatsoever on the part of the United Nations or FAO concerning the legal status of any country, territory, city or area or of its authorities, or concerning the delimitation of its frontiers or boundaries.

