Skip to main content

swissREFRAME

Python interface for the official swisstopo’s REFRAME jar library

About REFRAME

Info about DLL / Source: https://shop.swisstopo.admin.ch/de/products/geo_software/DLL_info

GeoSuite calculation module for planimetric and/or height transformation for application in the Swiss national survey and the cadastral survey. The REFRAME library allows all transformations of coordinates and heights, which are relevant in Switzerland and available in the REFRAME for GeoSuite software, except UTM projection:

  • GPSREF (ETRF93 <-> LV95)

  • FINELTRA (LV95 <-> LV03)

  • CHGEO2004 (geoid model)

  • HTRANS (LHN95 <-> LN02)

The REFRAME library may be distributed to third parties and integrated into commercial products, but it must be delivered to the customer free of charge.

ReframeLibrary/Documentation/developper_manual.pdf contains all technical information about REFRAME library.

ReframeLibrary/Documentation/refsys_d.pdf contains information and formulas about transformations and projection

Installation

Just install the package:

pip install swissreframe

Requirements

  • Java x64/x86 (swissREFRAME starts a JVM to execute REFRAME jar library, tested with 8.0_231)

  • Python 3 (tested with 3.7.5)

  • JPype1 (tested with 0.7.0)

Example / Usage

from swissreframe import Coordinate, initialize_reframe

r = initialize_reframe()

This should work. But you can also specify path to reframeLib.jar:

r = initialize_reframe(path_reframeLib_jar = r'D:\jar\reframeLib.jar')

and also path to jvm.dll:

r = initialize_reframe(path_jvm_dll = r'C:\Program Files\Java\jre1.8.0_231\bin\server\jvm.dll')

Now you can use the methods REFRAME.compute_reframe and REFRAME.compute_gpsref

result1 = r.compute_reframe((600000.1, 200000.1, 200), 'lv03_military', 'lv95', 'ln02', 'lhn95')
print(result1)
result2 = r.compute_gpsref((2600000.1, 1200000.1, 200), 'lv95_to_etrf93_geographic')
print(result2)

Output:

(2600000.182999904, 1200000.1660008044, 199.92481259693554)
(7.438633764230579, 46.95108371391055, 249.62218793481588)

Or you can use class Coordinate and its methods:

coord = Coordinate(type='plane', planimetric_frame='lv03_military', altimetric_frame='ln02',
                   coordinates=(600000.1, 200000.1, 200.1))
print(coord.ETRF95_geocentric)

Output:

(4325124.392962725, 564701.4910050733, 4638236.373010437)

Documentation

Coming soon

Metadata

Release files for swissREFRAME 1.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for swissREFRAME 1.1.2
File Size Uploaded
swissREFRAME-1.1.2.tar.gz 2.0 MB Details

Release files / swissREFRAME-1.1.2.tar.gz

Download URL swissREFRAME-1.1.2.tar.gz
Size 2.0 MB
Tags Source
SHA-256 checksum
How to use checksums
cdc62d5b1833bd47b16cc9a29c1abd77674eab94930c3d15a6ca8cf4b67d48eb
BLAKE2b-256 checksum
How to use checksums
d0177b4b32ebc7f02d8a960ab037ebfee7ed55f318241d0eea0d31e81dbdee02
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.37.0 CPython/3.7.5
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page