Comments (5)
@bitner I believe this is done at the rollup table level. Is there documentation on that, that can be shared?
from openaq-api-v2.
I was trying to help out and see if I could figure this one out but I wanted to make sure that I was looking at the right code for the rollups. Do all the averages come from the rollup table that is managed with the code in the following file?
https://github.com/openaq/openaq-db/blob/main/openaqdb/idempotent/update_rollups.sql
from openaq-api-v2.
@caparker yes, that's correct. Thanks for looking into it! Feel free to join slack to get community help
from openaq-api-v2.
Looked into it a bit more. And all we need to do is add another WHERE
statement on line 273 of update_rollups.sql
from openaq-api-v2.
One thing that you might run into is that -999 is not the only error code in your measurements, different instruments will have different ways to write their error codes. And its also possible (unlikely though) that -999 is a real value on one instrument type and and error code in another.
So what if you tallied and documented what each instrument reports as its error code, ideally include that in the meta data for the instrument. Then write the where condition to remove the error code from the measurements during rollup, and that where statement may need to be conditional on the instrument type. And then it would be nice if you include a count of errors in the rollup data so you could track it better.
I would also think about the validity of an average that has a lot or errors in it. For example, if one day has 100% valid values and the next day only has 10% valid values, are those two average comparable? I would say no BUT you could pass that decision on to the user so long as they have all the information needed, hence adding the error count to the rollup table.
from openaq-api-v2.
Related Issues (20)
- add /v3/sensors and v3/locations/{locations_id}/sensors
- db.py refactor for variable working memory HOT 1
- Is OpenAQ working on its own API wrapper for Python? HOT 3
- staging db.py error
- catch 408 timeouts HOT 1
- better parse pydantic validation errors
- AirGradient locations show as "Monitors"
- parameters spatial queries returns `500`
- providers spatial queries returns `500`
- Registering not possible HOT 1
- add rate limiting headers to responses
- Averages endpoint returns error 500, when using temporal as parameter HOT 2
- allow variable rate limiting
- Request to average endpoint times out HOT 3
- Returning string instead of JSON when error validating API parameters HOT 2
- Time window bug for `v2/averages`
- sensors trends endpoint HOT 1
- `v2/locations` frequently returning 500s HOT 1
- Rate limit headers HOT 3
- Filtering by country on ``/cities`` returns cities of unwanted countries
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openaq-api-v2.