अजगर शेपफाइल नहीं पढ़ सकता


11

मैं Jupyter नोटबुक के साथ एक शेपफाइल खोलने की कोशिश कर रहा हूं, लेकिन मैं इसे खोलने के लिए नहीं मिल सकता। शेपफाइल मेरी कार्यपुस्तिका के समान फ़ोल्डर में स्थित है, और पायथन इसकी पहचान नहीं कर सकता है भले ही मैं पूर्ण पथ का उपयोग करूं।

import shapefile as shp
import matplotlib.pyplot as plt

sf = shp.Reader(r'C:\Users\Public\Documents\1-11-99n.shp')

ShapefileException: Unable to open C:\Users\Public\Documents\1-11-99n.dbf or C:\Users\Public\Documents\1-11-99n.shp.

इसे फियोना और जियोपैन्डस के साथ खोलने पर भी काम नहीं करता है।

import fiona
shape = fiona.open("1-11-99n.shp")

तथा

import geopandas as gp
shp = gp.GeoDataFrame.from_file('1-11-99n.shp')
print (shp)

दोनों साथ समाप्त होते हैं

CPLE_OpenFailedError: b'Unable to open 1-11-99n.shx or 1-11-99n.SHX.Try --config SHAPE_RESTORE_SHX true to restore or create it'

मुझे पता है कि यह एक तुच्छ मुद्दा हो सकता है, लेकिन मैं शेपफाइल्स और स्थानिक पायथन पुस्तकालयों का उपयोग करने के लिए नया हूं इसलिए मुझे वास्तव में नहीं पता कि इस मुद्दे के आसपास कैसे काम किया जाए।


एक अंडरस्कोर के साथ माइनस को बदलें और फिर से कोशिश करें .. शेपफाइल नामों में केवल अक्षर, संख्या और अंडरस्कोर शामिल हैं । एक पत्र के साथ नाम शुरू करना भी एक अच्छा विचार होगा। यदि समस्या बनी रहती है तो शेपफाइल संभवतः भ्रष्ट है या .SHX गायब है .. क्या आपके पास सिर्फ .SHP फ़ाइल है या क्या आपके पास फ़ाइलों (.SHP, .SHX, .DBF, .PRJ आदि) का पूरा सेट है। )?
माइकल स्टिमसन

संभवतः आपकी आकृति भ्रष्ट है। मैं 1-11-99n.shp के रूप में एक मनमाना आकार बचाने के लिए और मैं आकार, fiona या geopandas के साथ अपने मिनी लिपियों में से कोई भी मुद्दा नहीं था।
xunilk

3
हाँ समस्या यह थी कि मैंने अन्य shx, dbf, आदि फ़ाइलों को शामिल नहीं किया था जिनकी मुझे आवश्यकता थी। मैंने पहले कभी shp फ़ाइलों का उपयोग नहीं किया है, इसलिए मुझे नहीं पता था कि इसके लिए फ़ाइलों के पूरक की आवश्यकता है। फिल्म का नाम बदले बिना ठीक काम किया। धन्यवाद!
लियोनार्ड शॉ

1
@LeonardShaw कृपया अपने प्रश्न का उत्तर प्रदान करने पर विचार करें ताकि हम इस प्रश्न को हल कर सकें।
आरोन

दोहराना करने के लिए, यह फ़ाइल नाम में एक अग्रणी संख्यात्मक या हाइफ़न होने के लिए आकार-निर्धारण विनिर्देश का उल्लंघन है। यह नामकरण से बचने के लिए सबसे अच्छा अभ्यास है जो कुछ शेपफाइल रीडर कार्यान्वयन में विफलताओं का कारण होगा।
विंस

जवाबों:


21

पहली बार आकृति के उपयोगकर्ताओं के लिए एक जाल है। वास्तविक शेपफाइल (.shp) साथी फ़ाइलों के बिना बेकार है: .dbf, .shx, .j।

यह आकार-प्रकार तकनीकी विनिर्देश में उल्लिखित है, लेकिन यह थोड़ा उन्नत है, Esri लेख त्वरित स्पष्टीकरण के लिए अधिक उपयुक्त हो सकता है।

यह महत्वपूर्ण है कि सभी आकार की फाइलों को एक इकाई के रूप में माना जाता है। यदि शेपफाइल को किसी भी चरण में संपादित किया जाता है, यहां तक ​​कि सिर्फ विशेषता में परिवर्तन होता है, तो FID (सुविधा पहचानकर्ता) बदल जाता है, जिसका अर्थ है कि .DBF फ़ाइल में क्रम बदल दिया गया है .. क्या आपको एक आकृति के गुणों को संपादित करना चाहिए और केवल .DBF फ़ाइल की प्रतिलिपि बनाएँ। किसी मौजूदा .DBF फ़ाइल को ओवरराइट करने से आकृतियाँ गलत पंक्तियों की ओर संकेत करेंगी । हमेशा सभी फाइलों को एक साथ कॉपी करें

ईमेल, ड्रॉपबॉक्स, गूगल ड्राइव आदि द्वारा शेपफाइल भेजते समय मुझे सभी फाइलों को एक ही आर्काइव में जिप करने में आसानी होती है ताकि जब यह अनजिप हो जाए तो सभी संबंधित फाइल एक साथ दिखाई दें।


1
अधिक सटीक होना करने के लिए: .shp, .dbf और .shx पूर्ण न्यूनतम हैं (मानक के अनुसार)। QGIS / OGR आपको एक .dbf फ़ाइल को खोलने की अनुमति देगा, लेकिन आप उन सुविधाओं को हटा या संपादित नहीं कर पाएंगे। हालाँकि, आप लापता dbf फ़ाइल (खाली विशेषता तालिका के साथ) बनाने के लिए ogr2ogr का उपयोग कर सकते हैं
LuWi

2
@LuWi यहां तक ​​कि .SHX फ़ाइल को फिर से बनाया जा सकता है, यह स्थानिक सूचकांक है, कुछ उपकरण और विकल्प हैं जो मौजूदा आकृतियों से स्थानिक सूचकांक का पुनर्निर्माण कर सकते हैं। संबंधित फ़ाइलों की सटीक संख्या भिन्न होती है, लेकिन हमेशा सब कुछ एक साथ रखना सबसे अच्छा होता है ।
माइकल स्टिम्सन

0

यदि आपके पास एकमात्र आइटम है। https://gis.stackexchange.com/a/306228 आपको अपने उद्देश्य के आधार पर अभी भी एक .proj फ़ाइल की आवश्यकता हो सकती है, लेकिन किसी अन्य प्रोजेक्ट से कॉपी किए गए "मानक" और अपने आकार से मेल खाने के लिए नाम बदलने में सक्षम हो सकता है। , अगर वह समान प्रक्षेपण का उपयोग करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.