[ https://issues.apache.org/jira/browse/SDAP-110?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Frank Greguska updated SDAP-110: -------------------------------- Description: Nexus needs to intelligently handle tiles that are wider than 180 degrees. Currently if a tile is ingested that is wider than 180 degrees the indexed shape is interpreted incorrectly resulting in missed searches. For example, if you create a Solr document that spans the longitude range: {\{curl -X POST }} \{{ 'http://127.0.0.1:8983/solr/nexustiles/update?_=1528823301125&boost=1.0&commitWithin=1000&overwrite=true&wt=json' }} \{{ -H 'Cache-Control: no-cache' }} \{{ -H 'Content-Type: application/json' }} \{{ -d '[{}} \{{ "table_s":"sea_surface_temp",}} \{{ "geo":"POLYGON((-179.000 -82.000, 179.000 -82.000, 179.000 -63.000, -179.000 -63.000, -179.000 -82.000))",}} \{{ "id":"7c9d9bd1-d96a-399e-a0b4-7071172ab1d4",}} \{{ "solr_id_s":"ICE_SHELF_DH_V1_1x1Monthly!7c9d9bd1-d96a-399e-a0b4-7071172ab1d4",}} \{{ "sectionSpec_s":"time:0:1,lat:0:20,lon:0:360",}} \{{ "dataset_s":"ICE_SHELF_DH_V1_1x1Monthly",}} \{{ "granule_s":"1x1regrid-ice_shelf_dh_v1.nc",}} \{{ "tile_var_name_s":"height_filt",}} \{{ "tile_min_lon":-179.0,}} \{{ "tile_max_lon":179.0,}} \{{ "tile_min_lat":-82.0,}} \{{ "tile_max_lat":-63.0,}} \{{ "tile_min_time_dt":"1994-01-14T23:59:59Z",}} \{{ "tile_max_time_dt":"1994-01-14T23:59:59Z",}} \{{ "tile_min_val_d":0.0,}} \{{ "tile_max_val_d":0.0,}} \{{ "tile_avg_val_d":0.0,}} \{{ "tile_count_i":494}} {{}]'}} And then try to query using a box that should be within the bounds: {{curl -X GET \}} {{ 'http://127.0.0.1:8983/solr/nexustiles/select?indent=on&q=dataset_s:ICE_SHELF_DH_V1_1x1Monthly&shard.keys=ICE_SHELF_DH_V1_1x1Monthly%21&fl=%2A&fq=\{%21frange+l%3D0+u%3D0}ms%28tile_min_time_dt,tile_max_time_dt%29,tile_count_i:[1+TO+%2A],geo:[-78.000,-14.000%20TO%20-74.000,15.000]&rows=1&wt=json&debug=query' \}} {{ -H 'Cache-Control: no-cache' }} You will get 0 results. was: Nexus needs to intelligently handle tiles that are wider than 180 degrees. Currently if a tile is ingested that is wider than 180 degrees the indexed shape is interpreted incorrectly resulting in missed searches. For example, if you create a Solr document that spans the longitude range: {{curl -X POST \}} {{ 'http://127.0.0.1:8983/solr/nexustiles/update?_=1528823301125&boost=1.0&commitWithin=1000&overwrite=true&wt=json' \}} {{ -H 'Cache-Control: no-cache' \}} {{ -H 'Content-Type: application/json' \}} {{ -d '[{}} {{ "table_s":"sea_surface_temp",}} {{ "geo":"POLYGON((-179.000 -82.000, 179.000 -82.000, 179.000 -63.000, -179.000 -63.000, -179.000 -82.000))",}} {{ "id":"7c9d9bd1-d96a-399e-a0b4-7071172ab1d4",}} {{ "solr_id_s":"ICE_SHELF_DH_V1_1x1Monthly!7c9d9bd1-d96a-399e-a0b4-7071172ab1d4",}} {{ "sectionSpec_s":"time:0:1,lat:0:20,lon:0:360",}} {{ "dataset_s":"ICE_SHELF_DH_V1_1x1Monthly",}} {{ "granule_s":"1x1regrid-ice_shelf_dh_v1.nc",}} {{ "tile_var_name_s":"height_filt",}} {{ "tile_min_lon":-179.0,}} {{ "tile_max_lon":179.0,}} {{ "tile_min_lat":-82.0,}} {{ "tile_max_lat":-63.0,}} {{ "tile_min_time_dt":"1994-01-14T23:59:59Z",}} {{ "tile_max_time_dt":"1994-01-14T23:59:59Z",}} {{ "tile_min_val_d":0.0,}} {{ "tile_max_val_d":0.0,}} {{ "tile_avg_val_d":0.0,}} {{ "tile_count_i":494}} {{}]'}} And then try to query using a box that should be within the bounds: {{curl -X GET \}} {{ 'http://127.0.0.1:8983/solr/nexustiles/select?indent=on&q=dataset_s:ICE_SHELF_DH_V1_1x1Monthly&shard.keys=ICE_SHELF_DH_V1_1x1Monthly%21&fl=%2A&fq=\{%21frange+l%3D0+u%3D0}ms%28tile_min_time_dt,tile_max_time_dt%29,tile_count_i:[1+TO+%2A],geo:[-78.000,-14.000%20TO%20-74.000,15.000]&rows=1&wt=json&debug=query' \}} {{ -H 'Cache-Control: no-cache'}} You will get 0 results. > Need to handle tiles wider than 180 degrees > ------------------------------------------- > > Key: SDAP-110 > URL: https://issues.apache.org/jira/browse/SDAP-110 > Project: Apache Science Data Analytics Platform > Issue Type: Improvement > Reporter: Frank Greguska > Priority: Major > > Nexus needs to intelligently handle tiles that are wider than 180 degrees. > Currently if a tile is ingested that is wider than 180 degrees the indexed > shape is interpreted incorrectly resulting in missed searches. > For example, if you create a Solr document that spans the longitude range: > {\{curl -X POST }} > \{{ > 'http://127.0.0.1:8983/solr/nexustiles/update?_=1528823301125&boost=1.0&commitWithin=1000&overwrite=true&wt=json' > }} > \{{ -H 'Cache-Control: no-cache' }} > \{{ -H 'Content-Type: application/json' }} > \{{ -d '[{}} > \{{ "table_s":"sea_surface_temp",}} > \{{ "geo":"POLYGON((-179.000 -82.000, 179.000 -82.000, 179.000 -63.000, > -179.000 -63.000, -179.000 -82.000))",}} > \{{ "id":"7c9d9bd1-d96a-399e-a0b4-7071172ab1d4",}} > \{{ > "solr_id_s":"ICE_SHELF_DH_V1_1x1Monthly!7c9d9bd1-d96a-399e-a0b4-7071172ab1d4",}} > \{{ "sectionSpec_s":"time:0:1,lat:0:20,lon:0:360",}} > \{{ "dataset_s":"ICE_SHELF_DH_V1_1x1Monthly",}} > \{{ "granule_s":"1x1regrid-ice_shelf_dh_v1.nc",}} > \{{ "tile_var_name_s":"height_filt",}} > \{{ "tile_min_lon":-179.0,}} > \{{ "tile_max_lon":179.0,}} > \{{ "tile_min_lat":-82.0,}} > \{{ "tile_max_lat":-63.0,}} > \{{ "tile_min_time_dt":"1994-01-14T23:59:59Z",}} > \{{ "tile_max_time_dt":"1994-01-14T23:59:59Z",}} > \{{ "tile_min_val_d":0.0,}} > \{{ "tile_max_val_d":0.0,}} > \{{ "tile_avg_val_d":0.0,}} > \{{ "tile_count_i":494}} > {{}]'}} > > And then try to query using a box that should be within the bounds: > > {{curl -X GET \}} > {{ > 'http://127.0.0.1:8983/solr/nexustiles/select?indent=on&q=dataset_s:ICE_SHELF_DH_V1_1x1Monthly&shard.keys=ICE_SHELF_DH_V1_1x1Monthly%21&fl=%2A&fq=\{%21frange+l%3D0+u%3D0}ms%28tile_min_time_dt,tile_max_time_dt%29,tile_count_i:[1+TO+%2A],geo:[-78.000,-14.000%20TO%20-74.000,15.000]&rows=1&wt=json&debug=query' > \}} > {{ -H 'Cache-Control: no-cache' }} > > You will get 0 results. -- This message was sent by Atlassian JIRA (v7.6.3#76005)