Examples

FPR: Query all sources (DR3 + FPR) in Omega-Cen (PostgreSQL/Optimized)

This query selects all sources incl. Gaia DR3 and Gaia FPR in the crowded field 0.8 degrees around the Omega-Cen cluster centre.

SELECT source_id, ref_epoch, ra, ra_error, dec, dec_error, 
       pmra, pmra_error, pmdec, pmdec_error, 
       phot_g_mean_mag, l, b, n_scans, 'fpr' as origin 
  FROM gaiafpr.crowded_field_source 
 UNION 
SELECT source_id, ref_epoch, ra, ra_error, dec, dec_error, 
       pmra, pmra_error, pmdec, pmdec_error, 
       phot_g_mean_mag, l, b, -1 as nscans, 'dr3' as origin
  FROM gaiadr3.gaia_source 
 WHERE pos @ SCIRCLE(SPOINT(RADIANS(201.69399972775088),RADIANS(-47.484610741298994)), RADIANS(0.8))

FPR: Query all sources (DR3 + FPR) in Omega-Cen (ADQL/Interoperable)

This query selects all sources incl. Gaia DR3 and Gaia FPR in the crowded field 0.8 degrees around the Omega-Cen cluster centre.

SELECT source_id, ref_epoch, 
       ra, ra_error, dec, dec_error,
       pmra, pmra_error, pmdec, pmdec_error, 
       phot_g_mean_mag, l, b, n_scans, 'fpr' as origin
  FROM gaiafpr.crowded_field_source
 UNION
SELECT source_id, ref_epoch, 
       ra, ra_error, dec, dec_error,
       pmra, pmra_error, pmdec, pmdec_error, 
       phot_g_mean_mag, l, b, -1 as nscans, 'dr3' as origin
  FROM gaiadr3.gaia_source
 WHERE 1=CONTAINS(POINT('ICRS', ra, dec),
       CIRCLE('ICRS', 201.69399972775088,-47.484610741298994, 0.8))

FPR: count the number of voxels/spectra per healpix

This query counts the number of spectra available for each healpix.

SELECT sub.healpix, COUNT(*) as nbr_spectra 
    FROM 
 (SELECT healpix 
    FROM "gaiafpr"."interstellar_medium_spectra" 
GROUP BY (lc, bc, dc, healpix)) AS sub
GROUP BY sub.healpix 
  HAVING COUNT(*) > 1
ORDER BY sub.healpix ASC

FPR: Query LPV related data

This query retrieves the principal quantity from GaiaDR3 and FPR Long Period Variable (LPV) product.

SELECT gs.source_id, 
           gs.ra, gs.dec,
           fprlpv.frequency_rv, fprlpv.frequency_rv_error,
           fprlpv.amplitude_rv, fprlpv.flag_rv
     FROM gaiadr3.gaia_source_lite as gs
LEFT JOIN gaiafpr.vari_long_period_variable as fprlpv
       ON gs.source_id = fprlpv.source_id
    WHERE fprlpv.source_id IS NOT NULL

FPR: Radial velocity time series

Retrieve the radial velocity time series from Gaia FPR.

SELECT fprlpv.source_id, 
          varirv.transit_id,
          varirv.rv_obs_time,
          varirv.radial_velocity,
          varirv.radial_velocity_error,
          varirv.rejected_by_variability
     FROM gaiafpr.vari_long_period_variable as fprlpv
LEFT JOIN gaiafpr.vari_epoch_radial_velocity as varirv
       ON varirv.source_id = fprlpv.source_id
    WHERE fprlpv.source_id IS NOT NULL

FPR: SSO orbital solutions state vector

Retrieve the state vector and semi-major axis uncertainty for all the valid orbital solutions.

SELECT "number_mp", "denomination", "epoch_state_vector", 
       h_state_vector[1] AS x, 
       h_state_vector[2] AS y, 
       h_state_vector[3] AS z, 
       h_state_vector[4] AS vx, 
       h_state_vector[5] AS vy, 
       h_state_vector[6] AS vz, 
       SQRT(orbital_elements_var_covar_matrix[1]) AS sigma 
  FROM "gaiafpr"."sso_source" 
 WHERE orbital_elements_var_covar_matrix[1] > 0 
 ORDER BY "number_mp" ASC

