Сортировка таблицы атрибутов.

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Ответить
Vahit ogli
Новоприбывший
Сообщения: 4
Зарегистрирован: 30 сен 2014, 02:14
Репутация: 0

Сортировка таблицы атрибутов.

Сообщение Vahit ogli » 30 сен 2014, 02:33

Всем привет. Сразу скажу, что я ламер. Возникла необходимость в сортировке населенных пунктов РФ по численности населения. Я пытаюсь использовать фильтр вида ""POPULATION" > 5000", но в результате фильтруются те населенные пункты, где число населения начинается до 5 (например, 494567). Я заметил, что при сортировке таблицы атрибутов колонка Population принимает вид
erwqwea.jpg
erwqwea.jpg (171.48 КБ) 12163 просмотра
, т.е числа идут не в прямом порядке возрастания(например,1 100 2 21 2154 22). Насколько я понял данная проблема не зависит от ПО, так как она повторялась у меня и в Map 3d, и в QGISе. Не подскажите как мне это исправить?

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Сортировка таблицы атрибутов.

Сообщение trir » 30 сен 2014, 03:38

Какой тип данных столбца?

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: Сортировка таблицы атрибутов.

Сообщение rhot » 30 сен 2014, 10:56

Ага, поменяйте тип данных на числовой.
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Vahit ogli
Новоприбывший
Сообщения: 4
Зарегистрирован: 30 сен 2014, 02:14
Репутация: 0

Re: Сортировка таблицы атрибутов.

Сообщение Vahit ogli » 30 сен 2014, 11:40

Мммм, а как это сделать? :)

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

Re: Сортировка таблицы атрибутов.

Сообщение Ariki » 30 сен 2014, 11:52

По логике, конечно, поле должно быть числовым. Но если по каким-либо причинам тип поля поменять неудобно или нежелательно, можно преобразовать на лету прямо в выражении:

Код: Выделить всё

toint("POPULATION") > 5000
Чтобы поменять тип поля, можно добавить новое поле нужного типа и использовать калькулятор полей, чтобы перенести в него значения из старого.

Vahit ogli
Новоприбывший
Сообщения: 4
Зарегистрирован: 30 сен 2014, 02:14
Репутация: 0

Re: Сортировка таблицы атрибутов.

Сообщение Vahit ogli » 30 сен 2014, 12:43

К сожалению, мне не удается использовать калькулятор полей в QGISе, так как почему то режим редактирования мне недоступен.
31af.jpg
31af.jpg (529.63 КБ) 12075 просмотров
Я пробовал использовать команды

Код: Выделить всё

ToInt64 (   POPULATION   ) 
в калькуляторе в Map 3d, но он выдает ошибку
"Failed to execute Fdo command.
The data type 'FdoDataType_Int64' is not supported by this provider."
Если я использую фильтр

Код: Выделить всё

ToInt64(POPULATION) > 5000
то результата просто нет. :(

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: Сортировка таблицы атрибутов.

Сообщение Игорь Белов » 30 сен 2014, 13:29

Почему слой нередактируемый, неясно. Взятый отсюда редактируется.

Все функции перечислены в меню. Не надо изобретать какое-то ToInt64(), если можно выбрать из списка toint().
capture_20140930_142031.png
capture_20140930_142031.png (25.45 КБ) 12059 просмотров
Имена полей тоже можно выбрать из списка.

Открывая шейп, укажите явно кодировку UTF-8, а то кириллица не читается.
capture_20140930_142125.png
capture_20140930_142125.png (66.43 КБ) 12058 просмотров
The purpose of computing is insight, not numbers

trir
Гуру
Сообщения: 5355
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1021
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Сортировка таблицы атрибутов.

Сообщение trir » 30 сен 2014, 13:56

Странно, Civil 3D 2015 - работают ToInt64() и ToInt32()

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: Сортировка таблицы атрибутов.

Сообщение Игорь Белов » 30 сен 2014, 14:15

trir писал(а):Странно, Civil 3D 2015 - работают ToInt64() и ToInt32()
Кто же спорит? Просто на картинках QGIS.
The purpose of computing is insight, not numbers

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: Сортировка таблицы атрибутов.

Сообщение Игорь Белов » 30 сен 2014, 14:15

trir писал(а):Странно, Civil 3D 2015 - работают ToInt64() и ToInt32()
Кто же спорит? Просто на картинках QGIS.
The purpose of computing is insight, not numbers

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: Сортировка таблицы атрибутов.

Сообщение Игорь Белов » 30 сен 2014, 14:15

trir писал(а):Странно, Civil 3D 2015 - работают ToInt64() и ToInt32()
Кто же спорит? Просто на картинках QGIS.
The purpose of computing is insight, not numbers

Vahit ogli
Новоприбывший
Сообщения: 4
Зарегистрирован: 30 сен 2014, 02:14
Репутация: 0

Re: Сортировка таблицы атрибутов.

Сообщение Vahit ogli » 01 окт 2014, 00:00

Всем спасибо. Наконец все получилось. Использовал калькулятор полей, преобразовал значения. Не все было гладко, так как в таблице значений были числа вида 1.0 или 2.0, которые пришлось вычистить вручную. После все было ОК.

Аватара пользователя
Игорь Белов
Гуру
Сообщения: 2241
Зарегистрирован: 04 янв 2011, 22:00
Репутация: 1514
Откуда: Казань

Re: Сортировка таблицы атрибутов.

Сообщение Игорь Белов » 01 окт 2014, 06:58

Vahit ogli писал(а):в таблице значений были числа вида 1.0 или 2.0, которые пришлось вычистить вручную
Лишняя работа. Просто надо было использовать функцию toreal() вместо toint().

Кроме того, QGIS выполняет неявно преобразования типов, и можно обойтись простым выражением вида

Код: Выделить всё

"POPULATION" >= 5000
Правда, здесь надо держать ухо востро: по запросу могут быть выданы неконвертируемые значения. В моей версии settlement-point в выборке оказались записи с такими значениями POPULATION: "?", "1 147" и восемь штук "К".
The purpose of computing is insight, not numbers

Ответить

Вернуться в «Общие вопросы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей