গ্রাফ [বন্ধ] থেকে ডেটা স্ক্র্যাপ করার জন্য সফ্টওয়্যারটির দরকার


56

কারও কারও কাছে এমন কোনও সফ্টওয়্যার রয়েছে (পছন্দমতো বিনামূল্যে, সবচেয়ে ভাল মুক্ত উত্স) যা কারটিশিয়ান স্থানাঙ্কে (একটি মানক, প্রতিদিনের প্লট) প্লট করা ডেটার একটি চিত্র নেবে এবং গ্রাফে প্লট করা পয়েন্টগুলির স্থানাঙ্কগুলি বের করবে?

মূলত, এটি একটি ডেটা মাইনিং সমস্যা এবং একটি বিপরীত ডেটা-ভিজ্যুয়ালাইজেশন সমস্যা।


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

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


একটি ছোট ম্যাথামেটিকাল প্রোগ্রাম স্ক্যান থেকে তথ্য পেতে এখানে
সজোয়ার্ড সি ডি ভ্রিজ

1
আমার উত্তরে আমি যে সংস্থানটি দেখিয়েছি তাও দেখুন এই প্লটের ওয়াই এবং এক্স এর মধ্যে সম্পর্ক কী ?
অ্যালেক্সিস

উত্তর:



42

গ্রাফ ডিজিটাইজিং সফটওয়্যার

এখানে অনেকগুলি পৃথক বিকল্প রয়েছে তবে মূলত সমস্তগুলি একই ওয়ার্কফ্লো ব্যবহার করে:

  1. একটি ছবি আপলোড করুন
  2. প্রতিটি অক্ষের দুটি বিন্দুতে মানগুলি নির্দেশ করে x এবং y স্কেল সেট করুন
  3. স্কেল লিনিয়ার, লগ, ইত্যাদি নির্দেশ করে
  4. পয়েন্টগুলিতে ক্লিক করুন।
    • কিছু প্রোগ্রাম স্বয়ংক্রিয়ভাবে লাইন বা পয়েন্টগুলি স্বীকৃতি দেয়। আমি সাধারণত পয়েন্ট পরে থাকি এবং আমি তাদের 100s পয়েন্ট সহকারে সহায়ক হতে অসন্তুষ্ট মনে করি। আমি বিভিন্ন চিহ্নকে স্বীকৃত এমন একটিও পাইনি। এই বৈশিষ্ট্যটি লাইনগুলি ডিজিটাইজ করার জন্য সমস্যার জন্য উপযুক্ত হতে পারে তবে আমার কখনও এটি করতে হয়নি।

প্রোগ্রামটি প্রতিটি পয়েন্টকে একটি এক্সওয়াই ম্যাট্রিক্স হিসাবে ফিরিয়ে দেয়।

চিত্রটি একটি জুমযুক্ত সংস্করণ আপলোড করে বা কিছু প্রোগ্রামে জুমিং বৈশিষ্ট্যটি ব্যবহার করে চিত্রটি জুম করা হয় তবে প্রায়শই এটি পয়েন্টগুলি নির্বাচন করতে সহায়তা করে।

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

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

আমি যে প্রোগ্রামগুলি ব্যবহার করেছি:

প্রোগ্রামগুলি আমি ব্যবহার করি নি:

  • গ্রাফ ক্লিক (ম্যাক, $ 8)
  • g3data (ওপেন সোর্স - জিএনইউ জিপিএল) জুম উইন্ডো রয়েছে, কোনও স্ব-স্বীকৃতি নেই। উবুন্টু সংগ্রহস্থলে উপলব্ধ।
  • গ্র্যাবিট ওপেনসোর্স (বিএসডি) প্লাগইন যা মালিকানা প্ল্যাটফর্ম, মাতলাব এ চলে

টিএল; ডিআর: ওয়েবপ্লটডিজিটাইজার একটি ওয়েব অ্যাপ্লিকেশন হিসাবে ক্রোম প্লাগইন হিসাবে উপলব্ধ


g3data (ওপেন সোর্স - জিএনইউ জিপিএল) এর জুম উইন্ডো রয়েছে, কোনও স্ব-স্বীকৃতি নেই। উবুন্টু সংগ্রহস্থলে উপলব্ধ। আমি তুলনা করতে পারছি না, কারণ আমি একমাত্র চেষ্টা করেছি; তবে আমি এটি ব্যবহার করা খুব সহজ খুঁজে পেয়েছি।
স্কর্চচি - মনিকা পুনরায় ইনস্টল করুন