FPR: ConeSearch on Interstellar Medium Spectra

A Cone Search query for GaiaFPR Interstellar Medium Spectra table (using a helping table)

SELECT ism.healpix as healpix, ism.lc as lc, ism.bc as bc, ism.dc, 
       coord.ra as ra, coord.dec as dec,
       ism.lambda as lambda, ism.flux as flux, ism.flux_uncertainty as flux_uncertainty
  FROM gaiafpr.interstellar_medium_spectra as ism,
       gaiafpr_contrib.ism_gaiagal_to_eq as coord
 WHERE coord.pos @ SCIRCLE(SPOINT(RADIANS(201.69399972775088),RADIANS(-47.484610741298994)), RADIANS(2))
   AND ism.lc = coord.lc
   AND ism.bc = coord.bc

FPR: Selecting Interstellar Spectra with cone search

Select the composed ID (healpix, dc) of a spectra in a cone search.

SELECT ism.healpix, ism.dc, COUNT(*) as res
  FROM gaiafpr.interstellar_medium_spectra as ism,
       gaiafpr_contrib.ism_gaiagal_to_eq as coord
 WHERE coord.pos @ SCIRCLE(SPOINT(RADIANS(201.69399972775088),RADIANS(-47.484610741298994)), RADIANS(2))
   AND ism.lc = coord.lc
   AND ism.bc = coord.bc
 GROUP BY ism.healpix, ism.dc
 ORDER BY ism.dc ASC

FPR: Count number of spectra (voxels) in a cone search

Count the number of spectra available in a cone search.

SELECT COUNT(*) as nbr_voxels
FROM 
     (SELECT ism.healpix, ism.dc
        FROM gaiafpr.interstellar_medium_spectra as ism,
             gaiafpr_contrib.ism_gaiagal_to_eq as coord
       WHERE coord.pos @ SCIRCLE(SPOINT(RADIANS(201.69399972775088),RADIANS(-47.484610741298994)), RADIANS(2))
         AND ism.lc = coord.lc
         AND ism.bc = coord.bc
       GROUP BY ism.dc, ism.healpix
       ORDER BY ism.dc ASC) as spectra

DR3: light version of gaia_source

This is a reduced pre-selection of columns of gaiadr3.gaia_source.

-- A light version of gaia_source
--
-- LANG: POstgres
-- QUEUE: 30s
--
SELECT *
  FROM "gaiadr3"."gaia_source_lite" 
  LIMIT 2000

DR3: Select a random sample of sources with RVS Mean Spectrum

Select 2000 random sources with a RVS mean spectrum. These spectra can be visualized with help of the spectra viewer. Additionally this table can then be used with the Simple Join Service to retrieve the spectra.

-- SELECT 2000 random sources with RVS Mean Spectrum
--
-- LANG: Postgres
-- QUEUE: 30s
--
SELECT source_id
  FROM gaiadr3.gaia_source_lite
 WHERE has_rvs = True
   AND random_index BETWEEN 500000 AND 1000000
 LIMIT 2000

DR3: Select a random sample of sources with a Xp Sampled Mean Spectrum

Select 2000 random sources with a sampled mean spectrum. This table can then be used with the Simple Join Service to retrieve the spectra.

-- SELECT 2000 random sources with Xp Continuous Mean Spectrum
--
-- LANG: Postgres
-- QUEUE: 30s
--
SELECT source_id
  FROM gaiadr3.gaia_source_lite
 WHERE has_xp_sampled = True
   AND random_index BETWEEN 500000 AND 1000000
 LIMIT 2000

DR3: Select 2000 random sources with variability information

Select a random sample of 2000 sources with informations in the vari tables.

