Files
ifc-weather-mapping-mechanism/grafana-data/grafana-humidity.py

42 lines
1.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import csv
from rdflib import Graph, URIRef, Literal, Namespace
from rdflib.namespace import RDF, RDFS, XSD
# Define namespaces
SINCERE = Namespace("http://sincere.org/s1#")
graph = Graph()
graph.bind("sincere", SINCERE)
graph.bind("xsd", XSD)
# Create initial triples for the station
station_uri = URIRef(SINCERE + "davis2")
# Read the CSV file and generate barometer triples
csv_file = 'outside_humidity.csv' # Replace with your CSV file path
with open(csv_file, newline='') as csvfile:
reader = csv.DictReader(csvfile)
# Print the headers to check what's inside
print("CSV Headers:", reader.fieldnames)
for i, row in enumerate(reader, start=1):
# Normalize column names by stripping spaces and lowercasing them
row = {key.strip().lower(): value.strip() for key, value in row.items()}
print(row)
humidity_uri = URIRef(SINCERE + f"davis2/humidity/{i}")
# Add the barometer triples
graph.add((station_uri, SINCERE.hasHumidity, humidity_uri))
graph.add((humidity_uri, RDF.type, SINCERE.Humidity))
graph.add((humidity_uri, SINCERE.value, Literal(row["outsidehumidity"], datatype=XSD.integer)))
graph.add((humidity_uri, SINCERE.timestamp, Literal(row["ο»ώtime"], datatype=XSD.string)))
# Save the RDF triples to a Turtle file
output_file = 'humidity-translated.ttl'
graph.serialize(destination=output_file, format='turtle')
print(f"RDF triples saved to {output_file}")