কেন সিআরএন থেকে ডিজিটালাইজ সরানো হয়েছে?
লিও লোপোল্ড হার্টজ 준영

1
@ মাশি এর মধ্যে বেশিরভাগ পিডিএফ দিয়ে কাজ করে না, পিডিএফ ফাইলের সাহায্যে আমি চিত্রটি বড় করে তোলে এবং তারপরে jpg বা png হিসাবে কোনও চিত্র সংরক্ষণ করতে স্ক্রিন ক্যাপচার (যেমন ম্যাকের উপর সেমিডি-শিফট -4) ব্যবহার করি।
ডেভিড লেবাউর

1
@ মাসিআরএন-তে প্যাকেজ রক্ষণাবেক্ষণ করা অতিরিক্ত কাজ হতে পারে। প্যাকেজটি গিটহাব github.com/tpoisot/digitize
ডেভিড লেবাউর

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

16

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

যেহেতু কাগজপত্রগুলি পিডিএফ ফাইল হিসাবে অনলাইনে প্রকাশিত হয়, তাই আমি ধরে নিয়েছি যে আপনার কাছে একটি পিডিএফ ফাইল রয়েছে যাতে আপনি এটি থেকে পুনরুদ্ধার করতে চান এমন ডেটা সহ ভেক্টর প্লট রয়েছে (সংখ্যাসূচক আকারে পান) এবং আনুমানিক পুনরুদ্ধারের ত্রুটি অনুমান করা যায়।

প্রথমত, পিডিএফ একটি ভেক্টর ফর্ম্যাট যা মূলত পাঠ্যগত (কোনও পাঠ্য সম্পাদক দ্বারা পড়া যেতে পারে)। সমস্যাটি হ'ল এটিতে (এবং প্রায় সবসময়) সংকুচিত ডেটা স্ট্রিম থাকতে পারে যা কোনও পাঠ্য সম্পাদক দ্বারা সেগুলি পড়ার জন্য সঙ্কুচিত হওয়া দরকার। এই সংকুচিত ডেটা স্ট্রিমগুলিতে সাধারণত আমাদের প্রয়োজনীয় তথ্য থাকে।

পাঠযোগ্য পিডিএফ কোড সহ পাঠ্য ডকুমেন্টে পিডিএফ ফাইল রূপান্তর করতে ডেটা স্ট্রিমগুলি সঙ্কুচিত করার বিভিন্ন উপায় রয়েছে। সম্ভবত সহজ উপায় হ'ল বিকল্প সহ বিনামূল্যে কিউপিডিএফ ইউটিলিটি ব্যবহার করা :--stream-data=uncompress

qpdf infile.pdf --stream-data=uncompress -- outfile.pdf

আরও কিছু উপায় এখানে এবং এখানে বর্ণিত হয়েছে

উত্পন্ন আউটফাইল.পিডিএফ একটি পাঠ্য সম্পাদক দ্বারা খোলা যেতে পারে। আপনি কী দেখছেন তা বোঝার জন্য এখন আপনার পিডিএফ রেফারেন্স ম্যানুয়ালটি 1.7 প্রয়োজন । এই মুহুর্তে আতঙ্কিত হবেন না! 226 - 227 পৃষ্ঠায় "টেবিল 4.9 পাথ নির্মাণ অপারেটরগুলি" তে বর্ণিত আপনাকে কেবল কয়েকটি অপারেটরই জানতে হবে The সবচেয়ে গুরুত্বপূর্ণ অপারেটরগুলি (প্রথম কলামে অপারেটরের জন্য সমন্বিত স্পেসিফিকেশন রয়েছে, দ্বিতীয়টিতে অপারেটর রয়েছে এবং তৃতীয়টি অপারেটরের নাম রয়েছে) ):

x y               m   moveto 

x y               l   lineto 

x y width height  re  rectangle

                  h   closepath

বেশিরভাগ ক্ষেত্রে তথ্য পুনরুদ্ধারের জন্য এই চারটি অপারেটরকে জানা যথেষ্ট।