-- SELECT 2000 random sources with variable informations
--
-- LANG: Postgres
-- QUEUE: 30s
--
SELECT gs.source_id, 
       vs."in_vari_classification_result", 
       vs."in_vari_rrlyrae", 
       vs."in_vari_cepheid", 
       vs."in_vari_planetary_transit", 
       vs."in_vari_short_timescale", 
       vs."in_vari_long_period_variable", 
       vs."in_vari_eclipsing_binary", 
       vs."in_vari_rotation_modulation", 
       vs."in_vari_ms_oscillator", 
       vs."in_vari_agn", 
       vs."in_vari_microlensing", 
       vs."in_vari_compact_companion" 
  FROM gaiadr3.gaia_source_lite as gs, 
       gaiadr3.vari_summary as vs 
 WHERE gs."phot_variable_flag" = 'VARIABLE' 
   AND gs.source_id = vs.source_id 
   AND gs.random_index BETWEEN 500000 AND 1000000 
 LIMIT 2000

DR3: Query the datalink flags

Select all datalink flags columns

-- Query the Datalink flags
--
-- LANG: Potsgres
-- QUEUE: 30s
--
SELECT "source_id", 
	   "phot_variable_flag",
       "in_qso_candidates", "in_galaxy_candidates", 
       "non_single_star", "has_xp_continuous", "has_xp_sampled", "has_rvs", 
       "has_epoch_photometry", "has_epoch_rv", "has_mcmc_gspphot", "has_mcmc_msc", 
       "in_andromeda_survey"
  FROM "gaiadr3"."gaia_source_lite" 
  LIMIT 2000

EDR3: Compare coordinates between DR2 and EDR3

Compare coordinates between DR2 and EDR3

-- Compare coordinates between DR2 and EDR3

-- LANGUAGE = PostgreSQL
-- QUEUE = 5m

SELECT dr2.ra as dr2_ra, 
       dr2.dec as dr2_dec, 
       edr3.ra as edr3_ra, 
       edr3.dec as dr3_dec
       
FROM gaiadr2.gaia_source AS dr2,
     gaiaedr3.gaia_source AS edr3, 
     gaiaedr3.dr2_neighbourhood AS xm
     
WHERE dr2.source_id = xm.dr2_source_id
  AND edr3.source_id = xm.dr3_source_id
  
LIMIT 100000

EDR3: Query for the zero-point correction tutorial

Query for the zero-point correction tutorial. ref: https://gitlab.com/icc-ub/public/gaiadr3_zeropoint/-/tree/master

-- Query for the zero-point correction tutorial

-- LANGUAGE = PostgreSQL
-- QUEUE = 30s

SELECT * 
FROM "gaiaedr3"."gaia_source"
WHERE "phot_g_mean_mag" BETWEEN 17.9 AND 18.1
  AND "random_index" BETWEEN 700000000 AND 701000000

EDR3: Query for G-band magnitude/flux corrections for 6-p Gaia EDR3 sources

Query for G-band magnitude/flux corrections for 6-p Gaia EDR3 sources. ref: https://github.com/agabrown/gaiaedr3-6p-gband-correction

-- Query for G-band magnitude/flux corrections for 6-p Gaia EDR3 sources

-- LANGUAGE = PostgreSQL
-- QUEUE = 30s

SELECT "source_id", "astrometric_params_solved", "bp_rp", "phot_g_mean_mag", "phot_g_mean_flux"
FROM "gaiaedr3"."gaia_source"
WHERE "random_index" BETWEEN 5000000 AND 5999999

EDR3: Query for the calculation of the corrected flux excess factor

Query for the calculation of the corrected flux excess factor. ref: https://github.com/agabrown/gaiaedr3-flux-excess-correction

-- Query for the calculation of the corrected flux excess factor

-- LANGUAGE = PostgreSQL
-- QUEUE = 30s

SELECT "source_id", "bp_rp", "phot_bp_rp_excess_factor"
FROM "gaiaedr3"."gaia_source"
WHERE "random_index" BETWEEN 1000000 AND 1999999

EDR3: select 6p stars with pseudo-colour

Select 6p stars with pseudo-colour.

-- Select 6p stars with pseudo-colour

-- LANGUAGE = PostgreSQL
-- QUEUE = 30s

-- Note: astrometric_params_solved 2p: 3 - 5p: 31 - 6p: 95

SELECT "source_id", "astrometric_params_solved", "pseudocolour", "pseudocolour_error"
FROM "gaiaedr3"."gaia_source" 
WHERE "astrometric_params_solved" = 95 
LIMIT 10

