Adakah yang punya pengalaman dengan perangkat lunak (lebih disukai gratis, lebih disukai open source) yang akan mengambil gambar data yang diplot pada koordinat kartesius (plot standar, harian) dan mengekstrak koordinat titik-titik yang diplot pada grafik?
Pada dasarnya, ini adalah masalah penambangan data dan masalah visualisasi data terbalik .
data-visualization
data-mining
software
Alex Holcombe
sumber
sumber
Jawaban:
Check out mendigitalkan paket untuk R . Ini dirancang untuk memecahkan masalah semacam ini.
sumber
perangkat lunak digitasi grafik
Ada banyak opsi berbeda, tetapi pada dasarnya semua menggunakan alur kerja yang sama:
Program mengembalikan setiap titik sebagai matriks xy.
Seringkali membantu memilih titik jika gambar diperbesar, baik dengan mengunggah versi yang diperbesar dari gambar atau menggunakan fitur pembesaran yang tersedia di beberapa program.
Ada banyak program, dan mereka berbeda dalam fitur tambahan, kegunaan, lisensi, dan biaya. Saya telah mendaftarkan mereka di bawah ini.
Semua yang saya gunakan berfungsi dengan baik. Kecuali dalam konteks di mana kesalahan pengukuran sangat kecil, kesalahan dari pengikisan grafik tidak signifikan (mis. Kesalahan dari digitalisasi << ukuran bar kesalahan atau ketidakpastian dalam perkiraan). Jika belum menguji keakuratan salah satu dari program ini, tetapi akan menarik untuk membandingkan antara pengguna, antara program, dan terhadap hasil analisis statistik yang direproduksi.
Program yang saya gunakan:
Program yang belum saya gunakan:
TL; DR: WebPlotDigitizer tersedia sebagai aplikasi web dan juga plugin chrome
sumber
Penjawab lain menganggap bahwa Anda berurusan dengan gambar raster grafik. Namun saat ini praktik terbaiknya adalah menerbitkan grafik dalam bentuk vektor. Dalam hal ini Anda dapat mencapai ketepatan yang jauh lebih tinggi dari data yang dipulihkan dan bahkan memperkirakan kesalahan pemulihan jika Anda bekerja dengan kode grafik vektor secara langsung, tanpa mengubahnya menjadi gambar raster.
Karena makalah diterbitkan secara online sebagai file PDF, saya berasumsi bahwa Anda memiliki file PDF yang berisi plot vektor dengan data yang ingin Anda pulihkan darinya (dapatkan dalam bentuk numerik) dan perkirakan kesalahan pemulihan yang diperkenalkan.
Pertama-tama, PDF adalah format vektor yang pada dasarnya bersifat tekstual (dapat dibaca oleh editor teks). Masalahnya adalah ia dapat (dan hampir selalu) berisi aliran data terkompresi yang perlu dikompresi untuk membacanya oleh editor teks. Aliran data terkompresi ini biasanya berisi informasi yang kita butuhkan.
Ada beberapa cara untuk mengompres aliran data untuk mengonversi file PDF ke dokumen teks dengan kode PDF yang dapat dibaca. Mungkin cara paling sederhana adalah dengan menggunakan utilitas QPDF gratis dengan
--stream-data=uncompress
opsi :Beberapa cara lain dijelaskan di sini dan di sini .
File outfile.pdf yang dihasilkan dapat dibuka oleh editor teks. Sekarang Anda membutuhkan Manual Referensi PDF 1.7 untuk memahami apa yang Anda lihat. Jangan panik saat ini! Anda hanya perlu mengetahui beberapa operator yang dijelaskan dalam "TABEL 4.9 Operator konstruksi jalur" pada halaman 226 - 227. Operator yang paling penting adalah (kolom pertama berisi spesifikasi koordinat untuk operator, yang kedua berisi operator dan yang ketiga adalah nama operator ):
Dalam kebanyakan kasus cukup mengetahui empat operator ini untuk memulihkan data.
Sekarang Anda perlu mengimpor file outfile.pdf sebagai teks ke dalam beberapa program di mana Anda dapat memanipulasi data. Saya akan menunjukkan bagaimana melakukannya dengan Mathematica .
Mengimpor file:
Sekarang saya menganggap kasus paling sederhana: grafik berisi garis yang terdiri dari banyak segmen dua titik. Dalam hal ini setiap segmen garis dikodekan seperti ini:
Mengekstrak semua segmen tersebut dari kode PDF:
Visualisasikan mereka:
Anda mendapatkan sesuatu seperti ini (makalah yang saya kerjakan berisi empat grafik):
Setiap dua segmen yang berdekatan berbagi satu titik. Jadi dalam hal ini Anda dapat mengubah urutan segmen yang berdekatan menjadi jalur:
Sekarang Anda dapat memvisualisasikan semua jalur secara terpisah:
Dari gambar ini Anda dapat memilih (dengan mengklik dua kali) jalur yang Anda cari, menyalin pemilihan grafik dan menempelkannya sebagai baru
Graphics
. Untuk mengubahnya mundur ke daftar poin Anda mengambil elemen{1, 1, 1}
. Sekarang kita memiliki poin tidak dalam sistem koordinat grafik tetapi dalam sistem koordinat file PDF. Kita perlu membangun hubungan di antara mereka.Dari plot di atas, Anda memilih kutu dengan tangan (tahan
Shift
untuk beberapa pilihan), lalu salin dan tempel sebagai yang baruGraphics
. Berikut ini cara mengekstrak koordinat kutu horizontal:Sekarang periksa perbedaan antara kutu:
Dari perbedaan-perbedaan ini, Anda dapat melihat seberapa tepat posisi kutu dalam file PDF. Ini memberikan perkiraan kesalahan yang diperkenalkan dengan mengubah datapoint asli menjadi grafik vektor yang termasuk dalam file PDF. Jika ada kesalahan yang cukup besar dalam posisi kutu, Anda dapat mengurangi kesalahan dengan menyesuaikan koordinat kutu ke model linier. Fungsi linier ini sekarang dapat digunakan untuk mendapatkan koordinat asli titik jalan (yang ada di sistem koordinat plot).
sumber
Saya belum menggunakannya, tetapi lab UWA CogSci merekomendasikan DataThief (shareware).
sumber
Lihatlah engauge. Sumber terbuka dan gratis http://digitizer.sourceforge.net/
sumber
Un-Scan-It http://www.silkscientific.com/graph-digitizer.htm
sumber
Coba scanit: http://amsterchem.com/scanit.html
Ini gratis, berjalan di Windows
sumber
Anda juga dapat mencoba im2graph ( http://www.im2graph.co.il ) untuk mengubah grafik menjadi data. Bekerja di Linux dan Windows.
sumber
'g3data' adalah perangkat lunak yang dapat digunakan untuk melayani tujuan Anda. Ini adalah perangkat lunak gratis dan saya telah menggunakannya. Anda dapat mengunduhnya dari sini: http://www.frantz.fi/software/g3data.php
sumber
Saya harus melakukan ini berkali-kali dalam karir saya, akhirnya saya menyusun program javascript yang tersedia di sini:
http://kdusling.github.io/projects/DataGrab/index.html
Maaf, tetapi Anda masih harus mengklik pada setiap titik. Meskipun Anda dapat menggunakan tombol panah yang tidak menyimpan ketegangan pergelangan tangan.
sumber
STIPlotDigitizer baru dirilis.
http://stiwww.com/product/software-techniques-plot-digitizer
sumber
Untuk
R
pengguna, paketgrImport
(pada CRAN ) dapat mengimpor grafik vektor dan mengubahnya menjadi objek yang dapat ditafsirkan R. Diasumsikan bahwa seseorang dapat mengonversi PDF (atau format vektor lain yang menarik) ke format PostScript. Ini dapat dilakukan misalnya dengan Inkscape : import (File > Import
) halaman PDF Anda dengan gambar Anda ke Inkspace danFile > Save As > Save as type: > PostScript *.ps
. Setelah*.ps
file Anda kosong,grImport
sketsa mengimpor Grafik Vektor , yang lebih relevan adalah bagian '4.1. Menggores data dari gambar '.Anda akan memerlukan ghostscript pada Sistem Operasi Anda - cobalah untuk mengunduhnya dari sini .
Catatan, jika Anda menemukan entah bagaimana kesalahan ghostscript 'status 127' saat Anda menelepon
grImport::PostScriptTrace
, maka bera rekomendasi dari sini , yang mengatakan untuk secara manual mengatur path ke ghostscript pada mesin Anda.Berikut ini beberapa contoh kode R untuk mengimpor file PostScript ke R:
Catatan, jika grafik Anda berada pada halaman dalam file PDF multi halaman, maka Anda dapat membagi dokumen multi-halaman dengan
PDFTK builder
. Impor file PDF satu halaman Anda di Ikscape dan hapus elemen tambahan apa pun (teks tambahan, elemen grafik tambahan). Ini akan memudahkan pekerjaan Anda dalam R ketika mencoba menangkap koordinat elemen grafik yang Anda minati.sumber