PL1

KML ROIs

ROIs could be stored as .kml (google-earth) files. Example:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
	<name>dummy.kml</name>
	<open>1</open>
	<Style id="sn_ylw-pushpin">
		<IconStyle>
			<scale>1.1</scale>
			<Icon>
				<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href>
			</Icon>
			<hotSpot x="20" y="2" xunits="pixels" yunits="pixels"/>
		</IconStyle>
		<LineStyle>
			<color>ffff717c</color>
			<width>3</width>
		</LineStyle>
	</Style>
	<StyleMap id="msn_ylw-pushpin">
		<Pair>
			<key>normal</key>
			<styleUrl>#sn_ylw-pushpin</styleUrl>
		</Pair>
		<Pair>
			<key>highlight</key>
			<styleUrl>#sn_ylw-pushpin2</styleUrl>
		</Pair>
	</StyleMap>
	<Folder>
		<name>Collection of ROIS</name>
		<description>Collection description</description>
		<Placemark>
			<name>Linear feature</name>
			<description>Linear feature description</description>
			<styleUrl>#msn_ylw-pushpin</styleUrl>
			<LineString>
				<extrude>1</extrude>
				<tessellate>1</tessellate>
				<altitudeMode>absolute</altitudeMode>
				<coordinates>
					110,-35,0 120,-30,0 130,-25,0
				</coordinates>
			</LineString>
		</Placemark>
		<Placemark>
			<name>Polygon feature</name>
			<description>Polygon feature description</description>
			<styleUrl>#msn_ylw-pushpin</styleUrl>
			<Polygon>
				<extrude>1</extrude>
				<tessellate>1</tessellate>
				<altitudeMode>absolute</altitudeMode>
				<outerBoundaryIs>
					<LinearRing>
						<coordinates>
							-90,30,0 -30,30,0 -30,0,0 -90,0,0 -90,30,0
						</coordinates>
					</LinearRing>
				</outerBoundaryIs>
			</Polygon>
		</Placemark>
	</Folder>
</Document>
</kml>

References: KML documentation

Usage proposal

KmlROIsCollection should be a ROIsCollectionWithCategories child:

>>> kml_rois = KmlROIsCollection('dummy.kml', target='Europa')
>>> kml_rois
<KmlROIsCollection> 2 rois | 1 category

>>> kml.categories
<CategoriesCollection> 1 category
 - Collection of ROIS

>>> kml.rois
<ROIsCollection> 2 rois
 - 1 / Linear feature
 - 2 / Polygon feature

Map display should be straightforward:

fig = plt.figure(figsize=(18, 9))
ax = fig.add_subplot(projection=EUROPA)

ax.add_collection(kml_rois);

image

Multiple files important should be supported and populate the collection with different categories based on the folder name and description:

>>> KmlROIsCollection('dummy.kml', 'foo.kml', 'bar.kml', target='Europa')
<KmlROIsCollection> 25 rois | 3 categories

Note

Support for Linear ROI intersection is not out of the scope of the this issue.

Edited Jun 23, 2021 by benoit seignovert
Assignee Loading
Time tracking Loading

Provided with 鉂わ笍 by esait | 馃摐 Terms of Service | 馃搳 Live metrics | 馃摑 Our Documentation | 馃挰 Need assistance? esait.service.desk@esa.int