EDR3: parallax typically improves to 20% from DR2 to EDR3

Select stars which show a 20% improvement in the parallax precision from DR2 to EDR3. ref: Documentation (7.1)

-- parallax typically improves to 20% from DR2 to EDR3

-- LANGUAGE = PostgreSQL
-- QUEUE = 30s

SELECT edr3."source_id" AS edr3_source_id, 
       dr2."source_id" AS dr2_source_id,

       -- parallax of EDR3
       edr3."parallax" AS edr3_parallax, 
       edr3."parallax_error" AS edr3_parallax_error, 
       edr3."parallax_over_error" AS edr3_parallax_over_error,
       
       -- parallax of DR2
       dr2."parallax_error" AS dr2_parallax_error, 
       dr2."parallax" AS dr2_parallax, 
       dr2."parallax_over_error" AS dr2_parallax_over_error,
       
       -- ratio of the error
       edr3.parallax_error/dr2.parallax_error AS ratio
       
FROM "gaiaedr3"."dr2_neighbourhood" AS "dr2_neigh",
     "gaiaedr3"."gaia_source" AS "edr3",
     "gaiadr2"."gaia_source" AS "dr2"
     
-- Cross-match source_id
WHERE "dr2_neigh"."dr3_source_id" = "edr3"."source_id" 
  AND "dr2_neigh"."dr3_source_id" = "dr2"."source_id"
  
  -- When parallax are positive
  AND dr2.parallax > 0.
  AND edr3.parallax > 0.
  
  -- Preselect good parallax (from EDR3
  AND edr3.parallax_over_error > 10.
  
  -- Look for the 20% improvement claim
  AND edr3.parallax_error/dr2.parallax_error < 0.8 -- 20 % improvement
       
LIMIT 10

EDR3: Histogram of the magnitude difference between DR2 and EDR3

Histogram of the magnitude difference between DR2 and EDR3. ref: Documentation (9.3)

-- Histogram of the magnitude difference between DR2 and EDR3

-- LANGUAGE = ADQL
-- QUEUE = 2h
SELECT FLOOR(magnitude_difference * 1000.) / 1000. AS magnitude_difference_bin, 
       count(*) AS n
       
FROM gaiaedr3.dr2_neighbourhood

WHERE angular_distance < 100.

GROUP BY magnitude_difference_bin
ORDER BY magnitude_difference_bin

DR2: Gaia data with 2MASS photometry

Combine Gaia information with 2MASS J, H and Ks photometric measurements.

-- Gaia + 2MASS photometry

SELECT TOP 10 gaia.ra, gaia.dec,
       gaia.phot_g_mean_mag, gaia.phot_bp_mean_mag, gaia.phot_rp_mean_mag,
       tmass.j_m, tmass.h_m, tmass.k_m, tmass.ph_qual
FROM gaiadr2.gaia_source AS gaia,
	 gaiadr2.tmass_best_neighbour AS xm,
     catalogs.tmass AS tmass
WHERE gaia.source_id = xm.source_id
AND xm.tmass_oid = tmass.tmass_oid;

DR2: Orbital elements of Solar System Objects

Select orbital elements of all available SSOs.

SELECT osc_epoch, orb_m, omega, node_omega, inclination, eccentricity, a
FROM gaiadr2.aux_sso_orbits;

DR2: Epoch photometry data with more than 100 measurements

Select first 10 light curves that have more than 100 points. This query operates on data that is packed into arrays and must therefore be run with PostgreSQL.

-- Run with PostgreSQL

SELECT gaia.ra, gaia.dec,
	   ep.source_id, ep.g_transit_time, ep.g_transit_flux
FROM gaiadr2.gaia_source AS gaia, gaiadr2.epoch_photometry AS ep
WHERE array_length(ep.g_transit_time, 1) > 100
AND ep.source_id = gaia.source_id
LIMIT 10;

DR2: Parameters of bright stars with radial velocity measurements

None

-- Replace COUNT(*) with requested columns

SELECT COUNT(*)
FROM gaiadr2.gaia_source
WHERE phot_g_mean_mag < 12
AND radial_velocity IS NOT NULL;

DR2: All-sky radial velocity map

Select stars with radial velocity measurements, use the source_id to compute the HEALPix index and uniformly limit the number of stars using random_index.

-- Compute HEALPix value from source_id

SELECT FLOOR(source_id / (POW(2, 35) * POW(4, 6))) AS hpix, radial_velocity AS rv
FROM gaiadr2.gaia_source
WHERE random_index < 10000000
AND radial_velocity IS NOT NULL;

DR2: M4 globular cluster with geometric distances using ADQL

None

SELECT gaia.source_id, gaia.ra, gaia.dec, gd.r_est
FROM gaiadr2.gaia_source gaia, gaiadr2_contrib.geometric_distance gd
WHERE 1 = CONTAINS(POINT('ICRS', gaia.ra, gaia.dec), 
                   CIRCLE('ICRS',245.8962, -26.5222, 0.5))
AND gaia.phot_g_mean_mag < 15
AND gd.r_est > 1500 AND gd.r_est < 2300
AND gaia.source_id = gd.source_id

DR2: Compare coordinates between Gaia DR1 and DR2

None

SELECT TOP 1000 dr1.ra as dr1_ra, dr1.dec as dr1_dec, dr2.ra as dr2_ra, dr2.dec as dr2_dec
FROM gaiadr1.gaia_source AS dr1, gaiadr2.gaia_source AS dr2, gaiadr2.dr1_neighbourhood AS xm
WHERE dr1.source_id = xm.dr1_source_id
AND dr2.source_id = xm.dr2_source_id;

DR2: 47Tuc Hertzsprung–Russell diagram

Hertzsprung–Russell diagram of the famous globular cluster 47Tuc.

SELECT bp_rp, phot_g_mean_mag AS gp
FROM gaiadr2.gaia_source
WHERE 1 = CONTAINS(POINT('ICRS', ra, dec),
                   CIRCLE('ICRS', 6.0223292, -72.0814444, 0.2))
AND phot_g_mean_flux_over_error > 50
AND phot_rp_mean_flux_over_error > 20
AND phot_bp_mean_flux_over_error > 20
AND phot_bp_rp_excess_factor < 1.3 + 0.06 * POW(bp_rp, 2)
AND phot_bp_rp_excess_factor > 1.0 + 0.015 * POW(bp_rp, 2)
AND visibility_periods_used > 8
AND astrometric_chi2_al / (astrometric_n_good_obs_al - 5) <
    1.44 * greatest(1, exp(-0.4 * (phot_g_mean_mag - 19.5)));

DR1: Number of TGAS stars with parallax / parallax_error > 10

Count the number of stars in the TGAS catalog with parallax / parallax_error > 10;

SELECT COUNT(*)
FROM gaiadr1.tgas_source
WHERE parallax / parallax_error > 10;

DR1: Histogram of TGAS G magnitudes

Compute the histogram of TGAS G magnitudes.

SELECT gmag * 0.1 AS gmag_bin, COUNT(gmag) AS number
FROM
(
    SELECT FLOOR(phot_g_mean_mag * 10) AS gmag
    FROM gaiadr1.tgas_source
) AS gmag_tab
GROUP BY gmag;

DR1: M4 globular cluster using PostgreSQL

None

-- Run with PostgreSQL
-- Input of function spoint() must be in radians!

SELECT ra, dec, phot_g_mean_mag AS gmag
FROM gaiadr1.gaia_source
WHERE pos @ scircle(spoint(RADIANS(245.8962), RADIANS(-26.5222)), RADIANS(0.5))
AND phot_g_mean_mag < 15

Easter egg

This examples shows how to make complex spatial selections using polygons.

-- Run with PostgreSQL

SELECT ra, dec
FROM gaiadr2.gaia_source
WHERE pos @ sbox(spoint(0.0, RADIANS(0.5)), spoint(RADIANS(4.0), RADIANS(7.0)))
AND pos !@ spoly '{(0.610000d,1.040000d), (0.690000d,1.040000d), (1.050000d,1.990000d),
(1.140000d,2.000000d), (1.480000d,1.040000d), (1.540000d,1.040000d), (1.540000d,0.970000d),
(1.200000d,0.970000d), (1.200000d,1.040000d), (1.300000d,1.040000d), (1.050000d,1.740000d),
(0.910000d,1.380000d), (1.170000d,1.370000d), (1.200000d,1.280000d), (0.880000d,1.280000d),
(0.790000d,1.040000d), (0.890000d,1.040000d), (0.900000d,0.970000d), (0.600000d,0.970000d)}'
AND pos !@ spoly '{(1.690000d,0.970000d), (1.690000d,1.040000d), (1.810000d,1.040000d),
(1.810000d,1.930000d), (1.690000d,1.940000d), (1.690000d,2.010000d), (2.120000d,2.010000d),
(2.120000d,1.940000d), (2.000000d,1.940000d), (2.000000d,1.050000d), (2.120000d,1.040000d),
(2.110000d,0.970000d)}'
AND pos !@ spoly '{(2.310000d,0.970000d), (2.310000d,1.040000d), (2.420000d,1.050000d),
(2.420000d,1.940000d), (2.310000d,1.940000d), (2.310000d,2.010000d), (2.810000d,2.010000d),
(2.870000d,2.000000d), (2.940000d,1.960000d), (2.990000d,1.920000d), (3.020000d,1.880000d),
(3.060000d,1.800000d), (3.070000d,1.730000d), (3.060000d,1.630000d), (3.020000d,1.540000d),
(2.960000d,1.480000d), (2.890000d,1.430000d), (2.810000d,1.400000d), (2.720000d,1.390000d),
(2.670000d,1.400000d), (2.670000d,1.480000d), (2.750000d,1.480000d), (2.820000d,1.530000d),
(2.860000d,1.600000d), (2.870000d,1.750000d), (2.840000d,1.820000d), (2.800000d,1.890000d),
(2.750000d,1.920000d), (2.610000d,1.910000d), (2.610000d,1.040000d), (2.740000d,1.040000d),
(2.740000d,0.970000d)}'
AND pos !@ spoly '{(0.290000d,2.620000d), (0.700000d,2.650000d), (1.060000d,2.670000d),
(1.450000d,2.690000d), (2.060000d,2.690000d), (2.530000d,2.680000d), (3.020000d,2.660000d),
(3.300000d,2.630000d), (3.650000d,2.600000d), (3.840000d,2.580000d), (3.810000d,2.510000d),
(3.340000d,2.550000d), (2.900000d,2.560000d), (2.500000d,2.580000d), (2.000000d,2.590000d),
(1.500000d,2.580000d), (1.040000d,2.570000d), (0.670000d,2.560000d), (0.160000d,2.520000d),
(-0.020000d,2.500000d)}'
AND pos !@ spoly '{(0.280000d,6.560000d), (0.420000d,6.580000d),
(0.630000d,6.590000d), (1.000000d,6.590000d), (1.330000d,6.560000d), (1.550000d,6.520000d),
(1.760000d,6.480000d), (2.050000d,6.410000d), (2.290000d,6.330000d), (2.560000d,6.230000d),
(2.860000d,6.100000d), (3.090000d,5.970000d), (3.310000d,5.830000d), (3.550000d,5.660000d),
(3.710000d,5.540000d), (3.830000d,5.430000d), (3.770000d,5.380000d), (3.630000d,5.500000d),
(3.470000d,5.610000d), (3.280000d,5.730000d), (3.050000d,5.870000d), (2.880000d,5.970000d),
(2.640000d,6.080000d), (2.370000d,6.190000d), (2.130000d,6.280000d), (1.840000d,6.360000d),
(1.570000d,6.420000d), (1.260000d,6.470000d), (0.980000d,6.490000d), (0.760000d,6.490000d),
(0.320000d,6.490000d)}'
AND pos !@ spoly '{(1.050000d,3.320000d), (1.100000d,3.780000d), (1.170000d,4.170000d),
(1.270000d,4.560000d), (1.400000d,4.930000d), (1.510000d,5.230000d), (1.590000d,5.410000d),
(1.720000d,5.650000d), (1.840000d,5.880000d), (1.960000d,6.060000d), (2.410000d,5.890000d),
(2.670000d,5.770000d), (2.950000d,5.630000d), (2.880000d,5.330000d), (2.810000d,4.980000d),
(2.750000d,4.690000d), (2.700000d,4.300000d), (2.670000d,3.960000d), (2.630000d,3.420000d),
(2.630000d,2.930000d), (2.410000d,2.950000d), (1.900000d,2.970000d), (1.060000d,2.940000d)}'
OR (
  pos @ spoly '{(1.580000d,3.250000d), (1.610000d,3.370000d), (1.650000d,3.250000d),
  (1.760000d,3.220000d), (1.640000d,3.190000d), (1.610000d,3.070000d), (1.580000d,3.190000d),
  (1.470000d,3.220000d)}'
  OR pos @ spoly '{(1.850000d,3.460000d), (1.890000d,3.580000d),
  (1.940000d,3.460000d), (2.070000d,3.410000d), (1.950000d,3.350000d), (1.890000d,3.220000d),
  (1.850000d,3.350000d), (1.730000d,3.390000d)}'
  OR pos @ spoly '{(2.290000d,3.850000d), (2.320000d,3.980000d), (2.350000d,3.870000d),
  (2.470000d,3.830000d), (2.340000d,3.790000d), (2.320000d,3.680000d), (2.280000d,3.790000d),
  (2.190000d,3.820000d)}'
  OR pos @ spoly '{(1.790000d,4.540000d), (1.840000d,4.740000d),
  (1.900000d,4.540000d), (2.060000d,4.490000d), (1.900000d,4.420000d), (1.840000d,4.260000d),
  (1.790000d,4.420000d), (1.630000d,4.480000d)}'
  OR pos @ spoly '{(2.030000d,4.590000d), (2.070000d,4.710000d), (2.110000d,4.590000d),
  (2.220000d,4.560000d), (2.120000d,4.530000d), (2.070000d,4.410000d), (2.030000d,4.530000d),
  (1.920000d,4.560000d)}'
  OR pos @ spoly '{(2.480000d,4.540000d), (2.510000d,4.640000d),
  (2.560000d,4.530000d), (2.650000d,4.510000d), (2.550000d,4.470000d), (2.520000d,4.350000d),
  (2.480000d,4.460000d), (2.370000d,4.500000d)}'
  OR pos @ spoly '{(1.820000d,4.780000d),
  (1.870000d,4.840000d), (1.900000d,4.780000d), (1.960000d,4.740000d), (1.910000d,4.710000d),
  (1.870000d,4.650000d), (1.820000d,4.710000d), (1.780000d,4.730000d)}'
  OR pos @ spoly '{(1.940000d,4.840000d), (1.960000d,4.890000d), (2.000000d,4.830000d),
  (2.030000d,4.820000d), (2.000000d,4.790000d), (1.970000d,4.740000d), (1.940000d,4.790000d),
  (1.900000d,4.810000d)}'
  OR pos @ spoly '{(2.250000d,4.970000d), (2.290000d,5.090000d), (2.340000d,4.980000d),
  (2.440000d,4.940000d), (2.330000d,4.900000d), (2.300000d,4.800000d), (2.270000d,4.900000d),
  (2.160000d,4.930000d)}'
  OR pos @ spoly '{(2.340000d,5.660000d), (2.360000d,5.710000d),
  (2.400000d,5.660000d), (2.470000d,5.640000d), (2.420000d,5.590000d), (2.370000d,5.520000d),
  (2.330000d,5.590000d), (2.270000d,5.620000d)}'
  OR pos @ spoly '{(1.720000d,5.180000d),
  (1.770000d,5.210000d), (1.830000d,5.210000d), (1.870000d,5.180000d), (1.880000d,5.120000d),
  (1.860000d,5.060000d), (1.830000d,5.040000d), (1.780000d,5.040000d), (1.720000d,5.060000d),
  (1.710000d,5.090000d)}'
  OR pos @ spoly '{(2.090000d,4.760000d), (2.130000d,4.870000d), (2.160000d,4.770000d),
  (2.270000d,4.740000d), (2.170000d,4.690000d), (2.130000d,4.590000d), (2.100000d,4.690000d),
  (1.990000d,4.720000d)}'
)