Strabon
changeset 788:2fcae7f5d97d DiffDateTime
Insert a working query for discovering fires
author | George Garbis <ggarbis@di.uoa.gr> |
---|---|
date | Fri Dec 07 22:23:52 2012 +0200 (2012-12-07) |
parents | ecdbb91999e8 |
children | 35ee9c800a47 |
files | examples/teleios/discoverFires-start.rq examples/teleios/discoverFires.rq |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/examples/teleios/discoverFires-start.rq Fri Dec 07 22:23:52 2012 +0200 1.3 @@ -0,0 +1,72 @@ 1.4 +#Το πρώτο query εφαρμόζεται με σκοπό τον περιορισμό τoυ θορύβου, 1.5 +#εντοπίζοντας την χρονική αστάθεια ("αναλαμπές") σε πολύγωνα 1.6 +#καμένων εκτάσεων. Υλοποιήσαμε και εφαρμόσαμε το ακόλουθο χρονικό φίλτρο 1.7 +#στα δεδομένα (με αναφορές στον πηγαίο κώδικα): 1.8 +#- Στις γραμμές 1574..1614, για κάθε πολύγωνο, ομαδοποιούμε τις 1.9 +#καταγραφές οι οποίες δεν απέχουν μεταξύ τους (επόμενη-προηγούμενη) 1.10 +#περισσότερο από την τιμή της μεταβλητής persistence. 1.11 +#- Στην συνέχεια εξετάζουμε κάθε τέτοια ομάδα (κοντινών στο χώρο 1.12 +#καταγραφών), και ελέγχουμε εάν το πλήθος τους (για κάθε τέτοια ομάδα) 1.13 +#είναι μικρότερο ή ίσο από την τιμή της μεταβλητής repeat_in_persistence 1.14 +#(γραμμές 1614..1630). 1.15 +#- Αυτές τις καταγραφές τις διαγράφουμε θεωρώντας τις θόρυβο 1.16 + 1.17 +# ../../scripts/strabon -db testNOANewRefinements query "`./instantiate.sh -s MSG2 -c StaticThresholds -m '2012-08-24T12:00:00' -M '2012-08-24T12:40:00' -p 10 -r 3 discoverFires-start.rq | grep -v '#[[:alpha:]]' | grep -v '#[ \(-]' | sed 's/"/\\\\"/g'`" TSV 1.18 + 1.19 +PREFIX noa: <http://teleios.di.uoa.gr/ontologies/noaOntology.owl#> 1.20 +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 1.21 +PREFIX strdf: <http://strdf.di.uoa.gr/ontology#> 1.22 +PREFIX strdf-ext: <http://strdf.di.uoa.gr/extensions/ontology#> 1.23 +PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 1.24 +PREFIX gag: <http://geo.linkedopendata.gr/greekadministrativeregion/ontology#> 1.25 + 1.26 +SELECT (substr(str(?hStartTime), 12, 5) as ?start) (substr(str(max(?hTime)), 12, 5) as ?end) ?geo 1.27 +WHERE { 1.28 + # -- FIND HOTSPOTS THAT DEFINE THE START OF A FIRE (GROUP ALA THEMOS) -- 1.29 + # Retrieve all hotstpots in time range... 1.30 + ?hStart noa:hasAcquisitionTime ?hStartTime ; 1.31 + noa:hasGeometry ?geo ; 1.32 + noa:producedFromProcessingChain "PROCESSING_CHAIN"^^xsd:string ; 1.33 + noa:isDerivedFromSensor "SENSOR"^^xsd:string . 1.34 + FILTER("MIN_ACQUISITION_TIME"^^xsd:dateTime <= ?hStartTime && ?hStartTime <= "MAX_ACQUISITION_TIME"^^xsd:dateTime). 1.35 + # ... narrow down results so that any previous hotspots is detected at least PERSISTENCE mins earlier 1.36 + OPTIONAL { 1.37 + ?hPrevious noa:hasAcquisitionTime ?hPreviousTime ; 1.38 + noa:hasGeometry ?geo ; 1.39 + noa:producedFromProcessingChain "PROCESSING_CHAIN"^^xsd:string ; 1.40 + noa:isDerivedFromSensor "SENSOR"^^xsd:string . 1.41 + FILTER("MIN_ACQUISITION_TIME"^^xsd:dateTime <= ?hStartTime && ?hStartTime <= "MAX_ACQUISITION_TIME"^^xsd:dateTime). 1.42 + FILTER(strdf-ext:diffDateTime(?hStartTime, ?hPreviousTime) <= PERSISTENCE*60000 && ?hStartTime > ?hPreviousTime). 1.43 + } 1.44 + FILTER(!bound(?hPrevious)) . 1.45 + 1.46 + # FIND HOTSPOTS AFTER A FIRE STARTING TIME 1.47 + ?h noa:hasAcquisitionTime ?hTime; 1.48 + noa:hasGeometry ?hGeo; 1.49 + noa:producedFromProcessingChain "PROCESSING_CHAIN"^^xsd:string ; 1.50 + noa:isDerivedFromSensor "SENSOR"^^xsd:string . 1.51 + FILTER("MIN_ACQUISITION_TIME"^^xsd:dateTime <= ?hStartTime && ?hStartTime <= "MAX_ACQUISITION_TIME"^^xsd:dateTime). 1.52 + FILTER(?hTime >= ?hStartTime). 1.53 + 1.54 + # OPTIONALLY FIND ANOTHER STARTING TIME BEFORE ?h and after ?hStart 1.55 + OPTIONAL { 1.56 + ?hStart2 noa:hasAcquisitionTime ?hStartTime2 ; 1.57 + noa:hasGeometry ?geo ; 1.58 + noa:producedFromProcessingChain "PROCESSING_CHAIN"^^xsd:string ; 1.59 + noa:isDerivedFromSensor "SENSOR"^^xsd:string . 1.60 + FILTER("MIN_ACQUISITION_TIME"^^xsd:dateTime <= ?hStartTime2 && ?hStartTime2 <= "MAX_ACQUISITION_TIME"^^xsd:dateTime). 1.61 + OPTIONAL { 1.62 + ?hPrevious2 noa:hasAcquisitionTime ?hPreviousTime2 ; 1.63 + noa:hasGeometry ?geo ; 1.64 + noa:producedFromProcessingChain "PROCESSING_CHAIN"^^xsd:string ; 1.65 + noa:isDerivedFromSensor "SENSOR"^^xsd:string . 1.66 + FILTER("MIN_ACQUISITION_TIME"^^xsd:dateTime <= ?hStartTime2 && ?hStartTime2 <= "MAX_ACQUISITION_TIME"^^xsd:dateTime). 1.67 + FILTER( strdf-ext:diffDateTime(?hStartTime2, ?hPreviousTime2) <= PERSISTENCE*60000 && ?hStartTime2 > ?hPreviousTime2). 1.68 + } 1.69 + FILTER(!bound(?hPrevious2)) . 1.70 + FILTER(?hStartTime < ?hStartTime2 && ?hStartTime2 <= ?hTime). 1.71 + } 1.72 + FILTER(!bound(?hStart2)) 1.73 +} 1.74 +GROUP BY ?hStartTime ?geo 1.75 +HAVING (count(?h) >= REPEAT_IN_PERS)
2.1 --- a/examples/teleios/discoverFires.rq Wed Dec 05 19:23:23 2012 +0200 2.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 2.3 @@ -1,85 +0,0 @@ 2.4 -#Το πρώτο query εφαρμόζεται με σκοπό τον περιορισμό τoυ θορύβου, 2.5 -#εντοπίζοντας την χρονική αστάθεια ("αναλαμπές") σε πολύγωνα 2.6 -#καμένων εκτάσεων. Υλοποιήσαμε και εφαρμόσαμε το ακόλουθο χρονικό φίλτρο 2.7 -#στα δεδομένα (με αναφορές στον πηγαίο κώδικα): 2.8 -#- Στις γραμμές 1574..1614, για κάθε πολύγωνο, ομαδοποιούμε τις 2.9 -#καταγραφές οι οποίες δεν απέχουν μεταξύ τους (επόμενη-προηγούμενη) 2.10 -#περισσότερο από την τιμή της μεταβλητής persistence. 2.11 -#- Στην συνέχεια εξετάζουμε κάθε τέτοια ομάδα (κοντινών στο χώρο 2.12 -#καταγραφών), και ελέγχουμε εάν το πλήθος τους (για κάθε τέτοια ομάδα) 2.13 -#είναι μικρότερο ή ίσο από την τιμή της μεταβλητής repeat_in_persistence 2.14 -#(γραμμές 1614..1630). 2.15 -#- Αυτές τις καταγραφές τις διαγράφουμε θεωρώντας τις θόρυβο 2.16 - 2.17 - 2.18 -PREFIX noa: <http://teleios.di.uoa.gr/ontologies/noaOntology.owl#> 2.19 -PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> 2.20 -PREFIX strdf: <http://strdf.di.uoa.gr/ontology#> 2.21 -PREFIX strdf-ext: <http://strdf.di.uoa.gr/extensions/ontology#> 2.22 -PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> 2.23 -PREFIX gag: <http://geo.linkedopendata.gr/greekadministrativeregion/ontology#> 2.24 - 2.25 -SELECT ?hStartTime ?hMinEndTime ?geo 2.26 -WHERE { 2.27 - ?h noa:hasGeometry ?geo. 2.28 - FILTER(?hStartTime <= ?hTime && ?hTime <= ?hMinEndTime). 2.29 - { 2.30 - SELECT ?hStartTime ?hMinEndTime ?hTime ?geo ?h 2.31 - WHERE 2.32 - { 2.33 - ?h noa:hasAcquisitionTime ?hTime ; 2.34 - noa:producedFromProcessingChain "DynamicThresholds"^^xsd:string ; 2.35 - noa:isDerivedFromSensor "MSG1_RSS"^^xsd:string . 2.36 - FILTER("2012-07-26T00:00:00"^^xsd:dateTime <= ?hTime && ?hTime <= "2012-07-27T00:00:00"^^xsd:dateTime) 2.37 - 2.38 - { 2.39 - SELECT ?hStartTime (min(?hEndTime) as ?hMinEndTime) ?geo 2.40 - WHERE { 2.41 - # Retrieve all hotstpots in time range 2.42 - ?hStart noa:hasAcquisitionTime ?hStartTime ; 2.43 - noa:hasGeometry ?geo ; 2.44 - noa:producedFromProcessingChain "DynamicThresholds"^^xsd:string ; 2.45 - noa:isDerivedFromSensor "MSG1_RSS"^^xsd:string . 2.46 - FILTER("2012-07-26T00:00:00"^^xsd:dateTime <= ?hStartTime && ?hStartTime <= "2012-07-27T00:00:00"^^xsd:dateTime) 2.47 - 2.48 - # Filter hotspots whose previous hotspot has been detected at least PERSISTENCE msecs before 2.49 - OPTIONAL { 2.50 - ?hPrevious noa:hasAcquisitionTime ?hPreviousTime ; 2.51 - noa:hasGeometry ?geo ; 2.52 - noa:producedFromProcessingChain "DynamicThresholds"^^xsd:string ; 2.53 - noa:isDerivedFromSensor "MSG1_RSS"^^xsd:string . 2.54 - FILTER("2012-07-26T00:00:00"^^xsd:dateTime <= ?hPreviousTime && ?hPreviousTime <= "2012-07-27T00:00:00"^^xsd:dateTime) 2.55 - FILTER( strdf-ext:diffDateTime(?hStartTime, ?hPreviousTime) <= "10"^^xsd:long && ?hStartTime > ?hPreviousTime). 2.56 - } 2.57 - FILTER(!bound(?hPrevious)) . 2.58 - 2.59 - # Retrieve all hotstpots in time range 2.60 - ?hEnd noa:hasAcquisitionTime ?hEndTime ; 2.61 - noa:hasGeometry ?geo ; 2.62 - noa:producedFromProcessingChain "DynamicThresholds"^^xsd:string ; 2.63 - noa:isDerivedFromSensor "MSG1_RSS"^^xsd:string . 2.64 - FILTER("2012-07-26T00:00:00"^^xsd:dateTime <= ?hEndTime && ?hEndTime <= "2012-07-27T00:00:00"^^xsd:dateTime) 2.65 - 2.66 - # Filter hotspots whose next hotspot has been detected at least PERSISTENCE msecs after 2.67 - OPTIONAL { 2.68 - ?hAfter noa:hasAcquisitionTime ?hAfterTime ; 2.69 - noa:hasGeometry ?geo ; 2.70 - noa:producedFromProcessingChain "DynamicThresholds"^^xsd:string ; 2.71 - noa:isDerivedFromSensor "MSG1_RSS"^^xsd:string . 2.72 - FILTER("2012-07-26T00:00:00"^^xsd:dateTime <= ?hAfterTime && ?hAfterTime <= "2012-07-27T00:00:00"^^xsd:dateTime) 2.73 - FILTER( strdf-ext:diffDateTime(?hAfterTime, ?hEndTime) <= "10"^^xsd:long && ?hAfterTime > ?hEndTime). 2.74 - } 2.75 - FILTER(!bound(?hAfter)) . 2.76 - 2.77 - FILTER(?hStartTime < ?hEndTime). 2.78 - 2.79 - 2.80 - } 2.81 - GROUP BY ?hStartTime ?geo 2.82 - ORDER BY ?hStartTime 2.83 - }. 2.84 - } 2.85 - }. 2.86 -} 2.87 -GROUP BY ?geo ?hStartTime ?hMinEndTime 2.88 -HAVING (count(?h) > 0)