Мне нужно создать файл .kml из фрейма данных с более чем 800 районами. Это то, что я сделал до сих пор:
1) Считайте файл .csv (РИС. 1), используя PANDAS
2) Создайте новый фрейм данных, выбрав только первые 3 столбца (долгота,широта, высота)
3) Создайте список кортежей из фрейма данных
4) Создайте файл .kml и выполните некоторые стили (цвета)
Вся эта процедура работыздорово ТОЛЬКО когда есть 1 район. Теперь мне нужно сделать то же самое, но с более чем 800 районами. На фиг.2 показан пример с двумя районами (ACTONO и AILSACRAIGO).
При преобразовании кадра данных в список кортежей, как заставить "python" узнать, что существует много округов?
Я считаю, что эти строки должны быть улучшены:
a) Здесь мне понадобится список кортежей (по одному на каждый район)
#Converting the dataframe to a list of tuples
tuples = [tuple(x) for x in df_modify.values]
b) И здесь, «outboundaryies» придется менять для каждого из кортежей
pol = kml.newpolygon(name= 'ACTONO', description= 'Acton County',
outerboundaryis=tuples, extrude=extrude, altitudemode=altitudemode)
Это весь код:
КОД ДЛЯ .CSV С 1 РАЙОНОМ
import pandas
import simplekml
kml = simplekml.Kml()
#Using PANDAS to read .csv and chosing the first 3 columns
df = pandas.read_csv('C:\\Users\\disa_ONTshp.csv')
df_modify=df.iloc[:, [0,1,2]]
#Converting the dataframe to a list of tuples
tuples = [tuple(x) for x in df_modify.values]
#Creating a .kml file
extrude=1
altitudemode = simplekml.AltitudeMode.relativetoground
pol = kml.newpolygon(name= 'ACTONO', description= 'Acton County',
outerboundaryis=tuples, extrude=extrude, altitudemode=altitudemode)
#Styling colors
pol.style.linestyle.color = simplekml.Color.green
pol.style.linestyle.width = 5
pol.style.polystyle.color = simplekml.Color.changealphaint(100,
simplekml.Color.green)
#Saving
kml.save("Polygon Styling.kml")
РИС. 1 (1 РАЙОН)
РИС. 2 (2 РАЙОНА)