Python: znajdź linie konturowe z matplotlib.pyplot.contour ()

Próbuję znaleźć (ale nie rysować!) Linie konturu dla niektórych danych:

from pprint import pprint 
import matplotlib.pyplot 
z = [[0.350087, 0.0590954, 0.002165], [0.144522, 0.885409, 0.378515], 
     [0.027956, 0.777996, 0.602663], [0.138367, 0.182499, 0.460879], 
     [0.357434, 0.297271, 0.587715]] 
cn = matplotlib.pyplot.contour(z) 

wiemcn zawiera linie konturowe, które chcę, ale nie mogę do nich dotrzeć. Próbowałem kilku rzeczy:

print dir(cn) 
pprint(cn.collections[0]) 
print dir(cn.collections[0]) 
pprint(cn.collections[0].figure) 
print dir(cn.collections[0].figure) 

bezskutecznie. wiemcn jestContourSet, icn.collections jest tablicąLineCollections. PomyślałbymLineCollection to tablica segmentów linii, ale nie wiem, jak wyodrębnić te segmenty.

Moim ostatecznym celem jest stworzenie pliku KML, który drukuje dane na mapie świata, a także kontury dla tych danych.

Ponieważ jednak niektóre z moich punktów danych są blisko siebie, a inne są daleko, potrzebuję rzeczywistych wielokątów (linestings), które tworzą kontury, a nie tylko zrasteryzowany obraz konturów.

Jestem trochę zaskoczonyqhull nie robi czegoś takiego.

Korzystanie z MathematicaListContourPlot a następnie eksportowanie jako SVG działa, ale chcę użyć czegoś open source.

Nie mogę użyć dobrze znanego algorytmu CONREC, ponieważ moje dane nie znajdują się w siatce (nie zawsze jest wiele wartości y dla danej wartości x i odwrotnie).

Rozwiązanie nie musi być pythonem, ale musi być open source i działać na Linuksie.

questionAnswers(2)

yourAnswerToTheQuestion