==============================================================================
 SIGRID 1 km SAMPLING GRID - MALTA (MT/MLT)
 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 Malta, 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                    : Malta (MT/MLT)
  Total plots (1x1 km)       : 312
  Land area (equal-area)     : 315 km2
  Plots per km2 (QA ratio)   : 0.9902   [ok]
  Provinces (ADM1NM)         : 61
  Districts (ADM2NM)         : 68
  Sampling intensities       : 14 (1x1 km to 30x30 km)
  Bounding box (lon)         : 14.1942 to 14.5739
  Bounding box (lat)         : 35.8195 to 36.0808
  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
  ---------------------------------- --------- ------------ ----------
  Malta_1x1km.csv                         1 km          312    44.4 KB
  Malta_2x2km.csv                         2 km           75     3.4 KB
  Malta_3x3km.csv                         3 km           35     1.6 KB
  Malta_4x4km.csv                         4 km           18      899 B
  Malta_5x5km.csv                         5 km           12      571 B
  Malta_6x6km.csv                         6 km           10      484 B
  Malta_8x8km.csv                         8 km            4      227 B
  Malta_9x9km.csv                         9 km            4      230 B
  Malta_10x10km.csv                      10 km            3      170 B
  Malta_12x12km.csv                      12 km            2      136 B
  Malta_15x15km.csv                      15 km            1       88 B
  Malta_16x16km.csv                      16 km            2      136 B
  Malta_25x25km.csv                      25 km            2      128 B
  Malta_30x30km.csv                      30 km            1       88 B
  Malta_plot_counts_by_district.csv  per district            -     2.5 KB
  Malta_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.

==============================================================================
 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
  ---------------------------------------- --------------- --------
  Rabat (Malta)                                         30     9.6%
  Mellieha                                              23     7.4%
  Siggiewi                                              20     6.4%
  Mgarr                                                 16     5.1%
  San Pawl II-Bahar                                     15     4.8%
  Naxxar                                                10     3.2%
  Zurrieq                                                9     2.9%
  Zebbug (Gozo)                                          8     2.6%
  Birzebbugia                                            8     2.6%
  Zebbug (Malta)                                         7     2.2%
  Qormi                                                  7     2.2%
  Attard                                                 7     2.2%
  Xaghra                                                 7     2.2%
  Luqa                                                   6     1.9%
  Marsascala                                             6     1.9%
  Nadur                                                  6     1.9%
  Ghajnsielem                                            6     1.9%
  Qala                                                   6     1.9%
  Zejtun                                                 5     1.6%
  Mosta                                                  5     1.6%
  Zabbar                                                 5     1.6%
  Dingli                                                 5     1.6%
  Marsaxlokk                                             5     1.6%
  Ghasri                                                 5     1.6%
  Kercem                                                 5     1.6%
  Gharb                                                  4     1.3%
  Ghaxaq                                                 4     1.3%
  Rabat (Victoria)                                       4     1.3%
  Area under National Administration                     4     1.3%
  Xewkija                                                4     1.3%
  San Gwann                                              4     1.3%
  Munxar                                                 4     1.3%
  Sannat                                                 3     1.0%
  Qrendi                                                 3     1.0%
  Iklin                                                  3     1.0%
  San Lawrenz                                            3     1.0%
  Swieqi                                                 3     1.0%
  Kalkara                                                3     1.0%
  Marsa                                                  3     1.0%
  Floriana                                               2     0.6%
  Birkirkara                                             2     0.6%
  Hamrun                                                 2     0.6%
  Pembroke                                               2     0.6%
  Mqabba                                                 2     0.6%
  Gudja                                                  2     0.6%
  San Giljan                                             2     0.6%
  Safi                                                   2     0.6%
  Paola                                                  2     0.6%
  Kirkop                                                 1     0.3%
  Balzan                                                 1     0.3%
  Bormla                                                 1     0.3%
  Fgura                                                  1     0.3%
  Gharghur                                               1     0.3%
  Mdina                                                  1     0.3%
  Lija                                                   1     0.3%
  Msida                                                  1     0.3%
  Pieta                                                  1     0.3%
  Tarxien                                                1     0.3%
  Sliema                                                 1     0.3%
  Santa Lucija                                           1     0.3%
  Xghajra                                                1     0.3%
  ---------------------------------------- --------------- --------
  TOTAL                                                312   100.0%

  A full breakdown per district is in Malta_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
  Malta_plot_counts_by_district.csv and check the district with the fewest plots.

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

  R
    df <- read.csv('Malta_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
    (Rabat_Malta.csv, Mellieha.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:

      312 plots / 315 km2  =  0.9902

  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 Malta, 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.

