У меня есть 2 файла с данными. Я хочу go просмотреть данные в этих файлах и сохранить их в Shapefile. Это мой код:
import shapefile
w = shapefile.Writer(shapefile.POLYGON)
with open('long_1_double.txt', 'r') as long:
for i in long:
i_1, i_2 = i.split()
with open('short_1_double.txt', 'r') as short:
for k in short:
k_1, k_2 = k.split()
w.poly(parts=[[[str(i_1),str(k_1)],[str(i_2),str(k_1)],[str(i_2),str(k_2)],[str(i_1),str(k_2)]]])
w.field('FIRST_FLD','C','40')
w.field('SECOND_FLD','C','40')
w.record('First','Polygon')
w.save('polygon')
После того, как я запустил его, я получил ошибку:
TypeError: expected str, bytes or os.PathLike object, not int
Как сохранить эти данные в Shapefile и исправить ошибку?
Если это может быть полезно, у меня есть скрипт, в котором я хранил данные в формате geo json, и он работает.
count = 0
file_is_empty = True
with open(final, 'w') as fin:
fin.write('{"type": "FeatureCollection","features": [')
with open('long_1_double.txt', 'r') as long:
for i in long:
i_1, i_2 = i.split()
with open('short_1_double.txt', 'r') as short:
for k in short:
k_1, k_2 = k.split()
string = '' if file_is_empty else ','
string += '{"type": "Feature", "properties": {"area": ' +str(count)+'}, "geometry": {"type": "Polygon", "coordinates": [[['+str(i_1) + ',' + str(k_1)+ ']'+',' + '[' + str(i_2)+','+str(k_1) + ']'+',' + '['+str(i_2)+ ',' + str(k_2) +'],' + '[' + str(i_1)+ ',' + str(k_2) +']]]}}'
fin.write(string)
file_is_empty = False
count+=1
end = ']}'
fin.write(end)
Это результат скрипта geo json:
{
"type": "FeatureCollection",
"features": [{
"type": "Feature",
"properties": {
"area": 1
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[90.00526999999931, -0.004729999999999964],
[90.00553999999863, -0.004729999999999964],
[90.00526999999931, -0.004459999999999928],
[90.00553999999863, -0.004459999999999928]
]
]
}
},{
"type": "Feature",
"properties": {
"area": 81
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[90.00742999999386, -0.002569999999999677],
[90.00769999999319, -0.002569999999999677],
[90.00742999999386, -0.0022999999999996413],
[90.00769999999319, -0.0022999999999996413]
]
]
}
}]
}
Мне нужны те же данные, но в Shapefile. Как я могу получить это?
Спасибо)