Hi
            Emilio,
         
        This
            is Christian, a colleague of Markus - the initial requester,
            who is currently out-of-office. Maybe I can answer your
            question.
         
        We’re
            using the GeoTools API to query the data. We basically do it
            in the same way as described in the geomesa-tutorial
          https://github.com/geomesa/geomesa-tutorials/blob/master/geomesa-tutorials-common/src/main/java/org/geomesa/example/transformations/GeoMesaQueryTutorial.java
         
        First,
            we build an org.geotools.data.Query instance using
            org.opengis.filter.FilterFactory2. We’re applying temporal
            and spatial constraints as well as a constraint on a custom
            attribute called VIN:
         
        Query query
            =
          new
            Query(typeName);
            List<Filter> filters = new
            ArrayList<>();
            
            FilterFactory2 filterFactory = CommonFactoryFinder.getFilterFactory2();
            
          //
              temporal filter:
            filters.add(filterFactory.between(
                  filterFactory.property(EventSimpleFeature.DATE_TIME_GROUP),
                  filterFactory.literal(dateFrom),
                  filterFactory.literal(dateTo)));
            
          //
              spatial filter:
            filters.add(filterFactory
                  .bbox(filterFactory.property(EventSimpleFeature.GEOMETRY),
                        boundingBox.getMinX(),
          boundingBox.getMinY(),
                        boundingBox.getMaxX(),
          boundingBox.getMaxY(),
          "EPSG:4326"));
            
          //
              vin filter:
            filters.add(filterFactory
                  .equals(filterFactory.property(EventSimpleFeature.VIN),
            filterFactory.literal(vin)));
            
            query.setFilter(filterFactory.and(filters));
            query.setPropertyNames(fieldNames);
          return
            query;
         
        With
            that query we then instantiate an
            org.geotools.data.FeatureReader to read the filtered
            (according the given query) entries:
         
        FeatureReader<SimpleFeatureType,
            SimpleFeature> reader =
          dataStore.getFeatureReader(query,
            Transaction.AUTO_COMMIT);
          while
            (reader.hasNext())
            {
               SimpleFeature feature = reader.next();
           // do
            something with the feature ...
            }
         
        Is
            that sufficient for a further analysis on your side?
         
        Thanks
            for your support!
         
        Best
            regards
        Christian
         
         
        
         
        Hello,
          
          Could you provide the code you're using to query
          programmatically?
          
          Thanks,
          
          Emilio
        
        
          Hello,
           
          In a current project
              we are using geomesa-fs-data-store for our
              network-measurements. We are collecting these
              network-measurements from driving vehicles.
           
          The issues is that we
              are facing a mismatch with returned data between
              “geomesa-fs export” and querying geomesa programmatically.
          This is the geomesa-fs
              export-command: ./geomesa-fs export -p
              ………./geomesa-data-store/ -f ModemState --cql
              "dtg>=2019-04-13T23:40:00Z AND
              dtg<=2019-04-14T01:00:00Z AND vin LIKE
              '%VINSYSTEMTEST1%'"
           
          This is the query from
              a debug-statement when querying geomesa programmatically:
          2019-05-08
              16:16:16.073 [http-nio-8130-exec-2] INFO 
              org.apache.parquet.filter2.compat.FilterCompat - Filtering
              using predicate: and(and(and(and(and(gteq(geom.x, -180.0),
              gteq(geom.y, -90.0)), lteq(geom.x, 180.0)), lteq(geom.y,
              90.0)), and(gteq(dtg, 1555198800000), lteq(dtg,
              1555203600000))), eq(vin, Binary{"VINSYSTEMTEST1"}))
           
          While the export
              returns 1 event, the programmatic query returns 0 events.
          The event is found in
              the programmatic case when extending the search-interval
              to an earlier time. E.g. from 2019-04-13T23:40:00Z to
              2019-04-13T00:40:00Z
           
          I am also attaching
              the test-data.
           
          We are using:
          Geomesa-fs-datastore_2.11:2.2.0
          Geomesa-fs-storage-parquet_2.11:2.2.0
          Partitioning-Scheme:
              daily, z2-2bit
           
          The storage-type is
              parquet on AWS S3.
           
          I hope you can help. Thanks,
          Markus
              Thamm
          
              If you are not the addressee, please inform us immediately
              that you have received this e-mail by mistake, and delete
              it. We thank you for your support.
          
          
              
              
          _______________________________________________
          geomesa-users mailing list
          geomesa-users@xxxxxxxxxxxxxxxx
          To change your delivery options, retrieve your password, or unsubscribe from this list, visit
          https://dev.locationtech.org/mailman/listinfo/geomesa-users