Импорт растров через Postgis

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

Re: Импорт растров через Postgis

Сообщение trir » 12 июл 2024, 10:54

Почему две 'c'?

AlexRomantsov
Завсегдатай
Сообщения: 420
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 162
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Импорт растров через Postgis

Сообщение AlexRomantsov » 12 июл 2024, 10:57

а почему public c двумя сс? В базе как?

Budjik
Интересующийся
Сообщения: 23
Зарегистрирован: 29 мар 2024, 16:33
Репутация: 0
Откуда: Москва

Re: Импорт растров через Postgis

Сообщение Budjik » 12 июл 2024, 11:05

AlexRomantsov писал(а):
12 июл 2024, 10:57
а почему public c двумя сс? В базе как?
В базе тоже так, я специально обозвал
Вложения
Screenshot_11.jpg
Screenshot_11.jpg (48.1 КБ) 3673 просмотра

Budjik
Интересующийся
Сообщения: 23
Зарегистрирован: 29 мар 2024, 16:33
Репутация: 0
Откуда: Москва

Re: Импорт растров через Postgis

Сообщение Budjik » 12 июл 2024, 11:16

Поменял имя схемы на public и загрузка пошла. Видимо это имя зарезервировано было. Спасибо.

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

Re: Импорт растров через Postgis

Сообщение trir » 12 июл 2024, 11:19

public - служебная схема, лучше её не трогать

AlexRomantsov
Завсегдатай
Сообщения: 420
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 162
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Импорт растров через Postgis

Сообщение AlexRomantsov » 12 июл 2024, 11:19

только имя таблицы надо было не именем растра, а более универсальное. Там потом одноименные индексы, ограничения полей и т.п. создадутся, неудобный пример после подобного импорта:
Спойлер
CREATE TABLE IF NOT EXISTS public._08_01_2020_msk_orto_5cm_miks2018
(
rid integer NOT NULL DEFAULT nextval('_08_01_2020_msk_orto_5cm_miks2018_rid_seq'::regclass),
rast raster,
CONSTRAINT _08_01_2020_msk_orto_5cm_miks2018_pkey PRIMARY KEY (rid),
CONSTRAINT enforce_srid_rast CHECK (st_srid(rast) = 0),
CONSTRAINT enforce_scalex_rast CHECK (round(st_scalex(rast)::numeric, 10) = round(0.05, 10)),
CONSTRAINT enforce_scaley_rast CHECK (round(st_scaley(rast)::numeric, 10) = round(- 0.05, 10)),
CONSTRAINT enforce_width_rast CHECK (st_width(rast) = 32),
CONSTRAINT enforce_height_rast CHECK (st_height(rast) = 32),
CONSTRAINT enforce_same_alignment_rast CHECK (st_samealignment(rast, '01000000009A9999999999A93F9A9999999999A9BFCDCCCCCCCC3F8F40333333330394C140000000000000000000000000000000000000000001000100'::raster)),
CONSTRAINT enforce_num_bands_rast CHECK (st_numbands(rast) = 4),
CONSTRAINT enforce_pixel_types_rast CHECK (_raster_constraint_pixel_types(rast) = '{8BUI,8BUI,8BUI,8BUI}'::text[]),
CONSTRAINT enforce_nodata_values_rast CHECK (_raster_constraint_nodata_values(rast) = '{NULL,NULL,NULL,NULL}'::numeric[]),
CONSTRAINT enforce_out_db_rast CHECK (_raster_constraint_out_db(rast) = '{f,f,f,f}'::boolean[]),
CONSTRAINT enforce_max_extent_rast CHECK (st_envelope(rast) @ '01030000000100000005000000CDCCCCCCCC3F8F40666666660640BF40CDCCCCCCCC3F8F40333333330394C14066666666E63F9F40333333330394C14066666666E63F9F40666666660640BF40CDCCCCCCCC3F8F40666666660640BF40'::geometry) NOT VALID
)

TABLESPACE pg_default;

ALTER TABLE IF EXISTS public._08_01_2020_msk_orto_5cm_miks2018
OWNER to postgres;
-- Index: _08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx

-- DROP INDEX IF EXISTS public._08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx;

CREATE INDEX IF NOT EXISTS _08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx
ON public._08_01_2020_msk_orto_5cm_miks2018 USING gist
(st_convexhull(rast))
TABLESPACE pg_default;

Budjik
Интересующийся
Сообщения: 23
Зарегистрирован: 29 мар 2024, 16:33
Репутация: 0
Откуда: Москва

Re: Импорт растров через Postgis

Сообщение Budjik » 12 июл 2024, 11:50

