কিউজিআইএস-এ "খারাপ স্তরগুলি পরিচালনা করুন" কীভাবে উপেক্ষা করবেন?


11

আমার একটি কিউজিআইএস (২.১৪.৩-এসেন) প্রকল্প রয়েছে যা আমি কাজে এবং বাড়িতে উভয়ই ব্যবহার করি। আমি প্রকল্পের সাথে দুটি স্তর ছাড়া সমস্ত রাখি।

বাকী দুটি স্তর খুব বড় - একটি ডিইএম এবং হিলস্যাড মোট 20 জিবি এরও বেশি - এবং সেগুলি কর্ম বনাম বাড়িতে বিভিন্ন পথে সংরক্ষণ করা হয়।

আমি Handle Bad Layersসংলাপটি উপেক্ষা করে এই স্তরগুলির জন্য ভাঙ্গা পথগুলি রাখতে চাই । আমি প্রায়শই যত্ন করি না যে তারা খারাপ; আমি প্রকল্পের অন্যান্য অংশে পরিবর্তন করতে চাই।

হ্যান্ডল বাড লেয়ার সংলাপটিকে উপেক্ষা বা এড়িয়ে যাওয়ার কোনও উপায় আছে যাতে আমি স্তরগুলি আপডেট না করি তবে আমি রেফারেন্সটি হারাব না?


এটি কিউজিআইএস-এ আপস্ট্রি সমাধান করা উচিত। এটি করা খুব কঠিন হবে না। আমি এই স্থির আপস্ট্রিমটি পেতে সুপারিশ করব (উদাহরণস্বরূপ ডায়ালগের অতিরিক্ত বিকল্পগুলি: ক) এই অধিবেশনটিতে লুকানো খ) উত্স উত্সের পথটি গ) স্তর সরান)। আছে প্রায় কোম্পানীর অনেক আপনার জন্য এই কাজ করতে খুশি হবে।
ম্যাথিয়াস

1
@ মাথিয়াস কুহন - এটি একটি খুব ভাল ধারণা, এটি এগিয়ে যাওয়ার একটি ভাল উপায় হবে। আমি সেই তালিকার একটি পরামর্শ ব্যবহার করি (নিশ্চিত না যে তাদের নামকরণের কাজটি শেষ হয়েছে কিনা?) আমি তাদের সাথে সম্ভাবনা অন্বেষণ করব। ধন্যবাদ
মার্টিন হোগি

@ মার্টিনহাগি আপনি কি এতে কোন অগ্রগতি করেছেন? অনুরূপ কিছু মেইলিং তালিকাগুলিতে
ম্যাথিয়াস

না আমি এটির অগ্রগতি করি নি, আমি বাস্তবে ভুলে গিয়েছিলাম কারণ এটি এখন আমাদের জীবনযাপনগুলির মধ্যে একটি হয়ে গেছে। অনুস্মারকটির জন্য ধন্যবাদ, আমি আমাদের পরামর্শকে প্রশ্ন জিজ্ঞাসা করতে পারি বা এটি এমন কিছু যা ইতিমধ্যে চলছে? @ অ্যারন - এটি আপনার পক্ষে কীভাবে কাজ করেছে?
মার্টিন হোগি

আমি আমার কাজের চারপাশে ব্যবহার চালিয়ে যাচ্ছি। দুটি সমান্তরাল কিউজিআইএস প্রকল্প - একটি কাজের জন্য এবং একটি বাড়ির জন্য।
হারুন

উত্তর:


4

বাড়ি এবং কাজের ব্যবহারের জন্য কেবল আপনার প্রকল্প ফাইল থেকে পৃথক অনুলিপি করুন।

আপনার সংরক্ষণ করা ডেটা প্রজেক্ট ফাইলে নয় স্তর স্তরের ফাইলগুলিতে লেখা হবে।

একবার আপনি হোমওয়ার্ক অংশ শেষ করে ফেললে, আপনি এটিকে কাজে লাগাতে পারেন এবং খারাপ স্তরগুলি পুনরায় যুক্ত করতে পারেন। আপনার যদি স্তরগুলিতে স্টাইলিং করতে সমস্যা থাকে তবে আপনি এটি আলাদাভাবে সংরক্ষণ করতে পারেন এবং এটিও যুক্ত করতে পারেন।


আরেকটি পছন্দ হ'ল বাইরের উত্সের চারপাশে একটি ভিআরটি ফাইল মোড়ানো।

জিওটিফ রাস্টার ফাইলের জন্য একটি নমুনার উদাহরণ, এটি দিয়ে তৈরি করা gdal_translate:

<VRTDataset rasterXSize="1656" rasterYSize="846">
  <GeoTransform> 2.0005201224994706e+005, 6.2653333397239589e+002, 0.0000000000000000e+000, 6.9906275735481549e+006, 0.0000000000000000e+000,-6.2653333397239589e+002</GeoTransform>
  <Metadata>
    <MDI key="TIFFTAG_RESOLUTIONUNIT">2 (pixels/inch)</MDI>
    <MDI key="TIFFTAG_XRESOLUTION">120</MDI>
    <MDI key="TIFFTAG_YRESOLUTION">120</MDI>
  </Metadata>
  <VRTRasterBand dataType="Byte" band="1">
    <ColorInterp>Red</ColorInterp>
    <SimpleSource>
      <SourceFilename relativeToVRT="1">testtif.tif</SourceFilename>
      <SourceBand>1</SourceBand>
      <SourceProperties RasterXSize="1656" RasterYSize="846" DataType="Byte" BlockXSize="1656" BlockYSize="1" />
      <SrcRect xOff="0" yOff="0" xSize="1656" ySize="846" />
      <DstRect xOff="0" yOff="0" xSize="1656" ySize="846" />
    </SimpleSource>
  </VRTRasterBand>
</VRTDataset>

এবং একটি শেফফিলের জন্য একটি নমুনা:

<OGRVRTDataSource>
    <OGRVRTLayer name="testshp">
        <SrcDataSource>F:\Karten\vrt\testshp.shp</SrcDataSource>
            <SrcLayer>testshp</SrcLayer>
            <GeometryType>wkbPolygon</GeometryType>
            <LayerSRS>EPSG:31466</LayerSRS>
    </OGRVRTLayer>
</OGRVRTDataSource>

উত্স ফাইল উপস্থিত না থাকলে, রাস্টারটি একটি কালো বর্গ হিসাবে প্রদর্শিত হবে (আপনি স্তরটি অদৃশ্য করে দিতে পারেন) এবং ভেক্টর স্তরটি কোনও ত্রুটিযুক্ত বার্তা ছাড়াই একটি জ্যামিতি সারণিতে পরিণত হয়। উত্স ফাইলগুলি সহ অতিরিক্ত নন-ভিআরটি স্তরগুলি অপসারণ করা হয় না এবং এডিট করা যায়। যদি আপনি উত্স ফাইলগুলি পুনরায় ইনস্টল করেন তবে সমস্ত কিছু স্বাভাবিক অবস্থায় ফিরে আসে, এমনকি অন্যান্য স্তরগুলিতেও পরিবর্তন।


1
এই বিশেষ ক্ষেত্রে বাসা এবং অফিসের জন্য পৃথক প্রকল্প তৈরি করা একটি শালীন কাজ। তবে, অন্যান্য ক্ষেত্রে রয়েছে যেমন মানচিত্রের পরিষেবা অস্থায়ীভাবে ডাউন হয়ে গেলে আপনি খারাপ স্তর বিজ্ঞপ্তিটি উপেক্ষা করতে চাইবেন। সুতরাং আমি আবার জিজ্ঞাসা করি, হ্যান্ডল বাড লেয়ার সংলাপটিকে উপেক্ষা করার বা এড়িয়ে যাওয়ার কোনও উপায় আছে যাতে কোনও নির্দিষ্ট স্তরটি রেফারেন্সটি হারাতে না পারে?
হারুন

আপনি ভিআরটি ফাইলগুলিতে কী কী এবং কীভাবে শুরু করবেন সে সম্পর্কে আরও কিছু বিশদ সরবরাহ করতে পারেন। ভিআরটিগুলি যা দেখেছি কেবল সেগুলি থেকে কেবল রাস্টারদের ক্ষেত্রেই প্রযোজ্য? ভেক্টর ফাইলগুলি, বা কোনও সংযোগ না থাকলে দূরবর্তী পোস্টজিআইএস স্তরগুলি সম্পর্কে কী। কীভাবে আপনি এই 'হ্যান্ডেল খারাপ লেয়ারগুলি' উপেক্ষা করতে পারেন?
মার্টিন হাইগি

@ মার্টিনহাগি আপনি ভেক্টর ফাইলগুলির জন্য ভিআরটিও তৈরি করতে পারেন, তবে এটির জন্য এখনও হাতের কাজ দরকার: gdal.org/drv_vrt.html এবং paolocorti.net/2012/03/08/gdal_virtual_formats । আমি কয়েকটি উদাহরণের জন্য আমার উত্তর শীঘ্রই প্রসারিত করব।
আন্দ্রেজে

