أكثر

خطأ في استيراد shp إلى postgis باستخدام ogr2ogr؟


أقوم بتشغيل برنامج نصي آلي ينسخ عددًا من ملفات الأشكال في PostGIS. لدي مشكلة في مجموعة بيانات واحدة تفشل أثناء التصدير. نظرًا لأن مجموعة بيانات roads.shp تتم إدارتها بواسطة شخص آخر ، فأنا أتمتة عمل نسخة من ملف الأشكال الخاص بهم في قاعدة بيانات PostGIS الخاصة بي. خطأي هو ؛

الخطأ 1: فشل بيان النسخ خطأ: تجاوز الحقل الرقمي التفاصيل: حقل بدقة 13 ، يجب تقريب المقياس 11 إلى قيمة مطلقة أقل من 10 ^ 2. السياق: نسخ ccbc_roads ، السطر 2 ، طول العمود: "222.05900000000"

قانون بلدي على النحو التالي؛

ogr2ogr.exe -f PostgreSQL PG: "dbname = postgis host = localhost user = postgres password = mypassword active_schema = ccbc_data" "roads.shp" -overwrite -a_srs "EPSG: 27700" -lco GEOMETRY_NAME = geom -nln "cc nlt PROMOTE_TO_MULTI - تكوين PG_USE_COPY نعم

الحقل الذي يسبب المشكلة هو طول الطريق. هل هناك طريقة لتغيير المقياس من 11 إلى 2 في الكود الخاص بي حتى يعمل البرنامج النصي؟


هناك طريقة أكثر استدامة لهذا الذي يستخدم-unsetFieldWidthعلم. باستخدام هذا الإعداد ، لن تحتاج إلى استخدام SQL ويتم تطبيق جميع الطبقات.


نظرًا لأن مالك البيانات لا يمكنه تغيير أنواع الحقول ، فقد استخدمت ogr2ogr و a -sql select statement لاستبعاد الحقل الذي يسبب المشاكل. نظرًا لأن الحقل LENGTH عبارة عن بيانات مشتقة ، فإنه يظهر في QGIS على أي حال لذلك كنت على ما يرام في حذفه.

الكود الجديد الخاص بي هو على النحو التالي ؛

ogr2ogr.exe -f PostgreSQL PG: "dbname = postgis host = localhost user = username password = mypassword postgres active_schema = ccbc_data" "M:  data  roads.shp" -sql "select road_id، form_of_wa، oneway، cat، class، route_numb، right_nam، locality، place FROM road "-overwrite -a_srs" EPSG: 27700 "-nln" ccbc_roads "-lco GEOMETRY_NAME = geom --config PG_USE_COPY نعم

خطأ في استيراد shp إلى postgis باستخدام ogr2ogr؟ - نظم المعلومات الجغرافية

أنا أستخدم QGIS 3.10 مع لوحة ArdusimpleRTK2B على أساس معالج U-Blox ZED F9P وجهاز كمبيوتر لوحي يعمل بنظام Windows 10.

باستخدام خدمة تصحيح SAPOS وتوصيلها عبر نظام تحديد المواقع العالمي (GPSd) ، توفر اللوحة دقة سم نميا سلاسل $ GNGGA و GNRMC دولار. يُظهر موضع المؤشر في الخريطة بالضبط موضع الهوائي.

لكنني أتساءل لماذا لا يُظهر QGIS قيم السرعة والاتجاه والجودة. في مربع معلومات GPS؟ ما نوع بيانات NMEA التي يتوقع QGIS إظهارها بشكل صحيح؟

على غرار المنشور الآخر ، قام Nyall Dawson وآخرون بإجراء تغييرات هائلة على معالجة GPS في QGIS. لا أرى $ GPVTG ، والتي تبدو مثل رسالة NMEA التي تحتاجها للسرعة.

يجب أن يمنحك طلب السحب هذا ما تحتاجه لجودة الكوكبة / القمر الصناعي.

تم دمج هذه العلاقات العامة في نسخة رئيسية ، لكنني لا أرى علامة فارقة لإصدارها. أظن 3.12 ، لكن ليس لدي طريقة للتأكيد على وجه اليقين.


شاهد الفيديو: Postgresql: Create Postgis database and import shapefiles. (شهر اكتوبر 2021).