বৈশিষ্ট্যগুলি মুছে ফেলা হলে কীভাবে শেফফায়ালের আকার হ্রাস করবেন?


9

এই ছোট্ট স্ক্রিপ্টটি সমস্ত স্তরগুলির সমস্ত ছোট বৈশিষ্ট্য মুছে ফেলে। এটি সূক্ষ্মভাবে কাজ করে তবে .shp ফাইলের আকার হ্রাস হয় না। অনুগ্রহ করে বলো কেনো...

canvas = iface.mapCanvas()
expr = QgsExpression("$length<100")
for l in canvas.layers():
    l.startEditing()
    it = l.getFeatures(QgsFeatureRequest(expr))
    for ft in it:
        l.deleteFeature(ft.id())
    l.commitChanges()

উত্তর:


14

কারণ শেপফাইলগুলি থেকে বৈশিষ্ট্যগুলি মুছে ফেলার দ্রুততম উপায় হ'ল সমস্ত .shp, .shx, এবং .dbf অংশগুলি আবার না লিখে .dbf অংশে "মুছে ফেলা" পতাকা সহ রেকর্ডগুলি চিহ্নিত করা। এটি জিডিএল shp ড্রাইভার পৃষ্ঠাতে নথিভুক্ত করা হয়েছে http://www.gdal.org/drv_shapefile.html

ওজিআর শেফফাইল ড্রাইভার একটি শেপফাইলে বিদ্যমান আকারগুলিকে পুনর্লিখনের পাশাপাশি আকারগুলি মুছে ফেলার জন্য সমর্থন করে। মোছা আকারগুলি .dbf ফাইলে মুছে ফেলার জন্য চিহ্নিত করা হয় এবং তারপরে ওজিআর দ্বারা উপেক্ষা করা হয়। প্রকৃতপক্ষে এগুলি স্থায়ীভাবে অপসারণ করতে (এফআইডিগুলির পুনর্নবীকরণের ফলস্বরূপ) ডেটাসোর্স এক্সিকিউটস এসকিউএল () পদ্ধতির মাধ্যমে এসকিউএল 'পুনরায় প্রত্যাবর্তন' করুন।


2
প্রযুক্তিগতভাবে, ডিবেসের "মুছে ফেলা হিসাবে চিহ্নিত করুন" বৈশিষ্ট্যটি শেফফায়ালগুলি সমর্থন করে না, সুতরাং জিডিএল এটির জন্য যখন দুর্নীতিগ্রস্ত শেফ ফাইলগুলি তৈরি করে।
ভিন্স

এখানে একটি পুরানো উত্তর রয়েছে gis.stackexchange.com/questions/162615/… (এটি সম্ভবত একটি সদৃশ) যেখানে আমি দেখতে পেলাম যে ইএসআরআই দ্বারা ম্যাপোবজেক্টগুলির অনুরূপ ডেলরেকর্ড (সূচক) পদ্ধতি রয়েছে যা শারীরিকভাবে কোনও কিছু মুছে দেয় না। সম্ভবত ইএসআরআই প্রোগ্রামগুলি শেফফিলগুলি বন্ধ করার আগে "প্যাক" চালানোর আরও ভাল যত্ন নেয় তবে মনে হয় তাদের "মুছে ফেলা হিসাবে চিহ্নিত" এর কিছুটা সমর্থন আছে।
ব্যবহারকারী 30184

স্তরটিতে একটি 'হিসাবে সংরক্ষণ করুন' সম্পাদন করা মুছে ফেলা বৈশিষ্ট্যগুলি সরিয়ে ফেলবে।
স্পেশালসুসেস 21

কিউজিআইএস এবং অজগর নিয়ে আমার এত বড় অভিজ্ঞতা নেই। আপনি কীভাবে এসকিউএল 'প্রত্যাখ্যান' করবেন?
ইভানএইচ

5

আপনি যে কিউজিআইএস-এর সংস্করণটি এটি দেখছেন তা পরীক্ষা করা উচিত।

আমি জানি যে এই আচরণটি ২.১14 সংস্করণে টুইঙ্ক করা হয়েছিল, যাতে মুছে ফিটফ্রেচারগুলিকে কল করার পরে কোনও শেফফাইল পুনরায় বাকী হয়ে যায় যে কোনও অনাথ সারি সরিয়ে ফেলতে পারে।

আপনার 2.14 সংস্করণটি পুনরায় পরীক্ষা করা উচিত এবং দেখুন কোনও উন্নতি হয়েছে কিনা।


উত্তরের জন্য তোমাকে অনেক ধন্যবাদ. এটি দুর্দান্ত শোনায় যে এটি 2.14 সংস্করণে টুইঙ্ক করা হয়েছিল। আমি ২.১২.২ সংস্করণ চালাচ্ছি এবং আমি জানি যে ২.১২.৩ ডাউনলোডের জন্য প্রস্তুত তবে আমি ২.১৪ সংস্করণটি কোথায় পাব?
ইভানএইচ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.