Пример #1
0
    def make_fes_filter(self):
        '''
        Generates the filter for querying the IOOS database
        '''
        begin, end = fes_date_filter(self.start, self.stop)
        kw = dict(wildCard='*',
                  escapeChar='\\',
                  singleChar='?',
                  propertyname='apiso:AnyText')
        if len(self.target) > 1:
            prop_filt = fes.Or([
                fes.PropertyIsLike(literal=('*%s*' % val), **kw)
                for val in self.target
            ])
        else:
            prop_filt = fes.PropertyIsLike(literal=(self.target[0]), **kw)

        if self.models == True:
            self.filter_list = [
                fes.And([
                    self.bbox_crs, begin, end, prop_filt,
                    fes.PropertyIsLike(literal=('*%s*' % 'forecast'), **kw),
                    fes.Not([fes.PropertyIsLike(literal='*cdip', **kw)]),
                    fes.Not([fes.PropertyIsLike(literal='*grib*', **kw)])
                ])
            ]
        else:
            self.filter_list = [
                fes.And([
                    self.bbox_crs, begin, end, prop_filt,
                    fes.Not([fes.PropertyIsLike(literal='*cdip', **kw)]),
                    fes.Not([fes.PropertyIsLike(literal='*grib*', **kw)])
                ])
            ]
Пример #2
0
def make_filter(config, ):
    kw = {
        "wildCard": "*",
        "escapeChar": "\\",
        "singleChar": "?",
        "propertyname": "apiso:Subject",
    }

    if len(config["cf_names"]) > 1:
        or_filt = fes.Or([
            fes.PropertyIsLike(literal=("*%s*" % val), **kw)
            for val in config["cf_names"]
        ])
    else:
        or_filt = fes.PropertyIsLike(literal=("*%s*" % config["cf_names"][0]),
                                     **kw)

    kw.update({"propertyname": "apiso:AnyText"})
    not_filt = fes.Not([fes.PropertyIsLike(literal="*cdip*", **kw)])

    begin, end = fes_date_filter(config["date"]["start"],
                                 config["date"]["stop"])
    bbox_crs = fes.BBox(config["region"]["bbox"], crs=config["region"]["crs"])
    filter_list = [fes.And([bbox_crs, begin, end, or_filt, not_filt])]
    return filter_list
def make_filter(config):
    from owslib import fes
    from ioos_tools.ioos import fes_date_filter

    kw = dict(
        wildCard="*", escapeChar="\\", singleChar="?", propertyname="apiso:AnyText"
    )

    or_filt = fes.Or(
        [fes.PropertyIsLike(literal=("*%s*" % val), **kw) for val in config["cf_names"]]
    )

    not_filt = fes.Not([fes.PropertyIsLike(literal="GRIB-2", **kw)])

    begin, end = fes_date_filter(config["date"]["start"], config["date"]["stop"])
    bbox_crs = fes.BBox(config["region"]["bbox"], crs=config["region"]["crs"])
    filter_list = [fes.And([bbox_crs, begin, end, or_filt, not_filt])]
    return filter_list
Пример #4
0
kw = dict(wildCard='*',
          escapeChar='\\',
          singleChar='?',
          propertyname='apiso:AnyText')

or_filt = fes.Or(
    [fes.PropertyIsLike(literal=('*%s*' % val), **kw) for val in model_names])

kw = dict(wildCard='*',
          escapeChar='\\',
          singleChar='?',
          propertyname='apiso:ServiceType')

serviceType = fes.PropertyIsLike(literal=('*%s*' % service_type), **kw)

begin, end = fes_date_filter(start, stop)
bbox_crs = fes.BBox(bbox, crs=crs)

filter_list = [
    fes.And([
        bbox_crs,  # bounding box
        begin,
        end,  # start and end date
        or_filt,  # or conditions (CF variable names)
        serviceType  # search only for datasets that have WMS services
    ])
]

# In[9]:

from owslib.csw import CatalogueServiceWeb
Пример #5
0
from owslib import fes
from ioos_tools.ioos import fes_date_filter

kw = dict(wildCard='*', escapeChar='\\',
          singleChar='?', propertyname='apiso:AnyText')

or_filt = fes.Or([fes.PropertyIsLike(literal=('*%s*' % val), **kw)
                  for val in model_names])

kw = dict(wildCard='*', escapeChar='\\',
          singleChar='?', propertyname='apiso:ServiceType')

serviceType = fes.PropertyIsLike(literal=('*%s*' % service_type), **kw)


begin, end = fes_date_filter(start, stop)
bbox_crs = fes.BBox(bbox, crs=crs)

filter_list = [
    fes.And(
        [
            bbox_crs,  # bounding box
            begin, end,  # start and end date
            or_filt,  # or conditions (CF variable names)
            serviceType  # search only for datasets that have WMS services
        ]
    )
]


# In[4]: