أكثر

تحويل ملف CSV بعمود WKT إلى ملف أشكال

تحويل ملف CSV بعمود WKT إلى ملف أشكال


باستخدام ogr2ogr في Python ، أحاول تحويل ملف CSV إلى ملف شكل. يحتوي أحد الأعمدة في CSV ، المسمى "Polygon" ، على WKT مثل هذا: POLYGON ((خط العرض الطويل ، خط العرض الطويل ، خط العرض الطويل ، إلخ.)) حاليًا ، يمكنني إنشاء ملف شكل مضلع بالإسقاط الصحيح ، لكن الشكل الهندسي فارغ . كيف يمكنني تعديل وسيطات ogr2ogr الخاصة بي لإنشاء الشكل الهندسي بشكل صحيح باستخدام WKT في كل صف؟ لدي حاليًا شيء مثل هذا:

ogr2ogr.main ([""، "-a_srs"، "EPSG: 4326"، "-f"، "ESRI Shapefile"، "output.shp"، "input.csv"، "-nlt"، "POLYGON"] )

لا أعرف ما إذا كان سيساعدك ولكني اختبرت ogr2ogr تقوم أداة سطر الأوامر وهذا الأمر بتنفيذ المهمة (بافتراض أن "المضلع" هو الحقل الذي يحتوي على الهندسة في WKT):

ogr2ogr -f "ESRI Shapefile" output.shp -dialect sqlite -sql "SELECT * ، GeomFromText (Polygon) من الإدخال" input.csv -a_srs "WGS84"

ربما يمكنك تكييف ذلك مع أداة ogr2ogr python؟

لقد نشرت أيضًا إجابة على Stack Overflow ، باستخدام روابط ogr python (إنها تفعل الشيء نفسه بشكل أساسي ، لكن أكثر من سطر واحد من التعليمات البرمجية ...!)

تحرير: لقد اختبرت باستخدام أداة ogr2ogr python ويبدو أن المعلمة -dialect لم يتم تنفيذها.
ومع ذلك ، إذا لم تتمكن من العثور على خيار أفضل ، فإنه يعمل إذا اتصلت بـ ogr2ogr (أداة سطر الأوامر) مع عملية فرعية في بايثون:

في [24]: استيراد العملية الفرعية في [25]: subprocess.call (["ogr2ogr"، "-a_srs"، "WGS84"، "-f"، "ESRI Shapefile"، "output.shp"، "input.csv "،" -dialect "،" sqlite "،" -sql "،" SELECT *، GeomFromText (Polygon) من الإدخال "]) إخراج [25]: 0

كما ترى سيعود رمز الإرجاع للعملية (هنا ، 0 إذا نجحت أو 1 إذا فشلت).
(تم اختباره باستخدام GDAL 1.11.2 / python 3.4)


شاهد الفيديو: تحويل ملفات أكسل إلى CSV و arff