= Subsets in Petascope = This page serves as reference point for the conclusions that have been reached in the discussion '''rasdaman-users::Subsets and pixel-domain indexes''' (''Alan'', ''Peter'', ''Stephan'', ''Marcus'' and ''Piero'' | July 2012), regarding how subsets should be interpreted by Petascope. In general, pixel validity is meant as half open `[min,max)`, whereas the subsets are meant as closed intervals `[a,b]`. Subsets with extent smaller than a pixel resolution return the pixel(s) that include(s) it. This is probably better understood by means of examples: {{{ #!sh -------------------- mean_summer_airtemp (EPSG:4326) [0:885, 0:710] x(111.975, 156.275) y(-44.525, -8.975) res(0.05, 0.05) -------------------- 130.975 131.025 131.075 131.125 131.175 X: ...o--------o--------o--------o--------o... cell380 cell381 cell382 cell383 [s1] [== s2 ==] [==== s3 ====] [======== s4 =======] [=================== s5 ===================] (BEYOND BBOX) -22.975 -22.925 -22.875 -22.825 -22.795 Y: ...o--------o--------o--------o--------o... cell280 cell279 cell278 cell277 [s1] [== s2 ==] [==== s3 ====] [======== s4 =======] [=================== s5 ===================] (BEYOND BBOX) s1: m[380:380, 280:280] - for m in (mean_summer_airtemp) return encode(trim(m, {x(131:131.01), y(-22.951:-22.95)}),"csv") - http://localhost:8080/petascope/wcs2? service=WCS&version=2.0.0&request=GetCoverage&coverageid=mean_summer_airtemp& subset=x(131,131.01)&subset=y(-22.951,-22.95) s2: m[380:381, 279:280] - for m in (mean_summer_airtemp) return encode(trim(m, {x(130.975:131.025), y(-22.975:-22.925)}),"csv") - http://localhost:8080/petascope/wcs2? service=WCS&version=2.0.0&request=GetCoverage&coverageid=mean_summer_airtemp& subset=x(130.975,131.025)&subset=y(-22.975,-22.925) s3: m[380:381, 279:280] - for m in (mean_summer_airtemp) return encode(trim(m, {x(131:131.05), y(-22.95:-22.9)}),"csv") - http://localhost:8080/petascope/wcs2? service=WCS&version=2.0.0&request=GetCoverage&coverageid=mean_summer_airtemp& subset=x(131,131.05)&subset=y(-22.95,-22.9) s4: m[380:382, 278:280] - for m in (mean_summer_airtemp) return encode(trim(m, {x(131:131.1), y(-22.95:-22.85)}),"csv") - http://localhost:8080/petascope/wcs2? service=WCS&version=2.0.0&request=GetCoverage&coverageid=mean_summer_airtemp& subset=x(131,131.1)&subset=y(-22.95,-22.85) s5: m[0:885, 0:710] - for m in (mean_summer_airtemp) return encode(trim(m, {x(100:200), y(-50:50)}),"csv") - http://localhost:8080/petascope/wcs2? service=WCS&version=2.0.0&request=GetCoverage&coverageid=mean_summer_airtemp& subset=x(100,200)&subset=y(-50,50) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= TIME AXIS EXAMPLE: 09h20 10h20 11h20 12h20 13h20 T: o--------o--------o--------o--------o cell0 cell1 cell2 cell3 [s1] [== s2 ==] [==== s3 ====] [======== s4 =======] [=================== s5 ===================] ------------------------------------------------------------------------------------------------ s1: (9h25,9h30) --> [LOx:HIx, LOy:HIy, 0:0] - http://localhost:8080/petascope/wcs2? service=WCS&version=2.0.0&request=GetCoverage&coverageid=MODIS_33N_2010170_WGS84& subset=x(10,11)&subset=y(45,46)&subset=t(2010-06-19T09:25,2010-06-19T09:30) - for c in (MODIS_33N_2010170_WGS84) return encode( trim( c,{t:"http://www.opengis.net/def/crs/ISO/0/8601" ("2010-06-19T09:25":"2010-06-19T09:30"), y:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (45:46), x:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (10:11)}), "csv") ------------------------------------------------------------------------------------------------ s2: (9h20,10h20) --> [LOx:HIx, LOy:HIy, 0:1] - http://localhost:8080/petascope/wcs2? service=WCS&version=2.0.0&request=GetCoverage&coverageid=MODIS_33N_2010170_WGS84& subset=x(10,11)&subset=y(45,46)&subset=t(2010-06-19T09:20,2010-06-19T10:20) - for c in (MODIS_33N_2010170_WGS84) return encode( trim( c,{t:"http://www.opengis.net/def/crs/ISO/0/8601" ("2010-06-19T09:20":"2010-06-19T10:20"), y:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (45:46), x:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (10:11)}), "csv") ------------------------------------------------------------------------------------------------ s3: (10h00,11h00) --> [LOx:HIx, LOy:HIy, 0:1] - http://localhost:8080/petascope/wcs2? service=WCS&version=2.0.0&request=GetCoverage&coverageid=MODIS_33N_2010170_WGS84& subset=x(10,11)&subset=y(45,46)&subset=t(2010-06-19T10:00,2010-06-19T11:00) - for c in (MODIS_33N_2010170_WGS84) return encode( trim( c,{t:"http://www.opengis.net/def/crs/ISO/0/8601" ("2010-06-19T10:00":"2010-06-19T11:00"), y:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (45:46), x:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (10:11)}), "csv") ------------------------------------------------------------------------------------------------ s4: (9h30,11h50) --> [LOx:HIx, LOy:HIy, 0:2] - http://localhost:8080/petascope/wcs2? service=WCS&version=2.0.0&request=GetCoverage&coverageid=MODIS_33N_2010170_WGS84& subset=x(10,11)&subset=y(45,46)&subset=t(2010-06-19T09:30,2010-06-19T11:50) - for c in (MODIS_33N_2010170_WGS84) return encode( trim( c,{t:"http://www.opengis.net/def/crs/ISO/0/8601" ("2010-06-19T09:30":"2010-06-19T11:50"), y:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (45:46), x:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (10:11)}), "csv") ------------------------------------------------------------------------------------------------ s5: (9h00,14h00) --> [LOx:HIx, LOy:HIy, 0:3] - http://localhost:8080/petascope/wcs2? service=WCS&version=2.0.0&request=GetCoverage&coverageid=MODIS_33N_2010170_WGS84& subset=x(10,11)&subset=y(45,46)&subset=t(2010-06-19T09:00,2010-06-19T14:00) - for c in (MODIS_33N_2010170_WGS84) return encode( trim( c,{t:"http://www.opengis.net/def/crs/ISO/0/8601" ("2010-06-19T09:00":"2010-06-19T14:00"), y:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (45:46), x:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (10:11)}), "csv") ------------------------------------------------------------------------------------------------ }}}