QGIS में शेपफाइल्स का नाम बदलना?


12

मेरे पास एक परियोजना में परतों की एक विशाल सूची है जिसे एक विदेशी भाषा में नाम दिया गया है। मैं अंग्रेजी शीर्षक को अनुवाद और नाम में जोड़ना चाहता हूं।

जब मैं एक लेयर पर राइट क्लिक करता हूं Properties -> Generalऔर लेयर नेम को चुनता हूं और बदल देता हूं , तो इसे लेयर ट्री में देखा जाता है, लेकिन ओरिजनल फाइल वही रहती है।

क्या QGIS से मूल फ़ाइल का नाम बदलने का कोई तरीका है?

बहुत सारे हैं जो मेरे सभी फ़ोल्डरों में खोज कर रहे हैं उन्हें बहुत लंबा लगेगा।


1
मुझे लगता है कि यदि आप विंडोज़ एक्सप्लोरर का उपयोग नहीं करना चाहते हैं तो आपको फ़ाइल का नाम बदलने के लिए राइट क्लिक और सेव को चुनना होगा।
landocalrissian

QGIS.org में संबंधित सुविधा-अनुरोध को जोड़ना: issues.qgis.org/issues/15791 , इसलिए हम इस पर नज़र रख सकते हैं।
आंद्रे सिल्वा

जवाबों:


9

ऐसा करने के लिए, आपको i) को ToC से लेयर को हटाने की आवश्यकता होगी , ii) शेपफाइल (यानी, shp, dbf, shx, prj, और इसी तरह) के अनुरूप फ़ाइलों का नाम बदलें, और iii) नामांकित परत को लोड करें। QGIS। लेकिन हमें ऐसे वर्कफ़्लो को स्वचालित करने की आवश्यकता है!

यदि आप चरणों को देखते हैं, तो वे टेबल मैनेजर प्लगइन के समान हैं। इसलिए, मैंने शेपफाइल्स का नाम बदलने के लिए ऐसे प्लगइन के कोड को अनुकूलित किया, आप इसे यहां से डाउनलोड कर सकते हैं

आप इसे इस तरह से उपयोग कर सकते हैं (पहले यह देखने के लिए कि यह कैसे काम करता है एक छोटी बैकअप परियोजना के साथ प्रयास करें):

  1. ToC में अपनी QGIS परतों का नाम बदलें, इन नए नामों को आपके संबंधित Shapefiles नामों को अधिलेखित करने के लिए लिया जाएगा।
  2. अपने QGIS प्रोजेक्ट को उसी फ़ोल्डर में सहेजें, जैसा कि स्क्रिप्ट rename_shapefiles.py है
  3. QGIS पायथन कंसोल खोलें।
  4. वहां अगला कोड स्निपेट कॉपी करें:

    from rename_shapes import RenameShapefiles
    for lyr in iface.mapCanvas().layers():
        rn = RenameShapefiles( iface, lyr )
        rn.doSave()

बस! मैंने इसे GNU / Linux, QGIS 2.6 पर परीक्षण किया है। ToC में परतों का क्रम कोड चलाने के बाद बदलता रहता है।

अगर आपके पास कोई मुद्दा है तो मुझे बताएं।

यदि आपको संरक्षित किए जाने के लिए लेयर ऑर्डर की आवश्यकता है, तो एक नया प्रश्न पूछें, शायद मैं इसे देख सकता हूं :)।


4

R उपयोगकर्ताओं के लिए, मैंने एक त्वरित R फ़ंक्शन लिखा है जो बैच .shp फ़ाइल और संबद्ध सभी फ़ाइलों का नाम बदल देता है। यह बहुत नंगी हड्डियां हैं, और इसमें कोई त्रुटि जांच आदि नहीं है, इसलिए यदि यह विफल रहता है तो आपको थोड़ी जांच करने की आवश्यकता होगी।

# Function to rename shapefile (.shp) and all associated files
# fpath = full file path of any of the associated files (character)
# newName = new name for the files (character)

renameShp <- function(fpath, newName) {
  dir <- dirname(fpath)
  base <- basename(fpath)
  fname <- strsplit(base, '[.]')[[1]][1]
  ls <- list.files(path=dir, pattern=fname, full.names=TRUE)
  sapply(ls, FUN=function(p){
    file.rename(from=p, to=sub(pattern=fname,replacement=newName, p))
  })
  print(paste("Renamed", length(ls), "files."))
}

1

यदि आपके पास उनका नाम बदलने के लिए एक सुसंगत स्कीमा है, तो आप इसे अजगर स्क्रिप्ट में कर सकते हैं। अजगर में एक विधि os.rename (src, dest) है । विशिष्ट विवरण इस बात पर निर्भर करेगा कि फ़ाइलों का नाम बदलने के लिए एल्गोरिथ्म क्या है। यह वास्तविक फ़ाइलों का नाम बदलने के लिए है, न कि केवल TOC में परत नामों के लिए।

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


1

मैं आपकी फ़ाइलों का नाम बदलने के लिए इस कार्यक्रम का उपयोग करने का सुझाव देता हूं http://www.bulkrenameutility.co.uk/Main_Intro.php । यह खुला और उपयोग में आसान है। आपके द्वारा अपनी फ़ाइल का नाम बदल दिए जाने के बाद, आपको एक पाठ संपादक, आपकी qgis प्रोजेक्ट फ़ाइल (नोटपैड ++ आज़माएं) के साथ एक ही खोज और प्रतिस्थापित करना होगा।

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