@ আন্ড্রেজে ধন্যবাদ, সুতরাং এই লিঙ্কগুলির মধ্যে নজর রেখে আমার সীমাবদ্ধ বোঝাপড়াটি হ'ল একটি এক্সএমএল ফাইল ধরণের তথ্যের উত্সের অভ্যন্তরীণ মানচিত্র হিসাবে কাজ করে। সুতরাং কিউজিআইএস 'চিন্তা করে' এটি সেখানে আছে, এমনকি যদি ডেটাসোর্স পাওয়া যায় না? জিডিএল এমন একটি জিনিস যা দেখে মনে হয় এটির সাথে গ্রিপস পাওয়া ভাল হবে বা কমপক্ষে একটি ধারণা থাকতে পারে।
মার্টিন হোগি

হ্যাঁ, আপনি কেবল কিউজিআইএস ত্রুটি হ্যান্ডলারকে বোকা বানাচ্ছেন।
আন্দ্রেজে

3

চারপাশের একটি সম্ভাব্য কাজ হ'ল একটি স্ক্রিপ্ট ব্যবহার করে আপনার কিউজিএস প্রকল্পের ফাইলটি পরিবর্তন করা। আমি দেখতে পেয়েছি যে আপনি যদি ডেটাসোর্সটি প্রতিস্থাপন করেন <datasource>.</datsource>তবে এটি হ্যান্ডেল খারাপ স্তরগুলি পপ আপকে উপেক্ষা করবে।

যদি আপনি নির্দিষ্ট স্তরগুলি লোড করতে না চান তবে পাইথন স্ক্রিপ্টটি চালানো হবে।

import fileinput

replaceNextLine = False

for line in fileinput.input('path\to\your\project.qgs', inplace=True):
    if replaceNextLine:
        print '<datasource>.</datasource>'
        replaceNextLine = False
    else:
        print line,

    if '<id>layer_name_whos_datasource_needs_to_change' in line:
        replaceNextLine = True

যথাযথ ডেটাসোর্স পাথ .োকানোর জন্য পাইথন স্ক্রিপ্ট।

import fileinput

replaceNextLine = False

for line in fileinput.input('path\to\your\project.qgs', inplace=True):
    if replaceNextLine:
        print '<datasource>.\path\to\your\datasource</datasource>'
        replaceNextLine = False
    else:
        print line,

    if '<id>layer_name_whos_datasource_needs_to_change' in line:
        replaceNextLine = True

এটি করার মাধ্যমে আপনি একটি DoNotLoad.pyশীর্ষস্থানীয় স্ক্রিপ্ট এবং home.pyআপনার বাড়ির উত্সগুলিতে work.pyপাথ এবং আপনার কাজের উত্সগুলিকে একটি নিদর্শন হিসাবে দ্বিতীয় স্ক্রিপ্ট ব্যবহার করে এমন একটি পথ সেট আপ করতে পারেন ।

তারপরে আপনার কাজ করার জন্য একটি একক প্রকল্প থাকবে তবে আপনি যে পরিবেশে ছিলেন তার উপর নির্ভর করে আপনি সহজেই আপনার পাথগুলি পরিবর্তন করতে পারেন বা পাথগুলি পরিবর্তন করতে পারেন যাতে স্তরগুলি বোঝা না হয়ে থাকে তবে এখনও আপনার প্রকল্পে থাকে (আপনার সমস্ত স্টাইলিং সংরক্ষণ করা হয়েছে) এবং আমি মনে করি আপনি চাইলে আপনি স্টাইলিংটিও পরিবর্তন করতে পারেন Just মানচিত্রে কিছুই দেখানো হবে না)।


ধন্যবাদ। আমি ধারণাটি পেয়েছি, পাইথনের বেসিক ব্যবহার বুঝতে পেরে আমার বেশিরভাগ সময়টির অর্থ ব্যয় করা দরকার। আপাতত আমি ধারণাটি পেয়েছি কারণ ডেটাসোর্স পরিবর্তন করার জন্য আমি ওয়ার্ডপ্যাডের সাহায্যে প্রজেক্ট.ক.জি.কে ম্যানুয়ালি সম্পাদনা করেছি এবং এটিকে আবার পরিবর্তন করেছি। কিউজিআইএস হ্যান্ডেলটির খারাপ স্তরগুলিকে অগ্রাহ্য করেনি তবে <ID> কোনও স্থানধারক হিসাবে কাজ করে আমি ফিরে যেতে এবং আমার পরিবর্তনটি ফিরিয়ে দিতে সক্ষম হয়েছি। তাই হ্যাঁ, আমি এটি পেয়েছি - আমি মনে করি।
মার্টিন হ্যাগি

