Page MenuHomePhabricator

determine how to add statements for monthly temperatures (avg/max/min) > 12*3 values
Open, Needs TriagePublic


Once in a while we come across this question:

What's the recommended way to add (e.g.) monthly temperatures? Sample use: climate charts as on Buenos Aires#Climate. There is some related discussion on Wikidata.

Possible solutions:

  • create a property "monthly temperature" and add 36 values
  • create three properties: "monthly max temperature", "monthly min temperature", "monthly avg temperature"
  • create 12 or 36 properties for each month
  • use some MCR feature (T107595)
  • create a new datatype for time series

Event Timeline

There's quite a few things with monthly values like this. has 19 different things. Other languages include other options, I can see one more on, at least three more on and at least six more on

Individual properties for each month for each measurement would require a lot of properties to model all the data from those templates. That sounds like it would be really difficult to use, a query to select the data for something like would need to select 36 different properties.

It seems we normally create separate properties for minimum and maximum, and I would agree with that. They are measuring different things and I can't see how putting them under a single property would benefit anyone trying to use the data.

Therefore with what we currently have available to us, I think the most sensible option for modelling data like this would be individual properties for each type of measurement with a qualifier for the month. Querying doesn't seem like it would be hard, select the properties you're interested in, select the month qualifier, equate the months and then order by month.

I can't really comment on the last two bullet points. The only thing I can really say is that there isn't really a problem with storing the data with existing data types, the problem with doing it that way is the UI. All of the first three options result in an unordered list of values, it's slow and annoying to enter the data and it's pretty much impossible to do things like see if anything is missing or spot mistakes.

Some more monthly values: (with an example for average flow rate of a river) (with an example for average height of water of a river)
Both of those look similar to the weather examples in my previous comment and I think what I wrote there would apply for these too. (volume of a lake)
This one I would probably enter as a "volume" statement with a "point in time" qualifier, similar to what we do for population values. It does seem to share the same UI issues (as the weather examples above) though.