| 1 | = Subsets in Petascope = |
| 2 | |
| 3 | 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. |
| 4 | |
| 5 | In general, pixel validity is meant as half open `[min,max)`, whereas the subsets are meant as closed intervals `[a,b]`. |
| 6 | Subsets with extent smaller than a pixel resolution return the pixel(s) that include(s) it. |
| 7 | |
| 8 | This is probably better understood by means of examples: |
| 9 | |
| 10 | {{{ |
| 11 | -------------------- |
| 12 | mean_summer_airtemp (EPSG:4326) |
| 13 | [0:885, 0:710] |
| 14 | x(111.975, 156.275) |
| 15 | y(-44.525, -8.975) |
| 16 | res(0.05, 0.05) |
| 17 | -------------------- |
| 18 | |
| 19 | 130.975 131.025 131.075 131.125 131.175 |
| 20 | X: ...o--------o--------o--------o--------o... |
| 21 | cell380 cell381 cell382 cell383 |
| 22 | [s1] |
| 23 | [== s2 ==] |
| 24 | [==== s3 ====] |
| 25 | [======== s4 =======] |
| 26 | [=================== s5 ===================] (BEYOND BBOX) |
| 27 | |
| 28 | -22.975 -22.925 -22.875 -22.825 -22.795 |
| 29 | Y: ...o--------o--------o--------o--------o... |
| 30 | cell280 cell279 cell278 cell277 |
| 31 | [s1] |
| 32 | [== s2 ==] |
| 33 | [==== s3 ====] |
| 34 | [======== s4 =======] |
| 35 | [=================== s5 ===================] (BEYOND BBOX) |
| 36 | |
| 37 | s1: m[380:380, 280:280] |
| 38 | - for m in (mean_summer_airtemp) return encode(trim(m, {x(131:131.01), y(-22.951:-22.95)}),"csv") |
| 39 | - http://localhost:8080/petascope/wcs2? |
| 40 | service=WCS&version=2.0.0&request=GetCoverage&coverageid=mean_summer_airtemp& |
| 41 | subset=x(131,131.01)&subset=y(-22.951,-22.95) |
| 42 | |
| 43 | s2: m[380:381, 279:280] |
| 44 | - for m in (mean_summer_airtemp) return encode(trim(m, {x(130.975:131.025), y(-22.975:-22.925)}),"csv") |
| 45 | - http://localhost:8080/petascope/wcs2? |
| 46 | service=WCS&version=2.0.0&request=GetCoverage&coverageid=mean_summer_airtemp& |
| 47 | subset=x(130.975,131.025)&subset=y(-22.975,-22.925) |
| 48 | |
| 49 | s3: m[380:381, 279:280] |
| 50 | - for m in (mean_summer_airtemp) return encode(trim(m, {x(131:131.05), y(-22.95:-22.9)}),"csv") |
| 51 | - http://localhost:8080/petascope/wcs2? |
| 52 | service=WCS&version=2.0.0&request=GetCoverage&coverageid=mean_summer_airtemp& |
| 53 | subset=x(131,131.05)&subset=y(-22.95,-22.9) |
| 54 | |
| 55 | s4: m[380:382, 278:280] |
| 56 | - for m in (mean_summer_airtemp) return encode(trim(m, {x(131:131.1), y(-22.95:-22.85)}),"csv") |
| 57 | - http://localhost:8080/petascope/wcs2? |
| 58 | service=WCS&version=2.0.0&request=GetCoverage&coverageid=mean_summer_airtemp& |
| 59 | subset=x(131,131.1)&subset=y(-22.95,-22.85) |
| 60 | |
| 61 | s5: m[0:885, 0:710] |
| 62 | - for m in (mean_summer_airtemp) return encode(trim(m, {x(100:200), y(-50:50)}),"csv") |
| 63 | - http://localhost:8080/petascope/wcs2? |
| 64 | service=WCS&version=2.0.0&request=GetCoverage&coverageid=mean_summer_airtemp& |
| 65 | subset=x(100,200)&subset=y(-50,50) |
| 66 | |
| 67 | -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= |
| 68 | |
| 69 | TIME AXIS EXAMPLE: |
| 70 | |
| 71 | 09h20 10h20 11h20 12h20 13h20 |
| 72 | T: o--------o--------o--------o--------o |
| 73 | cell0 cell1 cell2 cell3 |
| 74 | [s1] |
| 75 | [== s2 ==] |
| 76 | [==== s3 ====] |
| 77 | [======== s4 =======] |
| 78 | [=================== s5 ===================] |
| 79 | |
| 80 | ------------------------------------------------------------------------------------------------ |
| 81 | s1: (9h25,9h30) --> [LOx:HIx, LOy:HIy, 0:0] |
| 82 | - http://localhost:8080/petascope/wcs2? |
| 83 | service=WCS&version=2.0.0&request=GetCoverage&coverageid=MODIS_33N_2010170_WGS84& |
| 84 | subset=x(10,11)&subset=y(45,46)&subset=t(2010-06-19T09:25,2010-06-19T09:30) |
| 85 | - for c in (MODIS_33N_2010170_WGS84) return encode( |
| 86 | trim( |
| 87 | c,{t:"http://www.opengis.net/def/crs/ISO/0/8601" ("2010-06-19T09:25":"2010-06-19T09:30"), |
| 88 | y:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (45:46), |
| 89 | x:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (10:11)}), |
| 90 | "csv") |
| 91 | ------------------------------------------------------------------------------------------------ |
| 92 | s2: (9h20,10h20) --> [LOx:HIx, LOy:HIy, 0:1] |
| 93 | - http://localhost:8080/petascope/wcs2? |
| 94 | service=WCS&version=2.0.0&request=GetCoverage&coverageid=MODIS_33N_2010170_WGS84& |
| 95 | subset=x(10,11)&subset=y(45,46)&subset=t(2010-06-19T09:20,2010-06-19T10:20) |
| 96 | - for c in (MODIS_33N_2010170_WGS84) return encode( |
| 97 | trim( |
| 98 | c,{t:"http://www.opengis.net/def/crs/ISO/0/8601" ("2010-06-19T09:20":"2010-06-19T10:20"), |
| 99 | y:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (45:46), |
| 100 | x:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (10:11)}), |
| 101 | "csv") |
| 102 | ------------------------------------------------------------------------------------------------ |
| 103 | s3: (10h00,11h00) --> [LOx:HIx, LOy:HIy, 0:1] |
| 104 | - http://localhost:8080/petascope/wcs2? |
| 105 | service=WCS&version=2.0.0&request=GetCoverage&coverageid=MODIS_33N_2010170_WGS84& |
| 106 | subset=x(10,11)&subset=y(45,46)&subset=t(2010-06-19T10:00,2010-06-19T11:00) |
| 107 | - for c in (MODIS_33N_2010170_WGS84) return encode( |
| 108 | trim( |
| 109 | c,{t:"http://www.opengis.net/def/crs/ISO/0/8601" ("2010-06-19T10:00":"2010-06-19T11:00"), |
| 110 | y:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (45:46), |
| 111 | x:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (10:11)}), |
| 112 | "csv") |
| 113 | ------------------------------------------------------------------------------------------------ |
| 114 | s4: (9h30,11h50) --> [LOx:HIx, LOy:HIy, 0:2] |
| 115 | - http://localhost:8080/petascope/wcs2? |
| 116 | service=WCS&version=2.0.0&request=GetCoverage&coverageid=MODIS_33N_2010170_WGS84& |
| 117 | subset=x(10,11)&subset=y(45,46)&subset=t(2010-06-19T09:30,2010-06-19T11:50) |
| 118 | - for c in (MODIS_33N_2010170_WGS84) return encode( |
| 119 | trim( |
| 120 | c,{t:"http://www.opengis.net/def/crs/ISO/0/8601" ("2010-06-19T09:30":"2010-06-19T11:50"), |
| 121 | y:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (45:46), |
| 122 | x:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (10:11)}), |
| 123 | "csv") |
| 124 | ------------------------------------------------------------------------------------------------ |
| 125 | s5: (9h00,14h00) --> [LOx:HIx, LOy:HIy, 0:3] |
| 126 | - http://localhost:8080/petascope/wcs2? |
| 127 | service=WCS&version=2.0.0&request=GetCoverage&coverageid=MODIS_33N_2010170_WGS84& |
| 128 | subset=x(10,11)&subset=y(45,46)&subset=t(2010-06-19T09:00,2010-06-19T14:00) |
| 129 | - for c in (MODIS_33N_2010170_WGS84) return encode( |
| 130 | trim( |
| 131 | c,{t:"http://www.opengis.net/def/crs/ISO/0/8601" ("2010-06-19T09:00":"2010-06-19T14:00"), |
| 132 | y:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (45:46), |
| 133 | x:"http://kahlua.eecs.jacobs-university.de:8080/def/crs/EPSG/0/4326" (10:11)}), |
| 134 | "csv") |
| 135 | ------------------------------------------------------------------------------------------------ |
| 136 | }}} |