Очень, очень БЫСТРЫЙ и простой способ сортировки слоя шейп-файла (с использованием различных полей)
1 - Экспорт шейп-файла в CSV (выберите хороший разделитель, например точку с запятой) и добавьте GEOMETRY, используя «параметры слоя» -> «AS WKT»
2 - Откройте файл file.csv с помощью LIBREOFFICE (calc) и используйте MENU-> DATA-> SORT (очень интуитивно понятный, мощный и ОЧЕНЬ БЫСТРЫЙ (сортировка на лету 50000 функций с использованием 3 столбцов, таких как ключ сортировки, параметры возрастания и убывания, и я иметь очень медленную тетрадь;))
3 - Снова сохраните файл из LIBREOFFICE (calc) как «Текст CSV» (пометьте «Редактировать настройки фильтра» и выберите разделитель как «точку с запятой», не обращайте внимания на предупреждение из libreoffice, сохраните как CSV и выберите «точку с запятой» в качестве разделителя)
4 - В Qgis откройте новый файл .csv (и отсортированный) из меню «Добавить слой» -> Добавить разделитель текстового слоя.
ПРОФИ: - Очень, очень быстро, сортировка по различным полям - Работает нормально с данными в кодировке UTF_8
Минусы: - Нужно LIBREOFFICE (но это программное обеспечение с открытым исходным кодом)
Альтернативный метод сортировки (точки 2 и 3 и самый быстрый) с использованием консоли (BASH)
Откройте консоль и перейдите туда, где у вас есть файл .csv
Предположим, вы хотите отсортировать файл с ключом:
field6 (по убыванию) + поле1 (ascen) + field3 (desce)
поэтому команда будет:
сортировать -t ';' -k6,6r -k1,1 -k3,3r file.csv> file_sort.csv
ПРИМЕЧАНИЯ:
- вы можете добавить -kn, n для каждого номера столбца 'n' (поле), которое вам нужно добавить в свой "ключ сортировки"
- добавление 'r' после каждого n, n будет сортировать в обратном режиме (спуск)
- Необходимо передать разделитель символов, используемый в CSV-файл с параметром -t