CIM query utilities
Project description
CIMSPARQL Query CIM data using sparql
This Python package provides functionality for reading/parsing cim data from either xml files or GraphDB into Python memory as pandas dataframes.
The package provides a set of predefined functions/queries to load CIM data such generator or branch data, though the user can easiliy extend or define their own queries.
Usage
Load data using predefined functions/queries
>>> from cimsparql.graphdb import GraphDBClient
>>> from cimsparql.url import service
>>> gdbc = GraphDBClient(service(repo='<repo>', server=127.0.0.1:7200))
>>> ac_lines = gdbc.ac_lines(limit=3)
>>> print(ac_lines[['name', 'x', 'r', 'bch']])
name x r bch
0 <branch 1> 1.9900 0.8800 0.000010
1 <branch 2> 1.9900 0.8800 0.000010
2 <branch 3> 0.3514 0.1733 0.000198
In the example above the client will query repo "" in the default server GraphDB for AC line values.
Inspect/view predefined queries
To see the actual sparql use the dry_run
option:
>>> from cimsparql.queries import ac_line_query
>>> print(ac_line_query(limit=3, dry_run=True))
The resulting string contains all the prefix's available in the Graphdb repo making it easier to copy and past to graphdb. Note that the prefixes are not required in the user specified quires described below.
The dry_run
option is available for all the predefined queries.
Load data using user specified queries
>>> query = 'SELECT ?mrid where { ?mrid rdf:type cim:ACLineSegment } limit 2'
>>> query_result = gdbc.get_table(query)
>>> print(query_result)
List of available repos at the server
>>> from cimsparql.url import GraphDbConfig
>>> print(GraphDbConfig().repos)
Prefix and namespace
Available namespace for current graphdb client (gdbc
in the examples above),
which can be used in queries (such as rdf
and cim
) can by found by
>>> print(gdbc.ns)
{'wgs': 'http://www.w3.org/2003/01/geo/wgs84_pos#',
'rdf': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
'owl': 'http://www.w3.org/2002/07/owl#',
'cim': 'http://iec.ch/TC57/2010/CIM-schema-cim15#',
'gn': 'http://www.geonames.org/ontology#',
'xsd': 'http://www.w3.org/2001/XMLSchema#',
'rdfs': 'http://www.w3.org/2000/01/rdf-schema#',
'SN': 'http://www.statnett.no/CIM-schema-cim15-extension#',
'ALG': 'http://www.alstom.com/grid/CIM-schema-cim15-extension#'}
Running Tests Against RDF4J Database
To run tests using data in an RDF4J database, the rdf4j-server
must be available. A docker image with the rdf4j-server
and rdf4j-workbench
can be downloaded via
docker pull eclipse/rdf4j-workbench
Launch a container with this image and specify the URL in the RDF4J_URL
environment variable. With default settings in the container, it should be
RDF4J_URL = "http://localhost:8080/rdf4j-server"
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cimsparql-1.10.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01197725ae095264d7312a41323291dd81bc84cfa0ca952846bd7c6443a7a0cb |
|
MD5 | b559abf055aaeb21dd9f4de4ed3c4fdf |
|
BLAKE2b-256 | 3b4afd0f3c00fb640d40ca7be99c2fa19ce18dde02577c9002eb233166d2b9c6 |