এখন আপনাকে কিছু প্রোগ্রামে আউটফাইল.পিডিএফ ফাইলটি পাঠ্য হিসাবে আমদানি করতে হবে যেখানে আপনি ডেটা ম্যানিপুলেট করতে পারবেন। আমি ম্যাথামেটিকার সাথে এটি কীভাবে করব তা দেখাব ।

ফাইলটি আমদানি করা হচ্ছে:

pdfCode = Import["outfile.pdf", "Text"];

এখন আমি সবচেয়ে সহজ কেস ধরে নিই: গ্রাফটিতে একটি লাইন থাকে যা অনেকগুলি দ্বি-পয়েন্ট খণ্ড নিয়ে গঠিত। এক্ষেত্রে লাইনের প্রতিটি বিভাগকে এভাবে এনকোড করা হয়:

268.79999 408.92975 m
272.39999 408.92975 l

পিডিএফ কোড থেকে এ জাতীয় সমস্ত বিভাগগুলি বের করা:

lines = StringCases[pdfCode, 
   StartOfLine ~~ x1 : NumberString ~~ " " ~~ y1 : NumberString ~~ " m\n" ~~ 
                  x2 : NumberString ~~ " " ~~ y2 : NumberString ~~ " l\n" 
                                        :> ToExpression@{{x1, y1}, {x2, y2}}]; 

সেগুলি ভিজ্যুয়ালাইজ করা:

Graphics[{Line[lines]}]

আপনি এই জাতীয় কিছু পান (আমি যে কাগজটির সাথে কাজ করছি তার মধ্যে চারটি গ্রাফ রয়েছে):

পটভূমি

প্রতিটি দুটি সংলগ্ন অংশগুলি একটি বিন্দু ভাগ করে। সুতরাং এই ক্ষেত্রে আপনি সংলগ্ন অংশগুলির ক্রমগুলিকে পাথে পরিণত করতে পারেন:

