42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
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 = 'wind_spead.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)
|
||
|
||
wind_uri = URIRef(SINCERE + f"davis2/wind/{i}")
|
||
|
||
# Add the barometer triples
|
||
graph.add((station_uri, SINCERE.hasWindSpeed, wind_uri))
|
||
graph.add((wind_uri, RDF.type, SINCERE.Wind))
|
||
graph.add((wind_uri, SINCERE.value, Literal(row["windspeed"], datatype=XSD.integer)))
|
||
graph.add((wind_uri, SINCERE.timestamp, Literal(row["ο»ώtime"], datatype=XSD.string)))
|
||
|
||
|
||
# Save the RDF triples to a Turtle file
|
||
output_file = 'wind-translated.ttl'
|
||
graph.serialize(destination=output_file, format='turtle')
|
||
|
||
print(f"RDF triples saved to {output_file}")
|