| | 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 | }}} |