2019年5月29日 星期三

關於龍紋石的迷思與謠言

原文出處已不可考,但經常被轉貼,曾經被人家貼到維基百科上,後來因內容來源無根據而遭刪除。

以地質學上的觀點來看龍紋石在地質學上算是沉積岩中的「黃鐵礦結核」,有時候會出現球狀的結構,這部份可以參考地質知識服務網,在台灣黃鐵礦算是常見礦物,而在國外也有機會發現他們的蹤跡,之前看過在FB上有人拿龍紋石的樣本分析,數據明顯可以看出是黃鐵礦(但是貼文的人似乎看不懂分析結果)。

然而在網站上有很多關於「龍紋石」的誤導性文章,除了內容不知所云、錯誤百出外,大多強調「龍紋石」的「珍貴」與「價值」等等(畢竟是為了拿來賣錢)。由於相關研究甚少,要談「珍貴」這點言之過早。更慘的是台灣的「霉體」在製作相關的報導時也不多加查證,除了業者的言詞外,沒有諮詢相關領域專家的意見。因此要了解「龍紋石」的真面目實在很困難。

目前網站上常流傳的文章內文大概事是這樣
龍紋石乃台灣特有礦產,其原石顏色以青銅色居多,主因為內含豐富的銅礦物,以及多種各樣的礦物質。 經過長年風化氧化則產生青銅器特有的青銅色。龍紋石的平均硬度約5.5-6。 龍紋石的產地,台灣,因為地楚於太平洋火山帶上,在過去的歷史中,常有地熱運動和火山運動。 地熱運動帶給台灣土地板塊經過高熱高壓的推擠,多樣的礦石也有此而生。 例如:花蓮特有的大理石、貓眼石,也是其中一例。 當地熱運動造成的推擠轉為造山運動時,原礦脈由地底深層隨著造山運動被翻推而出,隨著地層持續被推升,而轉為蘊藏在台灣當今的高山上,也就是台灣今天的主要山群,「中央山脈」北三段。 龍紋石的特點就是金、玉、石與共。 石質的部分經琢磨後,可產生出,深綠,棕紅,深橙的美麗色澤。 金屬的部分經琢磨後,可產生出鈦銀,金銅等色。 玉質的部分經琢磨後,可產生出翠綠,乳白、琥珀等色。 因為金屬在經過琢磨後,可展現不同的金屬線條與石玉鑲嵌,閃閃發亮,顧稱龍紋。 龍紋石之名,乃來自於此。

從文中可以看到不少問題之處,除了將不相關的東西扯進去外,也有許多誤導大眾的地方。
1.龍紋石乃台灣特有礦產
目前沒有任何證據證明龍紋石僅產於台灣,類似的東西是否國外可以找到?很難說,但個人覺得有機會找到,畢竟沉積岩中的黃鐵礦結核不是非常罕見的東西。

2.其原石顏色以青銅色居多,主因為內含豐富的銅礦物
在自然環境中黃鐵礦容易受到風化作用而氧化成氧化鐵(尤其是在潮濕的環境抵下),加上各地產的標本會因會岩性不同而有所不同,而目前沒有任何證據指出龍紋石有含大量的銅,即使之前有人化驗出來的數據之中也顯示含銅量很少(少到可以忽略的程度),加上龍紋石的性質跟黃銅礦差很多
(或許
的價值比鐵高,所以才會有人說含有豐富的銅礦物,但實際上還比較多的反而是鐵)


3.龍紋石的平均硬度約5.5-6。
黃鐵礦硬度約6-6.5。(黃銅礦則為3.5-4相對較軟,如果有含銅的話怎麼可能會到5.5~6呢)

4.龍紋石的產地,台灣,因為地楚於太平洋火山帶上,在過去的歷史中,常有地熱運動和火山運動。 地熱運動帶給台灣土地板塊經過高熱高壓的推擠,多樣的礦石也有此而生。 例如:花蓮特有的大理石、貓眼石,也是其中一例。當地熱運動造成的推擠轉為造山運動時,原礦脈由地底深層隨著造山運動被翻推而出,隨著地層持續被推升,而轉為蘊藏在台灣當今的高山上,也就是台灣今天的主要山群,「中央山脈」北三段。
這段跟龍紋石的形成完全沒有任何關聯,通篇不知所云,只是加進來充字數的。再者花蓮的大理石跟火山也沒直接的關聯。

5.龍紋石的特點就是金、玉、石與共。 石質的部分經琢磨後,可產生出,深綠,棕紅,深橙的美麗色澤。 金屬的部分經琢磨後,可產生出鈦銀,金銅等色。 玉質的部分經琢磨後,可產生出翠綠,乳白、琥珀等色。 因為金屬在經過琢磨後,可展現不同的金屬線條與石玉鑲嵌,閃閃發亮,顧稱龍紋。 龍紋石之名,乃來自於此。
雅石家的觀點,大多是透過其外觀做描述,並加一些形容詞大做文章。
目前根據某中小學的科展得知「金
」的部分主要是指黃鐵礦為主的硫化物結核,「玉」為脈狀石英(石英算是砂岩/泥岩中常見的礦物,甚至還會填充在裂開的縫隙中)不過有些龍紋石根本有沒有白色的脈狀石英,「石」則是指黑色砂岩的部分。


後記:
到目前為止在台灣對於「龍紋石」相關的學術文獻不多,也沒特別的研究。對於地質學來說可以算是一個有趣的研究主題。
(有些地方的黃鐵礦產狀還可以看到明顯的細小正方體晶體排列在一起,而雅石家則稱此為「角金」品項的龍紋石),如果黃鐵礦的晶體分佈更多的話有些人會俗稱「砂金」。

