摘 要:圖形處理軟件CorelDRAW可以提取矢量圖形的坐標,得到的坐標值經簡單變化后,可以還原為初始數據。本文通過一則實例介紹了具體的操作方法,對需要提取精確數據的研究提供了有益的參考。
關鍵詞:坐標提取;時間序列;CorelDRAW
0 引言
在進行宏觀經濟學研究時,通常需要參閱一些專業報告,摘取其中的時間序列數據進行統計分析。然而,不少專業報告只提供時間序列的走勢圖,并不報告全部的原始數據。這些圖形所對應的數據無法通過其他公開渠道獲得,給研究工作造成了一定困難。
為了盡量利用圖片信息,提取出數據的數值,使用者可以借助一些專業軟件。這類數據提取軟件包括:engauge、g3data、imageJ、Plot Digitizer、windig和UN-SCAN-IT等。遺憾的是,這些軟件提取的數據精度較差。其原因有二:首先,這類軟件處理的是非矢量圖(如bmp、jpg、tiff等格式),提取的數據精度受限于原始圖像的分辨率。其次,在應用這類軟件時,使用者需要人為設定坐標的起始點,有些軟件甚至需要手工確定曲線上每個節點的位置(如g3data),從而造成了較大的誤差。
以UN-SCAN-IT為例,該軟件雖然支持自動提取曲線坐標,但設定自動提取時,使用者需要指定目標曲線的顏色。若曲線顏色深淺不一,則會造成提取失敗。此外,曲線的粗細也會影響到使用者對節點的判斷,進而影響數據的精度。最后,這些軟件并不能保證數據的間隔(頻率)與原始時間序列的固有間隔一致。以一個年度時間序列圖為例,提取的數據本應是每年一個觀察值。但是實際操作中,不僅兩個年份之間會出現新的節點,原有的節點也可能因為精度欠佳而偏離對應的年份。
但是,如果報告文件中嵌入的圖片是矢量圖,且至少有2個節點的真實數值已知,那么從理論上講,可以用矢量圖形處理軟件得到所有節點的精確坐標,進而還原出原始數據。這種數據提取方法的原理是:矢量圖能夠保持原始時間序列的拐折點(節點),放大或縮小圖形也不會使圖形失真。
由于經濟類專業報告一般采用pdf格式,因此這里以一個pdf格式的報告為例,介紹Acrobat軟件下矢量圖形的提取。
1 矢量圖的數值提取方法
本文的范例時間序列圖取自戴德梁行(DTZ)2002年第三季度發布的報告[1]--《中國大陸房地產價格指數》(DTZ Index, Chinese Mainland)。它包含了北京市寫字樓租金與售價指數的時間序列圖。其中,寫字樓租金曲線包含了1991第一季度至2002年第三季度的走勢,寫字樓售價曲線包含了1993年第三季度至2002年第三季度的走勢,如圖1所示。
但是,這份報告只列出了時間序列圖所對應的部分數據——1997年之前的數據僅有各年份第四季度的記錄。
(一)提取曲線
要提取數據,第一步需要將矢量曲線提取出來。這里選取的示例圖例為"寫字樓租金指數"(Office Rent Index)。
提取矢量圖的具體步驟是:首先用Acrobat軟件打開pdf文件,依次點擊工具→高級編輯→TouchUp對象工具。將鼠標指向要提取的曲線。此時,屏幕會出現一個淺色的圖框(如圖1所示),目標曲線就包含在這個圖框中。點擊鼠標右鍵,選擇"編輯對象",這樣,折線就會被單獨提取成一個pdf文件。接下來,將文件另存備用。
(二)記錄坐標數值
為了提取曲線的坐標值,用CorelDRAW軟件打開上一部提取的pdf文件。CoredDRAW軟件會自動確定每個節點相對圖形的位置(如圖2所示)。
將鼠標指向第一個節點,以節點為中心,將圖片放大到最大比例。這時,屏幕左下方就會出現該節點的坐標值,然后將之記錄下來。這樣,使用者就得到了曲線節點的精確位置。需要注意的是,CorelDRAW軟件記錄的數值有三位小數。重復上述過程,直到整條曲線的坐標都被記錄下來。表1的第2列給出了"寫字樓租金指數"的前12個記錄(1991第一季度至1993第四季度)的坐標。
需要注意的是,本文的提取方法至少需要確定2個點的坐標:一個是起點,它的作用是確定圖形其他節點的相對位置;另一個是參考點,參考點與起點之間的縱坐標距離,能夠定出提取曲線(提取的數據)與原始曲線(原始數據)的比例關系。本例所用的文件顯示:北京1991年第一季度的寫字樓租金指數為54.6;該指數以1993年第三季度為基準,數值取為100。這些額外的信息記錄在表1的第4列中。
(三) 簡單變換
提取的各節點坐標是矢量圖在CorelDRAW中的坐標,其數值與原始圖形不同。要將提取的坐標值還原為原始數據,需要對提取后的數值進行再處理。因此,本文采用Excel進行簡單的處理。
記提取的數據為Y■ (表1第2列),提取數據的參考點記為Yrf,即1991年第四季度的數值。由上一步可知,Yrf=86.298。兩個已知的真實數據節點分別記為Y0rf和Y0b,其中, Y0rf=54.6是參考點,即1991年第四季度的數值;Y0b=100是基準點,即1993年第三季度的數值。
將提取的數據和實際值減去各自的參考值后,得到Y■-Y■ (第3列)和Y■■-Y■■ (第5列)。用去掉參考值后的真實值Y■■-Y■■ (第4列)除以去參考值的提取值Y■■-Y■■ (第3列),就得到了縮放比例,記為M。本例中,M= 45.4/9.125 = 4.975,如第6列所示。這樣,就可以根據已知兩點的實際值求出曲線中所有節點的實際值,即為
Y■■=Y■■+M×Y■-Y■
如第7列所示。當然,用這種方法提取的數據精度不可能高于原始數據。這是因為,在還原原始值的過程中需要計算比例值M,而M的計算用到了原始數據的值。
2 非時間序列圖形的提取
需要說明的是,圖1中時間序列的橫軸坐標是季度,而需要的工作是按照時間順序提取縱軸坐標的寫字樓租金指數和價格指數。因此,使用者只需提取出曲線的縱坐標即可。
若圖形是非時間序列圖,使用者可能會關心橫軸的內容。這時,使用者需要記錄CorelDRAW軟件給出的橫、縱坐標值,再對變換后的節點數值分別計算縮放比例即可。
3 結論
矢量圖可以精確地記錄曲線的拐折點,因此在理論上,使用者可以從矢量圖中精確提取圖形的坐標,再通過簡單變換將提取后的數據還原為原始數值。本文介紹了利用矢量作圖軟件CorelDRAW提取真實數據的操作步驟,為從半公開報告中提取數據提供了一種新的方法。有助于緩解研究者在搜集數據時所面臨的數據可得性難題。
參考文獻:
[1] DTZ (2003). DTZ Index of Chinese Mainland. http://esd.nankai.edu.cn/bbs/attachment.aspx?attachmentid=5922.