Узнать исходную кодировку загружаемого shp-файла
Добавлено: 20 сен 2015, 09:12
Пожалуйста, подскажите как узнать исходную кодировку загружаемого в QGIS - shp-файла? И есть ли таковая функция в Python'е ("внутрях" QGIS 2.8 под Windows)?
Геоинформационные системы (ГИС) и Дистанционное зондирование Земли
https://gis-lab.info/forum/
Код: Выделить всё
ogrinfo -al test.shp | enca
Код: Выделить всё
ogr2ogr -f CSV test.csv test.dbf
enca test.csv
Код: Выделить всё
from dbfpy import dbf
from chardet import detect
db = dbf.Dbf('test.dbf')
N=0
enc_list = []
for rec in db:
for f in rec.fieldData:
while N < 10:
N = N + 1
enc_list.append(detect(f))
result = [dict(y) for y in set(tuple(x.items()) for x in enc_list)]
print result[0]['encoding']
Спасибо - Python-вариант - должен для меня подойти, Александр!Александр Мурый писал(а):В Linux-системе кодировку шейп-файла проще всего определить так (без Питона, нужна утилита enca):или такКод: Выделить всё
ogrinfo -al test.shp | enca
А вот вариант на Питоне с исп-ем библиотек dbfpy и chardet:Код: Выделить всё
ogr2ogr -f CSV test.csv test.dbf enca test.csv
Код: Выделить всё
from dbfpy import dbf
from chardet import detect
db = dbf.Dbf('test.dbf')
N=0
enc_list = []
for rec in db:
for f in rec.fieldData:
while N < 10:
N = N + 1
enc_list.append(detect(f))
result = [dict(y) for y in set(tuple(x.items()) for x in enc_list)]
print result[0]['encoding']