結核狀構造的其中一個形成方式之一就是由生物殼體形成的,所以說龍紋石有可能是沉積在頁岩中生物殼體被黃鐵礦取代後形成而成的,不過這只是個人推測而已,真實情況還是得實際去調查。如果有去過野柳、金瓜石有機會可以看到被黃鐵礦取代的生物殼體(像是螃蟹海膽化石)。

近期有見到某中小學的科展對龍紋石有相關的研究,可惜被網站上的文章誤導,最終導致整個科展的研究方向和觀念出現偏差,最後出來的結論沒有太大的參考價值,不然如果後面有地質被背景的專業人士指導,或許可以讓整個科展作得更好。

補充 因為留言功能出問題所以我改文章

回應讀者Sean的留言「不是沉积岩。沉积岩会有很明显的层理。这种黑色页岩应该是火山灰。所以形成原因是火山喷发,堆积。没有经过水。硫化铁则是火山喷发的火星渣子。」
建議多去看看凝灰岩標本長怎麼樣子,以及觀察一下有凝灰岩出露的地層又長怎麼樣子。一般地質學家不會用「火山灰」來稱已從火山噴出來的碎屑所堆積出來的岩石,而是「凝灰岩(Tuff)」。

1. 顆粒比較細的粉砂岩、泥岩、頁岩顏色通常偏深(並非完全都是),再者沉積岩也不一定會有明顯的層理。

2. 凝灰岩一般比較鬆散,裡面不太會有這樣大塊結合狀的黃鐵礦出現,也不會常常是黑色這麼密實的岩石。如果凝灰岩中帶有礦物晶體比較常見的大概會是黑色的輝石、角閃石之類的斑晶。再者凝灰岩顏色很多變。

3. 目前台灣發現俗稱龍紋石這種產狀的岩石產地附近並沒有凝灰岩分布 (那麼就不會有火山灰)

4. 火山灰在堆積形成凝灰岩有的也是會有層理的,光憑層理這個因素作為依據是有問題的,建議多看看外面有凝灰岩出露的岩層

5.學術上不會用火星渣子這樣的名詞,從火山噴出來的碎屑一般稱為火山碎屑或火山灰,再大一點的叫火山礫。噴發出來的東西經過堆堆積壓密之後形成凝灰岩或火山角礫岩。

最後
不要看到黑色的東西就說是從火山噴出來的...我知道鐵鎂質含量高的火成岩顏色都很深,但是噴出岩絕對不會永遠都像玄武岩那樣都是深色的,如果你看過流紋岩就不會這麼思考了。









2019年4月16日 星期二

關於使用PHP語法設定line的圖文選單(rich menu)筆記

之前研究line的圖文選單遇到幾個難題,所以特別留了一些筆記
文件可以參考 https://developers.line.biz/en/docs/messaging-api/using-rich-menus/

1.上傳圖文選單
根據文件上面的Upload the rich menu image章節使用curl的語法大概是這樣

curl -v -X POST https://api.line.me/v2/bot/richmenu/{richMenuId}/content \
-H "Authorization: Bearer {channel access token}" \
-H "Content-Type: image/jpeg" \
-T image.jpg

「-H」可以知道是header,在PHP可以透過CURLOPT_HTTPHEADER代入。
偏偏那個「-T」在curl_setopt的函式中完全沒有對應的參數可以使用。
在網站上很多透過post上傳檔案的方法都是使用CURLOPT_POSTFIELDS參數來模擬表單的方式來上傳並,例如設訂一個field為file,然後把檔案實體位置代進去,但是在line api上傳選單圖片的方式用此方法是行不通的,還會回報Unsupported media type(不支援媒體格式)。
雖然有人在 https://github.com/line/demo-rich-menu-bot/issues/5 有詢問這個問題,但完全沒人回答。
如果進一步去看文件的話,可以發現request body所放的資料應該是圖片內容,而CURLOPT_POSTFIELDS也可以做為設定request body使用,不一定要放入表單資訊。另外圖片大小可以放在標頭的Content-Length之中,這樣一來就會變成。

$image = "圖文選單圖片的真實路徑";
$richMenuId = "你的圖文選單ID";
$accessToken = "你的圖文選單Channel access token";
$headers = array(
    "Authorization: Bearer ". $accessToken,
    "Content-Type: image/jpeg",
    "Content-Length: ". filesize($image);
)
curl_setopt($ch,CURLOPT_URL, "https://api.line.me/v2/bot/richmenu/$richMenuId/content");
curl_setopt($ch,CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, file_get_contents($image));
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);



檔案內容可以透過file_get_contents來取得。

2.設定預設的圖文選單

根據文件上面的Set the default rich menu章節使用curl的語法大概是這樣
curl -v -X POST https://api.line.me/v2/bot/user/all/richmenu/{richMenuId} \
-H "Authorization: Bearer {channel access token}"

做法不難,只要在網址放上richMenuId並在header上加上Authorization即可,但是問題出在使用上面的語法可能一直回傳bad request錯誤,又找不到錯誤是錯在哪裡。
(參考https://medium.com/@augustus0818/line-bot-rich-menu-aa5fa67ac6ae 章節3.3)

其實在 https://github.com/line/line-platform-feedback/issues/73 的文章中,也有人提到這個問題,關鍵在於要補上 「-d ''」就可以順利運作了,不會有bad request的問題。
這意味著,當你傳送POST來設定圖文選單時,必須要有request body,但因為不需要使用request body傳額外的資料,所以就直接放空字串就好了。

而在PHP語法中,除了設定CURLOPT_URL、CURLOPT_POST及CURLOPT_HTTPHEADER外,別忘了還要加入
curl_setopt($ch,CURLOPT_POSTFIELDS, "");