AlexRomantsov писал(а):
12 июл 2024, 11:19
только имя таблицы надо было не именем растра, а более универсальное. Там потом одноименные индексы, ограничения полей и т.п. создадутся, неудобный пример после подобного импорта:
Спойлер
CREATE TABLE IF NOT EXISTS public._08_01_2020_msk_orto_5cm_miks2018
(
rid integer NOT NULL DEFAULT nextval('_08_01_2020_msk_orto_5cm_miks2018_rid_seq'::regclass),
rast raster,
CONSTRAINT _08_01_2020_msk_orto_5cm_miks2018_pkey PRIMARY KEY (rid),
CONSTRAINT enforce_srid_rast CHECK (st_srid(rast) = 0),
CONSTRAINT enforce_scalex_rast CHECK (round(st_scalex(rast)::numeric, 10) = round(0.05, 10)),
CONSTRAINT enforce_scaley_rast CHECK (round(st_scaley(rast)::numeric, 10) = round(- 0.05, 10)),
CONSTRAINT enforce_width_rast CHECK (st_width(rast) = 32),
CONSTRAINT enforce_height_rast CHECK (st_height(rast) = 32),
CONSTRAINT enforce_same_alignment_rast CHECK (st_samealignment(rast, '01000000009A9999999999A93F9A9999999999A9BFCDCCCCCCCC3F8F40333333330394C140000000000000000000000000000000000000000001000100'::raster)),
CONSTRAINT enforce_num_bands_rast CHECK (st_numbands(rast) = 4),
CONSTRAINT enforce_pixel_types_rast CHECK (_raster_constraint_pixel_types(rast) = '{8BUI,8BUI,8BUI,8BUI}'::text[]),
CONSTRAINT enforce_nodata_values_rast CHECK (_raster_constraint_nodata_values(rast) = '{NULL,NULL,NULL,NULL}'::numeric[]),
CONSTRAINT enforce_out_db_rast CHECK (_raster_constraint_out_db(rast) = '{f,f,f,f}'::boolean[]),
CONSTRAINT enforce_max_extent_rast CHECK (st_envelope(rast) @ '01030000000100000005000000CDCCCCCCCC3F8F40666666660640BF40CDCCCCCCCC3F8F40333333330394C14066666666E63F9F40333333330394C14066666666E63F9F40666666660640BF40CDCCCCCCCC3F8F40666666660640BF40'::geometry) NOT VALID
)

TABLESPACE pg_default;

ALTER TABLE IF EXISTS public._08_01_2020_msk_orto_5cm_miks2018
OWNER to postgres;
-- Index: _08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx

-- DROP INDEX IF EXISTS public._08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx;

CREATE INDEX IF NOT EXISTS _08_01_2020_msk_orto_5cm_miks2018_rast_gist_idx
ON public._08_01_2020_msk_orto_5cm_miks2018 USING gist
(st_convexhull(rast))
TABLESPACE pg_default;
да, я поменял имя таблицы при загрузе одного растра, спасибо.
Еще вопрос, может знаете. В именах файлах .tif присутствует кириллица. И видимо поэтому он не читается. Это можно как то обойти? Кодировку chcp менял на 1251, но это только помогает отображать в самой консоле кириллицу.
Вложения
Screenshot_12.jpg
Screenshot_12.jpg (23.75 КБ) 3633 просмотра

AlexRomantsov
Завсегдатай
Сообщения: 420
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 162
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Импорт растров через Postgis

Сообщение AlexRomantsov » 12 июл 2024, 12:09

Групповое перименование, поиск и замена в именах файлов. В качестве информационного слоя (планшетки) лучше вектор с охватами растров и корректными названиями в name

Budjik
Интересующийся
Сообщения: 23
Зарегистрирован: 29 мар 2024, 16:33
Репутация: 0
Откуда: Москва

Re: Импорт растров через Postgis

Сообщение Budjik » 12 июл 2024, 12:23

AlexRomantsov писал(а):
12 июл 2024, 12:09
Групповое перименование, поиск и замена в именах файлов. В качестве информационного слоя (планшетки) лучше вектор с охватами растров и корректными названиями в name
Слои получилось загрузить БД, но вот в самом QGIS, при попытке добавить слой в проект, вылезает ошибка.



Screenshot_13.jpg
Screenshot_13.jpg (74.91 КБ) 3608 просмотров



При этом, если я загружаю только 1 растр, он его открывает. А если два и более в 1 таблицу, то выдает ошибку.

Screenshot_14.jpg
Screenshot_14.jpg (61.12 КБ) 3582 просмотра

AlexRomantsov
Завсегдатай
Сообщения: 420
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 162
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Импорт растров через Postgis

Сообщение AlexRomantsov » 12 июл 2024, 12:43

а в rasters_columns нет чего интересного? множество растров в такой тип каталога прилетает

Budjik
Интересующийся
Сообщения: 23
Зарегистрирован: 29 мар 2024, 16:33
Репутация: 0
Откуда: Москва

Re: Импорт растров через Postgis

Сообщение Budjik » 12 июл 2024, 12:49

AlexRomantsov писал(а):
12 июл 2024, 12:43
а в rasters_columns нет чего интересного? множество растров в такой тип каталога прилетает
Как то так. Добавить в слои тоже не могу.

Screenshot_18.jpg
Screenshot_18.jpg (101.05 КБ) 3542 просмотра
Вложения
Screenshot_15.jpg
Screenshot_15.jpg (91.22 КБ) 3568 просмотров
Последний раз редактировалось Budjik 12 июл 2024, 13:12, всего редактировалось 1 раз.

Budjik
Интересующийся
Сообщения: 23
Зарегистрирован: 29 мар 2024, 16:33
Репутация: 0
Откуда: Москва

Re: Импорт растров через Postgis

Сообщение Budjik » 12 июл 2024, 13:04

Способы добавления одинаковые. Может дело в команде? Для массовых надо что то другое прописать?

raster2pgsql -F -I -C -s 4326 D:\projectMOQGIS\n\*.tif -t 100x100 public.zona4 | psql -d test -U postgres -h localhost

Ответить

Вернуться в «Я новичок!»

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

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