Как считать геометрические данные из БД Oracle в формате MDSYS и преобразовать их в формат или GeoJson? - PullRequest
0 голосов
/ 29 апреля 2019

Я зачитываю базу данных Oracle с геопространственной геометрией, которую я сохраняю в кадре данных pandas, скажем, df с геометрическим объектом формата <cx_Oracle.Object MDSYS.SDO_GEOMETRY at 0x7f28 в столбце с именем «геометрия». Давайте сохраним это как:

g = df.geometry[0]

Что я хочу сделать:

Преобразуйте данные, хранящиеся в g, чтобы представить их на карте фолиума как PolyLine из shapely. Я знаю, что он состоит из группы точек, представляющих линейный объект.

Что я могу сделать:

  1. Я могу прочитать SDO_GTYPE, то есть g.SDO_GTYPE дает 2002.

  2. Я могу прочитать SDO_ORDINATES, но он не покажет мне координаты, сказав: <cx_Oracle.Object MDSYS.SDO_ORDINATE_ARRAY at 0x7f287848e4f0>.

Что я не могу сделать:

  1. Преобразование геометрической информации с помощью shapely и asShape:
from shapely.geometry import asShape
shape = asShape(g)

выдает ошибку: «Контекст не предоставляет геоинтерфейс».

  1. Используйте Get_WKT () или любые другие функции в SQL-выражениях

Есть коллеги, которые читают данные с помощью ГИС-инструмента, т.е. я сомневаюсь, что данные повреждены. Буду рад любым предложениям по этому вопросу.

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 29 апреля 2019

Не имею опыта работы с БД Oracle, но этот ТАК вопрос похож на ваш.

0 голосов
/ 29 апреля 2019

Этот образец может быть вам полезен.

...