paths = Split[lines, #1[[2]] == #2[[1]] &];

এখন আপনি সমস্ত পথ পৃথকভাবে কল্পনা করতে পারেন:

Graphics[{Line /@ paths}]

এই চিত্রটি থেকে আপনি যে পথটি সন্ধান করছেন (ডাবল-ক্লিক করে) নির্বাচন করতে পারেন, গ্রাফিক্স নির্বাচনটি অনুলিপি করতে এবং নতুন হিসাবে পেস্ট করতে পারেন Graphics। এটিকে পিছনে রূপান্তর করার জন্য পয়েন্টগুলির তালিকায় আপনি উপাদানটি গ্রহণ করেন {1, 1, 1}। এখন আমাদের পয়েন্টগুলি গ্রাফের স্থানাঙ্ক সিস্টেমে নয় পিডিএফ ফাইলের সমন্বিত সিস্টেমে রয়েছে। তাদের মধ্যে সম্পর্ক স্থাপন করা আমাদের দরকার।

উপরের প্লট থেকে আপনি হাতে হাতে টিক্স নির্বাচন করুন ( Shiftএকাধিক নির্বাচনের জন্য ধারণ করে ), তারপরে সেগুলি অনুলিপি করুন এবং নতুন হিসাবে আটকান Graphics। অনুভূমিক টিক্সের স্থানাঙ্কগুলি কীভাবে উত্তোলন করতে পারেন তা এখানে:

স্ক্রিনশট

এখন টিক্সের মধ্যে পার্থক্যগুলি পরীক্ষা করুন:

Differences[reHorTicks]

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


2
আলেক্সি, আপনি লিখেছেন তবে আজকাল ভাল অনুশীলন হ'ল ভেক্টর আকারে গ্রাফ প্রকাশ করা। কোন ভেক্টর ফর্ম্যাট (গুলি) এর চারপাশে সেরা অনুশীলনের জন্য আপনার কাছে ভাল রেফারেন্স রয়েছে ? (অর্থাত্ আমার ল্যাটেক্স পুঁথিতে আমার কোনও এসভিজি ফাইলের একটি ইপস এনক্যাপসুলেশন ব্যবহার করা উচিত, বা আমি সরাসরি ল্যাটেক্সে গ্রাফ আউটপুট দেওয়ার কথা বলছি?) চিয়ার্স।
অ্যালেক্সিস

1
@ অ্যালেক্সিস আমি ভেক্টর আকারে গ্রাফ সরবরাহ করার জন্য আধুনিক জার্নালের সুপারিশগুলি উল্লেখ করি। বিভিন্ন জার্নাল ভেক্টর ফর্ম্যাটের বিভিন্ন সাবসেট গ্রহণ করে। যখন আমি এক ফর্ম্যাট থেকে অন্য ফর্ম্যাটে কম ট্রান্সফর্মেশন থাকি তখন আমি আরও ভাল মানের আশা করি।
আলেক্সি পপকভ

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

দৃঢ়ভাবে সম্পর্কিত উত্তর জন্য পদ্ধতি বিস্তারিত বর্ণনা দিয়ে ম্যাথামেটিকাল
আলেক্সি পপকভ






2

'g3data' একটি সফ্টওয়্যার যা আপনার উদ্দেশ্যটি পরিবেশন করতে ব্যবহৃত হতে পারে। এটি একটি বিনামূল্যে সফ্টওয়্যার এবং আমি এটি ব্যবহার করেছি। আপনি এটি এখান থেকে ডাউনলোড করতে পারেন: http://www.frantz.fi/software/g3data.php


2

আমার ক্যারিয়ারে আমাকে অনেকবার এটি করতে হয়েছিল আমি অবশেষে এখানে একটি জাভাস্ক্রিপ্ট প্রোগ্রাম একসাথে রেখেছি:

http://kdusling.github.io/projects/DataGrab/index.html

দুঃখিত, তবে আপনাকে প্রতিটি একক পয়েন্টে ক্লিক করতে হবে। যদিও আপনি তীরচিহ্নগুলি ব্যবহার করতে পারেন যা কিছু কব্জীর স্ট্রেনকে বাঁচায়।



1

জন্য Rব্যবহারকারীদের, প্যাকেজ grImport(চালু Cran ) ভেক্টর গ্রাফিক্স আমদানি করবে এবং তাদের যে বস্তু আর ব্যাখ্যা করতে পারেন মধ্যে রূপান্তর করতে পারেন। এটি ধরে নেওয়া হয় যে একটি পিডিএফ (বা আগ্রহের অন্যান্য ভেক্টর ফর্ম্যাট) পোস্টস্ক্রিপ্ট ফর্ম্যাটে রূপান্তর করতে পারে। এই সঙ্গে উদাহরণস্বরূপ কাজ করা যেতে পারে ইঙ্কস্পেস আমদানি (: File > ImportInkspace এবং আপনার ব্যক্তির সঙ্গে) আপনার পিডিএফ পৃষ্ঠা File > Save As > Save as type: > PostScript *.ps। একবার আপনার *.psফাইলটি grImportভিনগেট আমদানি ভেক্টর গ্রাফিক্সের পতনের পরে , আরও প্রাসঙ্গিক বিভাগের 4.1। চিত্রগুলি থেকে ডেটা স্ক্র্যাপ করা হচ্ছে।

আপনার অপারেটিং সিস্টেমে আপনাকে ভুতের স্ক্রিপ্টের প্রয়োজন হবে - এখান থেকে এটি ডাউনলোড করার চেষ্টা করুন

দ্রষ্টব্য, আপনি কল করার সময় আপনি যদি কোনওভাবে ভুতের স্ক্রিপ্ট ত্রুটির 'স্থিতি 127' তে চালিত হন grImport::PostScriptTrace , তবে এখান থেকে প্রস্তাবটি বাতিল করুন , যা ম্যানুয়ালি আপনার মেশিনে ভূতলিপিটির পথ নির্ধারণ করতে বলে।

পোস্টে স্ক্রিপ্ট ফাইলটি আর-তে আমদানি করতে এখানে কিছু নমুনা আর কোড রয়েছে:

install.packages("grImport")
require(grImport)
# if you get the ghostscript error 'status 127' then set the path to ghostscript, e.g.:
Sys.setenv(R_GSCMD = normalizePath("C:/Program Files/gs/gs9.22/bin/gswin64c.exe")) 
PostScriptTrace(file = "graph.ps", outfilename = "graph.ps.xml")
my_fig <- readPicture(rgmlFile = "graph.ps.xml")
grid.picture(my_fig)

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

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