আমি অনুমান করি এটি উইকি.পাইথন.আর.আমিন
মার্টিন

@ মার্টিনহাগি যদি এটি সাহায্য করে তবে আমি এই স্ট্যাকওভারফ্লো উত্তর stackoverflow.com/a/290494/4708150 থেকে আমার স্ক্রিপ্টের মূল প্যাটার্নটি পেয়েছি এটি স্ক্রিপ্টটির যুক্তি আরও বিশদভাবে ব্যাখ্যা করে। মন্তব্যগুলি দেখতে নিশ্চিত করুন। একটি শীর্ষ রেট দেওয়া মন্তব্য রয়েছে যা মুদ্রণ বিবৃতিটির শেষে কেন কমা রয়েছে তা ব্যাখ্যা করে।
টিজে রকফেলার 13

1

চেঞ্জডেটা সোর্স প্লাগইনটি অস্থায়ীভাবে একটি হ্যান্ডেল খারাপ স্তর গোষ্ঠীতে সরানোর মাধ্যমে ফাইলগুলিতে স্তরগুলি রাখে। https://geogear.wordpress.com/2016/01/29/changedatasourceplugin-plugin-release-2-0/ এটি আপনার যা করা উচিত তা করা উচিত। গত বছর আমার অনুরূপ সমস্যা ছিল এবং লক্ষ্য করেছি যে চেঞ্জডেটা সোর্স প্লাগইন রয়েছে যা স্তরগুলির সাথে কাজ করে তবে খারাপ স্তরগুলি পরিচালনা করে না। আমি উল্লেখ করেছি যে খারাপ স্তরগুলি পরিচালনা করা বিকাশকারীদের (এনরিকো ফেরেগুটি) ব্লগের মন্তব্যে দুর্দান্ত বৈশিষ্ট্য হবে। এক সপ্তাহের মধ্যে তিনি এটি যোগ করেছিলেন!


এই প্লাগইনটি আমার জন্য খারাপ স্তরগুলি পরিচালনা করতে কাজ করে নি। আমি দুটি ভিন্ন ল্যাপটপে চেষ্টা করেছি - একটি রান উইন 7 এবং অন্যটি উইন 10। উভয়ের কিউজিআইএস 2.18.0 ইনস্টল করা আছে। আমি "খারাপ স্তরগুলি হ্যান্ডেল করুন" পরীক্ষা করেছিলাম এবং ইনস্টলারের পরে কিউজিআইএস পুনরায় শুরু করেছি। খারাপ স্তরগুলি পরিচালনা করার কিউজিসআইএস ডিফল্ট পপআপ অব্যাহত রেখেছে, প্লাগইনটির বিজ্ঞপ্তিটি এটি খুঁজে পেয়েছে এবং অবৈধ ডেটাসোর্সগুলি পরিচালনা করেছে।
অ্যারন

এখনই আমার পক্ষে কাজ করছে না। আমি বিকাশকারীকে জানিয়ে দেব।
বাসওয়াইন

আমি যাচাই করেছি যে চেঞ্জডেটা সোর্স প্লাগইন সমস্যা ছাড়াই চলে। আমি ব্যতিক্রম ছুঁড়ে ফেলা বা মিথ্যা ত্রুটির প্রতিবেদন করা কিছু অপ্রয়োজনীয় শর্তগুলি ঠিক করেছি এবং একটি নতুন সংস্করণ সংগ্রহস্থলের প্রতিশ্রুতিবদ্ধ। [যদি আপনার সমস্যাগুলি অব্যাহত থাকে তবে দয়া করে প্রতিবেদন করুন] ( github.com/enricofer/changeDataSource/issues ) ডেটাসেটগুলি উল্লেখ করে বা সেগুলি পুনরুত্পাদন করার জন্য অপারেটিং পদক্ষেপগুলি উল্লেখ করে।
এনরিকো ফেরেগুটি

প্লাগইনটি পপ আপ করার জন্য আপনার কিউগিস চালু থাকতে হবে এবং তারপরে প্রকল্পটি খুলুন।
বাসউইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.