-
Notifications
You must be signed in to change notification settings - Fork 13
Add extractor for data from EnvironmentLogger --> geostreams database #252
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
@dlebauer Who would be the person that knows where the data are and what is the schema/format of them? |
@Zodiase If you have access to Roger or the Terraref Globus Endpoint, the files are located at: I'm not sure of schema/format, but that is where the files are if you want to look at them. |
@dlebauer @jdmaloney I roughly scanned the data files and noticed an inconsistency in file size/data point count and in some cases the naming conventions. For example, Is there a pattern to follow here? For the previous met extractor I wrote, it relies on the datasets having 24 partitioned |
@Zodiase I think there was a change in naming format there. 2016_08_09 was early on in the data collection and I think its naming scheme should be ignored, it's only for those first few days (new schema starts at 2016_08_10) and has been consistent since then. In terms of the size variance I am not sure. I'm just grabbing the files off the Network Storage device they have down at Maricopa, how the files are generated and what goes into them I do not know. |
@Andrade-Pedro can you comment on this? I believe this is the second met station you set up. Also can you give approximate coordinates |
@Andrade-Pedro I think JD answered but coordinates would be nice to have |
Ground weather station coordinates: 33.074457 N, 111.975163 W |
@jdmaloney Wait I just noticed the data files you pointed to me has already been handled by the first Met extractor in #156. The path you gave me is exactly the same as the one in this comment: #156 (comment) |
@jdmaloney what data is David talking about "transferred outside core lemnatec pipeline"? We move the weather station data via pipeline. Does he mean the lightning data that we're doing the append-to-single-file stuff? |
Max there is the Environmental Logger and the Weather Station. There was
some confusion initially - Xingchen had already processed the weather
station data and will now work on the Environmental Logger data.
…On Thu, Feb 16, 2017 at 11:26 AM Max Burnette ***@***.***> wrote:
@jdmaloney <https://github.com/jdmaloney> what data is David talking
about "transferred outside core lemnatec pipeline"? We move the weather
station data via pipeline. Does he mean the lightning data that we're doing
the append-to-single-file stuff?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#252 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAcX5xf1ubist3Trbm4MiFCuhb3tn2LPks5rdIbdgaJpZM4L1Wf9>
.
|
@Zodiase Here is the path to the other data: /gpfs/largeblockFS/projects/arpae/terraref/sites/ua-mac/raw_data/EnvironmentLogger |
Source File SchemaDocument (with example values){
"environment_sensor_fixed_infos": {
"par_sensor": {
"manufacturer": "www.apogeeinstruments.com",
"model": "SQ214",
"location in gantry system": "top of gantry"
},
"co2_sensor": {
"sensor manufacturer": "Vaisala",
"model": "Carbocap CO2 Probe GMP343 A1C1B0N0N0B",
"sensor serial number": "L3420008",
"additional info": "SO 5530060878",
"calbration date": "2015.08.18",
"location in gantry system": "camera box",
"analog digital interface": "WAGO 750-478"
},
"weather_station": {
"manufacturer": "www.thiesclima.com",
"article nr": "4.9200.00.000",
"analog digital interface": "wago 750-478",
"location in gantry system": "top of gantry"
},
"spectrometer": {
"manufacturer": "www.oceanoptics.com",
"model": "STS-VIS",
"location in gantry system": "top of gantry"
}
},
"environment_sensor_readings": Array.<SensorReading>
} SensorReading{
"timestamp": "2017.01.10-00:32:02",
"weather_station": {
"sunDirection": {
"value": "357.5829340495",
"unit": "degrees",
"rawValue": "9.93285927915281"
},
"airPressure": {
"value": "1017.8899502548",
"unit": "hPa",
"rawValue": "8.38038270210883"
},
"brightness": {
"value": "1.0364391003",
"unit": "kilo Lux",
"rawValue": "0.00183111056855983"
},
"relHumidity": {
"value": "75.0328073977",
"unit": "relHumPerCent",
"rawValue": "7.50328073976867"
},
"temperature": {
"value": "11.542710654",
"unit": "DegCelsius",
"rawValue": "5.15427106540117"
},
"windDirection": {
"value": "315.9984130375",
"unit": "degrees",
"rawValue": "8.77773369548631"
},
"precipitation": {
"value": "0.0406736656",
"unit": "mm/h",
"rawValue": "0.00396740623187964"
},
"windVelocity": {
"value": "1.5326395459",
"unit": "m/s",
"rawValue": "0.255439924314097"
}
},
"sensor par": {
"value": "0",
"unit": "umol/(m^2*s)",
"rawValue": "4"
},
"sensor co2": {
"value": "480.039067269",
"unit": "ppm",
"rawValue": "11.6806250763033"
},
"spectrometer": {
"maxFixedIntensity": "16383",
"integration time in us": "5000",
"wavelength": Array.<Number>,
"spectrum": Array.<Number>
}
} |
ConversionFor each in
|
@dlebauer I've listed the conversion I'm sure about. There are a couple other fields I'm not sure about. Could you provide a mapping like you did in #156 (comment)? |
For the spectrometer fields, these will be used in the hyperspectral workflow.
|
@czender and @FlyingWithJerome where did we leave off with the creation of the Environmental logger files as netcdf? Should we leave those in netcdf files? If so, is there an issue (or should I create a new one) to make those as CF standard names? |
@dlebauer I doubled checked the Environmental Logger Script in the computing pipeline, and the answer to the naming issue is yes. There is a TODO token in the line 252 for standard names. @Zodiase @czender |
@Zodiase sunDirection is computed (not measured) from time/location. it is not zenith angle. i'm not sure exactly what it is yet. the sensor documentation does not describe it. and the angle takes values that exceed 90 degrees during daytime, so it is neither a zenith angle nor an altitude. please leave it as sunDirection until we understand it. @solmazhajmohammadi or @TinoDornbusch do you know how thiesclima defines sunDirection? |
@FlyingWithJerome please note that the environmental logger script was moved to a new repository many months ago: https://github.com/terraref/extractors-environmental |
@czender Yes, I had already cloned the new repo |
New functionality from PiClowder 2 will help with this. Xingchen will follow up with Max about this. |
I would prefer to use auth with username/password. That way it gets assigned to a user instead of the system user (which is what happens when you use the key). |
I'm reading the existing environmental logger extractor code. Since I'm not that familiar with Python so I might have missed something, but so far from this portion I don't think that extractor is doing any unit conversion other than renaming the units to CF standards. For example the conversion from Celsius to Kelvin. When I was working on the meterological extractor I took it as a requirement to convert all values to CF variable names and units suggested in this table, using "preferred variables" as much as possible (which means breaking |
@Zodiase I believe you are correct in both cases - the conversion is for the key only (not the value), and it needs to be both like the met extractor. |
@max-zilla @Zodiase |
@max-zilla |
@Zodiase thanks for reporting this. A 273 degree temperature bias is worth fixing. @FlyingWithJerome please make sure to convert value not just units. Double-check to make sure there are no missing factors of 10, 100, 1000 missing from the values of any converted quantity. Please note any discrepancies between our data names/standard_names and the table Xingchen points to so we can discuss these Monday. |
@max-zilla |
@FlyingWithJerome the postgres service was restarted, Clowder needed to be restarted as well to reconnect. Should work now. |
I double checked the API documentation in the clowder and cannot find the parts for Geostream. I would like to know the the host address I can POST to, and whether it supports JSON-Encoded data (seems that it does not support Python json.dumps() encoder). |
@FlyingWithJerome here are two examples of extractors that post to Geostreams: See create_sensor, get_sensor_id, create_stream, get_stream_id also. Basically for geostreams...
Big idea is we have a field of plots (1) and each plot has a list of instruments (2) that each have a bunch of datapoints (3) indicating what that instrument captured in that plot. |
Thanks, these two examples make more sense to me. I will double check if I have the pyclowder dependencies on my home machines and do some little researches on them |
@FlyingWithJerome make sure you use the newer PyClowder 2: https://opensource.ncsa.illinois.edu/bitbucket/projects/CATS/repos/pyclowder2/browse
The --force will overwrite any pyclowder 1 files if you already had them installed. |
@FlyingWithJerome there is some confusion on this side - have you taken on this issue? If so, that is great. Or is there anything that @Zodiase can help with? One other thought - instead of creating one file per day, can this netcdf file just be appended in time, perhaps creating a new one each year? |
@dlebauer |
@FlyingWithJerome - can you give an update on this issue? Can it be closed? |
@max-zilla |
@rachelshekar I'm working on this; will be finished in a not-so-far future |
@FlyingWithJerome for the met extractor, we are using a location off to the side of the field (on the building nearby) to represent "full field" data:
I would replace "Weather Station" with EnvironmentLogger but otherwise you can use the same Full Field sensor we're using for the weather data. The connector is passed into the process_message method for you. |
@max-zilla def create_sensor(connector, host, key, sensorname, geom, type, region):
... |
@FlyingWithJerome ah yes, didn't realize the example function was custom before pyClowder 2 had geostreams.
So for using PyC2: geom = { type = { region = "Maricopa" |
@max-zilla |
Just to be clear - the EnvirontmentLogger and WeatherStation should be listed as distinct locations (sensors).
|
@dlebauer noted. we can change that location/geometry at any time fortunately, will make a note. |
@dlebauer |
@FlyingWithJerome i think that's correct - that's why David suggests using a polygon to represent the entire field or something else off to the side if there are overlap issues. We can experiment with that a bit later. |
@max-zilla |
@FlyingWithJerome can this issue be closed? |
@rachelshekar yes I merged @FlyingWithJerome 's pull request. |
The text was updated successfully, but these errors were encountered: