本文整理汇总了Python中pygeoif.geometry.from_wkt函数的典型用法代码示例。如果您正苦于以下问题:Python from_wkt函数的具体用法?Python from_wkt怎么用?Python from_wkt使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了from_wkt函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_multipolygon
def test_multipolygon(self):
p = geometry.from_wkt(
"MULTIPOLYGON(((0 0,10 20,30 40,0 0)," "(1 1,2 2,3 3,1 1))," "((100 100,110 110,120 120,100 100)))"
)
# two polygons: the first one has an interior ring
self.assertEqual(len(p.geoms), 2)
self.assertEqual(p.geoms[0].exterior.coords, ((0.0, 0.0), (10.0, 20.0), (30.0, 40.0), (0.0, 0.0)))
self.assertEqual(list(p.geoms[0].interiors)[0].coords, ((1.0, 1.0), (2.0, 2.0), (3.0, 3.0), (1.0, 1.0)))
self.assertEqual(p.geoms[1].exterior.coords, ((100.0, 100.0), (110.0, 110.0), (120.0, 120.0), (100.0, 100.0)))
self.assertEqual(
p.to_wkt(),
"MULTIPOLYGON(((0.0 0.0, 10.0 20.0, "
"30.0 40.0, 0.0 0.0),"
"(1.0 1.0, 2.0 2.0, 3.0 3.0, 1.0 1.0))"
"((100.0 100.0, 110.0 110.0,"
" 120.0 120.0, 100.0 100.0)))",
)
p = geometry.from_wkt("MULTIPOLYGON(((1 1,5 1,5 5,1 5,1 1)," "(2 2, 3 2, 3 3, 2 3,2 2)),((3 3,6 2,6 4,3 3)))")
self.assertEqual(len(p.geoms), 2)
p = geometry.from_wkt("MULTIPOLYGON (((30 20, 10 40, 45 40, 30 20))," "((15 5, 40 10, 10 20, 5 10, 15 5)))")
self.assertEqual(
p.__geo_interface__,
{
"type": "MultiPolygon",
"bbox": (5.0, 5.0, 45.0, 40.0),
"coordinates": (
(((30.0, 20.0), (10.0, 40.0), (45.0, 40.0), (30.0, 20.0)),),
(((15.0, 5.0), (40.0, 10.0), (10.0, 20.0), (5.0, 10.0), (15.0, 5.0)),),
),
},
)
示例2: test_polygon
def test_polygon(self):
p = geometry.from_wkt(
"POLYGON((-91.611 76.227,-91.543 76.217,"
"-91.503 76.222,-91.483 76.221,-91.474 76.211,"
"-91.484 76.197,-91.512 76.193,-91.624 76.2,"
"-91.638 76.202,-91.647 76.211,-91.648 76.218,"
"-91.643 76.221,-91.636 76.222,-91.611 76.227))"
)
self.assertEqual(p.exterior.coords[0][0], -91.611)
self.assertEqual(p.exterior.coords[0], p.exterior.coords[-1])
self.assertEqual(len(p.exterior.coords), 14)
p = geometry.from_wkt("POLYGON((1 1,5 1,5 5,1 5,1 1),(2 2, 3 2, " "3 3, 2 3,2 2))")
self.assertEqual(p.exterior.coords[0], p.exterior.coords[-1])
self.assertEqual(p.exterior.coords[0], (1.0, 1.0))
self.assertEqual(len(list(p.interiors)), 1)
self.assertEqual(list(p.interiors)[0].coords, ((2.0, 2.0), (3.0, 2.0), (3.0, 3.0), (2.0, 3.0), (2.0, 2.0)))
self.assertEqual(
p.to_wkt(),
"POLYGON((1.0 1.0, 5.0 1.0, 5.0 5.0, "
"1.0 5.0, 1.0 1.0),(2.0 2.0, 3.0 2.0, "
"3.0 3.0, 2.0 3.0, 2.0 2.0))",
)
p = geometry.from_wkt("POLYGON ((30 10, 10 20, 20 40, 40 40, 30 10))")
self.assertEqual(p.exterior.coords[0], p.exterior.coords[-1])
p = geometry.from_wkt(
"""POLYGON ((35 10, 10 20, 15 40, 45 45, 35 10),
(20 30, 35 35, 30 20, 20 30))"""
)
self.assertEqual(p.exterior.coords[0], p.exterior.coords[-1])
示例3: test_multilinestring
def test_multilinestring(self):
p = geometry.from_wkt('MULTILINESTRING((3 4,10 50,20 25),(-5 -8,-10 -8,-15 -4))')
self.assertEqual(p.geoms[0].coords, (((3, 4),(10, 50),(20, 25))))
self.assertEqual(p.geoms[1].coords, (((-5, -8),(-10, -8),(-15, -4))))
self.assertEqual(p.to_wkt(),'MULTILINESTRING((3.0 4.0, 10.0 50.0, 20.0 25.0),(-5.0 -8.0, -10.0 -8.0, -15.0 -4.0))')
p = geometry.from_wkt('''MULTILINESTRING ((10 10, 20 20, 10 40),
(40 40, 30 30, 40 20, 30 10))''')
示例4: test_multipolygon
def test_multipolygon(self):
p = geometry.from_wkt('MULTIPOLYGON(((0 0,10 20,30 40,0 0),(1 1,2 2,3 3,1 1)),((100 100,110 110,120 120,100 100)))')
#two polygons: the first one has an interior ring
self.assertEqual(len(p.geoms), 2)
self.assertEqual(p.geoms[0].exterior.coords,
((0.0, 0.0), (10.0, 20.0) , (30.0, 40.0), (0.0, 0.0)))
self.assertEqual(list(p.geoms[0].interiors)[0].coords,
((1.0, 1.0), (2.0, 2.0), (3.0, 3.0), (1.0, 1.0)))
self.assertEqual(p.geoms[1].exterior.coords,
((100.0, 100.0), (110.0, 110.0), (120.0, 120.0), (100.0, 100.0)))
self.assertEqual(p.to_wkt(),
'MULTIPOLYGON(((0.0 0.0, 10.0 20.0, 30.0 40.0, 0.0 0.0),(1.0 1.0, 2.0 2.0, 3.0 3.0, 1.0 1.0))((100.0 100.0, 110.0 110.0, 120.0 120.0, 100.0 100.0)))')
p = geometry.from_wkt('MULTIPOLYGON(((1 1,5 1,5 5,1 5,1 1),(2 2, 3 2, 3 3, 2 3,2 2)),((3 3,6 2,6 4,3 3)))')
self.assertEqual(len(p.geoms), 2)
示例5: test_multipoint
def test_multipoint(self):
p = geometry.from_wkt("MULTIPOINT(3.5 5.6,4.8 10.5)")
self.assertEqual(isinstance(p, geometry.MultiPoint), True)
self.assertEqual(p.geoms[0].x, 3.5)
self.assertEqual(p.geoms[1].y, 10.5)
self.assertEqual(p.to_wkt(), "MULTIPOINT(3.5 5.6, 4.8 10.5)")
p = geometry.from_wkt("MULTIPOINT ((10 40), (40 30), " "(20 20), (30 10))")
self.assertEqual(isinstance(p, geometry.MultiPoint), True)
self.assertEqual(p.geoms[0].x, 10.0)
self.assertEqual(p.geoms[3].y, 10.0)
p = geometry.from_wkt("MULTIPOINT (10 40, 40 30, 20 20, 30 10)")
self.assertEqual(isinstance(p, geometry.MultiPoint), True)
self.assertEqual(p.geoms[0].x, 10.0)
self.assertEqual(p.geoms[3].y, 10.0)
示例6: test_linestring
def test_linestring(self):
l = geometry.from_wkt('LINESTRING(-72.991 46.177,-73.079 46.16,'
'-73.146 46.124,-73.177 46.071,-73.164 46.044)')
self.assertEqual(l.to_wkt(), 'LINESTRING (-72.991 46.177, '
'-73.079 46.16, -73.146 46.124, '
'-73.177 46.071, -73.164 46.044)')
self.assertEqual(isinstance(l, geometry.LineString), True)
示例7: create_leaflet_viewer
def create_leaflet_viewer(self, idaho_image_results, output_filename):
'''Create a leaflet viewer html file for viewing idaho images
Args:
idaho_image_results (dict): IDAHO image result set as returned from
the catalog.
output_filename (str): where to save an output html file
'''
description = self.describe_images(idaho_image_results)
if len(description) > 0:
functionstring = ''
for catid, images in description.items():
for partnum, part in images['parts'].items():
num_images = len(list(part.keys()))
partname = None
if num_images == 1:
# there is only one image, use the PAN
partname = [p for p in list(part.keys())][0]
pan_image_id = ''
elif num_images == 2:
# there are two images in this part, use the multi (or pansharpen)
partname = [p for p in list(part.keys()) if p is not 'PAN'][0]
pan_image_id = part['PAN']['id']
if not partname:
self.logger.debug("Cannot find part for idaho image.")
continue
bandstr = {
'RGBN': '0,1,2',
'WORLDVIEW_8_BAND': '4,2,1',
'PAN': '0'
}.get(partname, '0,1,2')
part_boundstr_wkt = part[partname]['boundstr']
part_polygon = geometry.from_wkt(part_boundstr_wkt)
bucketname = part[partname]['bucket']
image_id = part[partname]['id']
W, S, E, N = part_polygon.bounds
functionstring += "addLayerToMap('%s','%s',%s,%s,%s,%s,'%s');\n" % (bucketname, image_id, W,S,E,N, pan_image_id)
__location__ = os.path.realpath(
os.path.join(os.getcwd(), os.path.dirname(__file__)))
with open(os.path.join(__location__, 'leafletmap_template.html'), 'r') as htmlfile:
data=htmlfile.read().decode("utf8")
data = data.replace('FUNCTIONSTRING',functionstring)
data = data.replace('CENTERLAT',str(S))
data = data.replace('CENTERLON',str(W))
data = data.replace('BANDS',bandstr)
data = data.replace('TOKEN',self.gbdx_connection.access_token)
with codecs.open(output_filename,'w','utf8') as outputfile:
self.logger.debug("Saving %s" % output_filename)
outputfile.write(data)
else:
print("No items returned.")
示例8: get_bounding_box
def get_bounding_box(wkt):
geom = geometry.from_wkt(wkt)
minx = geom.bounds[0]
miny = geom.bounds[1]
maxx = geom.bounds[2]
maxy = geom.bounds[3]
return str(minx) + ',' + str(miny) + ',' + str(maxx) + ',' + str(maxy)
示例9: test_geometrycollection
def test_geometrycollection(self):
gc = geometry.from_wkt('GEOMETRYCOLLECTION(POINT(4 6), LINESTRING(4 6,7 10))')
self.assertEqual(len(list(gc.geoms)), 2)
self.assertTrue(isinstance(list(gc.geoms)[0], geometry.Point))
self.assertTrue(isinstance(list(gc.geoms)[1], geometry.LineString))
self.assertEqual(gc.to_wkt(),
'GEOMETRYCOLLECTION (POINT (4.0 6.0), LINESTRING (4.0 6.0, 7.0 10.0))')
示例10: verify_wkt
def verify_wkt(data):
try:
from shapely import wkt
geom = wkt.loads(data)
except ImportError:
from pygeoif.geometry import from_wkt
geom = from_wkt(data)
return geom
示例11: wkt
def wkt(self, data):
if data is None or len(data) == 0:
return False
try:
wkt = geometry.from_wkt(data)
return isinstance(wkt, geometry._Geometry)
except:
return False
示例12: verifyWkt
def verifyWkt(self, data):
try:
from shapely import wkt
geom = wkt.loads(data)
#geom = {"type":"Point","coordinates":"00000000"}
except ImportError:
from pygeoif.geometry import from_wkt
geom = from_wkt(data)
return geom
示例13: test_point
def test_point(self):
p = geometry.from_wkt("POINT (0.0 1.0)")
self.assertEqual(isinstance(p, geometry.Point), True)
self.assertEqual(p.x, 0.0)
self.assertEqual(p.y, 1.0)
self.assertEqual(p.to_wkt(), "POINT (0.0 1.0)")
self.assertEqual(p.to_wkt(), p.wkt)
self.assertEqual(str(p), "POINT (0.0 1.0)")
self.assertEqual(p.geom_type, "Point")
示例14: records_in_polygon
def records_in_polygon(records,polygon):
# Filter out the records that are not inside the polygon
output_records = []
for record in records:
recordwkt = record['properties']['footprintWkt']
record_polygon = geometry.from_wkt(recordwkt)
if bbox_in_poly(record_polygon,polygon):
output_records.append(record)
#print "Filtered in polygon: %s" % len(output_records)
return output_records
示例15: query_iteratively
def query_iteratively(self, searchAreaWkt, query, count=100, ttl='5m'):
'''
Perform a vector services query using the QUERY API
(https://gbdxdocs.digitalglobe.com/docs/vs-query-list-vector-items-returns-default-fields)
Args:
searchAreaWkt: WKT Polygon of area to search
query: Elastic Search query
count: Maximum number of results to return
ttl: Amount of time for each temporary vector page to exist
Returns:
generator of vector results
'''
search_area_polygon = geometry.from_wkt(searchAreaWkt)
left, lower, right, upper = search_area_polygon.bounds
params = {
"q": query,
"count": count,
"ttl": ttl,
"left": left,
"right": right,
"lower": lower,
"upper": upper
}
# initialize paging request
r = self.gbdx_connection.get(self.query_url, params=params)
r.raise_for_status()
page = r.json()
paging_id = page['pagingId']
item_count = int(page['itemCount'])
# get vectors from each page
while paging_id and item_count > 0:
headers = {'Content-Type':'application/x-www-form-urlencoded'}
data = {
"pagingId": paging_id,
"ttl": ttl
}
r = self.gbdx_connection.post(self.page_url, headers=headers, data=data)
r.raise_for_status()
page = r.json()
paging_id = page['next_paging_id']
item_count = int(page['item_count'])
data = page['data']
for vector in data:
yield vector