發表文章

頭有多重?

圖片
前幾天買了一個行李拉秤想要來秤東秤西,不過拿到之後想秤的第一個東西卻是「頭」。 秤頭真是麻煩,雖然廚房有工具可以幫忙拿下來,但是拿下來怕地板要洗很久,然後又怕會放不回去,所以就想了一個方法來秤-躺在地上戴著頭巾叫老婆把我頭鉤起來量,因為鉤的地方不是質心,所以用了不同的方式和鉤位來測量。 1.身體躺著,頭巾綁在額頭 2.身體趴著,頭巾綁在額頭 也有用別的方式,頭巾通過嘴巴,對,就像是被綁架那樣,然後身體趴著,但這樣太難量,很怕下巴會掉出去。或者頭巾綁在下巴,身體坐著頭垂著,但這樣勾著會有人生跑馬燈跑出來,還是算了。 量了之後,得到的數據大致上在5.2公斤到5.8公斤之間。 後來我想試試看自己有沒有辦法量呢? 一樣是綁著頭巾在額頭上,躺在地上自己抓著秤來量自己頭重,結果發現完全沒有辦法耶。當我手出力把頭勾起來時,頸前的肌肉啊,就會反射收縮主動讓頭抬起來,結果秤出來只有兩公斤多。 想想這麼重的東西,快要是三罐2000cc可樂的重量了,如果它的位置不是平穩地安放在脖子上方,而是一整天頭前傾都往前垂出去,那麼肩頸肌肉負擔有多大啊。 這種測量方式準不準呢?我發現還蠻準的,因為我想起來以前有用過更精密的方式測量過啊。 幾個月前去作過 DXA的體脂肪、肌肉與骨質測量,那是用低能量的X光去照射全身所作的測量,藉由影像中X光對不同組織的穿透度,來估算各部位的質量。 裡頭就有頭部重量的數據,是5811g,其中 fat mass是1307g。 但我覺得其中的fat mass 不一定是脂肪,可能是腦,一般成年人的腦重也就是1-1.5kg之間, 當然還有一種可能就是我這個頭裡面沒有腦,就只有脂肪,但是這個可能性很低,我們不應該考慮。

便利商店的地理資訊分析

圖片
最近在弄這個專案,純粹是因為幾個月前去台南玩的時候,逛街逛著想要找間便利商店,有種感覺-便利商店好像比新竹少?在新竹市街上走著,好像很容易就看到便利商店。 要來驗證這種主觀的感覺是否為真,就得要有充分的數據來支持。 首先得先找到超商的資料庫,在 政府開放資料平臺 上,有一個 全國5大超商資料集 ,剛好可以用來解答。 不過我熟悉的就只有四大超商而已,哪來五大呢?看了資料集才知道它是連全聯一起算進去啊。 有了這個資料集,可以先作一些簡單的探索性分析,像是各縣市的五大超商數量。 新北、台北是第一名和第二名 小七在各縣市都是最多的,接下來就是全家 在某些縣市是沒有OK、萊爾富、全聯等便利商店 在五大超商資料集中,還有各分公司的地址,既然有地址,就可以拿來作地理資訊分析了。不過地址怎麼轉成經緯度呢?有兩種作法,一是用 Google Maps API ,不過有一些數量和時間的限制,所以我改用方法二。 方法二就是用 地理資訊圖資雲服務平台 ,平台有一個「全國門牌地址定位服務」,只要成為TGOS會員,一天可以比對一萬筆的資料。會員的申請不用錢,比對資料也不用錢,真是太棒了。 會員申請好了以後,再申請[ 批次門牌地址比對服務 ] ,就可拿到一組認證金鑰(API KEY)。申請會員和申請地址比對服務大概都是人工作業,所以不是隨時申請就隨時通過的,但上班時間內幾個小時內就會通過。然後地址轉經緯度也不用寫程式去呼叫,只要上傳你的地址csv檔之後,過一段時間,系統就會通知你去下載結果。 由於我使用的超商資料接近兩萬筆,所以我就分兩天去轉經緯度,但不是每一個地址都有順利轉出來的,大約三百多筆資料沒轉出來,比較多是因為該超商的地址有多個門牌號碼,而系統只能比對一個門牌。我評估三百多筆資料的缺失,對我的分析作業影響不大,所以我就不管那些呢。 第一張圖並不區分超商的公司為何,沒想到完全可以勾勒出台灣的位置。但是啊,仔細看會發現怎麼台灣西北方會出現一些超商的點啊?這個應該是轉門牌為經緯度的時候,有些點位的誤差。 另外一張圖將不同公司用不同顏色標上去,乍看之下到處都是全聯,但其實是因為全聯是繪圖時最後一組被標上的,所以它把其他超商蓋過去了。 接下來就開始用內政部的其他資料一起來畫圖吧,找了各縣市的人口和面積,然後計算兩個指標 該縣市的人口/除以該縣市的便利商店店數,這當作是一個店的服

歷年國中生物教科書比較

圖片
前幾天,月鈴老師因為要寫一份文件,要討論歷年的教科書變化,拿了一份資料問我,如何整理比較好,那份資料是歷年教科書的目錄。 我想了想,如果是用章或節來分,可能的問題是各期教科書的排法並不同,不容易看出比較,也可能分得太粗。後來我想乾脆就用現在教科書的幾個大概念來將每節與每個實驗活動來分類,不知道怎麼分類的就算「其他」,有一些上冊第一二章的東西,就當作「概論」,這樣應該可以。 所以我就先將所有資料以節為單位,把資料先清理乾淨,像這樣才好做後續的整理 有了這樣的資料庫之後,再用python抓資料寫成html檔,變成這樣 你可以在這裡看到全貌 https://chihhsiangchien.github.io/textbookAnalyze/analyze.html 看到歷史軌跡的變化,真是有趣而且嚇人。 57年版本的教科書寫「依照課程標準,生物科每週上課三小時,其中三分之一為實驗時間。但作實驗之次數及每次所用之時間,可由教師自行斟酌,只須總時間符合三分之一之規定即可。」 你知道這個版本教科書上下學期多少實驗嗎? 80個耶! 不過後來看到月鈴提供的教科書照片,原來那時的實驗並不像現在的教科書那樣的巨大,有些就是幾單的觀察活動而已,而且也沒有硬性一定要做那些實驗。再加上當時的師資結構,也許也不一定都有做這些實驗就是。

歷年各科會考分析的通過率鑑別度的視覺化呈現

圖片
前一篇我說,我本來在做交通的視覺化呈現,可是中間卡觀去做別的專案了,意外發現D3.js可以解決問題。我說的別的專案就是這個- 歷屆各科國中會考分析的視覺化呈現 但我以前不就在這邊已經做過了嗎? https://chihhsiangchien.github.io/question_database/ 點進去可以看到有各科所有年度合計的通過率鑑別度等,要看到各科最高鑑別度的題目也可以啊,但是之前的做法就是讓那些資料都分散的。 現在的新作法就是用D3.js來打造新的散佈圖 https://chihhsiangchien.github.io/question_database/d3/index.html 可以看各科單年度或全部年度的通過率和鑑別度的圖形分布,點到那個點上,還可以看到那一題的題目是什麼?不過啊因為題目是直接用程式擷取的,所以我就沒有細修,因此題目內會看到一些莫名的碼,那個其實是題目本來有含圖的,或是題目的選項有點錯置。但是我覺得這不影響使用。因為你要看這個東西,目的是要看題目的類型和通過率、鑑別度之間的關係。 另外,透過各科之間的比較,也會發現各科的歧異度很大,有些科目對學生來說應該都算簡單,所以通過率都高,但有些就真的是難科。

端午連假,開車出門去到哪?D3 js弧形圖的視覺化呈現

圖片
 兩三週前,寫了這篇 《端午連假,台灣人有出遠門嗎?用高公局的交通資料庫找證據》 過了幾週後,其實民眾應該已經忘記端午連假前,有人出遠門這件事。不過,我沒忘,我一直在想找這個答案。 當時那篇我最後寫了 最後回到一開始的問題,到底有沒有出遠門呢?我目前只能說,我的資料無法支持「有出遠門」這樣的主張。主要是我處理的資料庫中沒有提供起訖點,當然也不知道南北向。所以目前我只能說我不支持這樣的主張,但是並不代表我反駁這樣的主張喔。 後來我在 高速公路局的交通資料庫 裡看到了M06A的 各旅次路徑原始資料,裡頭居然鉅細靡遺的紀錄了每天每一台車的起訖點和經過各門架的時間,有了這種資料要回答我之前提出的問題。還好沒有提供車號,不然真的可以拿來為非作歹啊。 這個資料庫裡有區分車種,如小客車、大客車、小貨車、大貨車、聯結車等,我抓取了每台車的起點和終點門架做統計之後,知道那些門架進出數量,但是卻不知道怎麼去呈現這些資料。 嘗試過各種方式,但總是沒能達到我要的效果 試過畫出每個門架的位置,想從裡頭視覺化,但是想不出來。 也試過熱區圖,用進出門架的縣市為縱橫軸,用實際車次為數值,看「從哪個縣市進入的,大多去哪個縣市」。但是用實際車次就會受到母體的影響,比方說雙北的人口多,車輛當然多,而且雙北的面積大,所以很容易就得出「從台北市進去的車子大多從台北市離開」的結論 後來我就想,那我先不要分縣市,直接看各門架的進出好了。(先說下面兩張圖後來想到有一些問題) 我抓取6/11,旅程小於300公里的聯結車的行車紀錄,共計202454輛次。再篩選各收費門架中,找出起點和終點門架各大於500輛次的門架,用其前後的出入口當作該車輛進入和離開高速公路的點。看看聯結車和小客車進入高速公路的熱點,和離開高速公路的熱點是哪裡? 這張圖怎麼看,每個色塊都代表一群車子,顏色深淺代表這群車子的數量,沿著色塊往左看可以看這群車子從哪裡來,往下看可以看這群車子從哪裡離開。 跟一開始我推測的差不多,基隆和高雄就是熱區。 我說的問題是什麼,實際上第一名的入口門架,所使用的出口門架,和第二名、第三名等的所使用的出口門架都是不同的,所以這樣的圖看起來很漂亮,但其實漏掉很多訊息。 卡關一陣子之後,分心去處理別的專案,用了D3.js,發現弧形圖 arc diagram很適合用在我這個交通分析的專案。 於是花了一些時間弄懂範例之後,終於打

Google App Script的客製化成績查詢系統

圖片
 你想要一個自己的成績查詢系統嗎?使用者輸入帳號密碼,就可以查到自己的成績。我做好一個客製化的成績查詢系統了。 建立副本後,你只要按五六個鍵,就可以把這個系統發布在網路上,預設是提供十欄的成績。 更新資料也很簡單,就是把成績貼進試算表就好了 你可以測試看看這個系統 https://script.google.com/macros/s/AKfycbxq11gO5EQl4HH8qLxcoR-hiXVo7VOrePFXV6CR5KoxHy3ERaNfwm2bK-UHnSL1bUe3/exec 班級填01 或 02都可以 座號01-26都可以 密碼則都是0000 每次段考為了要讓每個學生個別知道自己選擇題的讀卡結果或是他們自己的分數,我都是把資料放進moodle的作業回饋裡,讓學生登入moodle去查就可以知道。 這個流程即便我已經很熟練,但每次都要花上幾十分鐘做這個事情。 趁著這次瘋狂練習Google App Script,我乾脆用Google App Script寫了一個線上應用程式。我只要每次段考把註冊組給我的學生讀卡結果貼進Google試算表就完成了,費時只要一秒鐘吧。學生登入系統就可以查到了啊。 後來因為有朋友跟我說到他們也有這樣的需求,所以我就乾脆做一個分享版出來,反正你只要跟著我的教學影片按幾個按鈕後,剩下的就只有把成績和資料貼在試算表上。一切就是這麼簡單。 不過啊,我一個朋友試用,發現他用學校的教育帳號建立出來的會失敗,我猜想可能是他們網管有什麼設定吧。如果會失敗的話,那就用自己的Gmail帳號吧。 https://drive.google.com/drive/folders/1rW-KNlN0zw9NMWVSROGiTP16iMUj2H0o?usp=sharing 教學影片 https://www.youtube.com/watch?v=V8nwvQJ25IY

雲端自動化轉換Google測驗表單系統

學生停止到校上課這件事,對我最大的改變,就是讓我一直寫程式一直寫程式,甚至讓我寫出了一個「雲端自動化轉換Google測驗表單系統」。因為哪邊都不能去,時間多了很多出來。 簡單說怎麼作! 系統在這邊,把題目電子檔上傳雲端硬碟變成Google文件後,取得該文件的共用連結,設定成所有人都能檢視之後,把連結貼到系統之後,系統就會自動轉換。 https://docs.google.com/forms/d/e/1FAIpQLSc1W7Y0TmxTHvxl6rhdQ451u1Gpri-jeaIhyOB7EbQGD6ZHTw/viewform 接下來這段是寫回憶錄用的。 *********************************************** 寫這個系統的原因是這樣的,其實我本來一點都不需要Google測驗表單的,但是開始全國停課的第二天還是第三天,我常用的「合作備課」平台居然掛掉了,於是我趕快去Google classroom去備援一下,所以就開始用 Google測驗表單了。 手工作一個測驗表單實在很花時間,作好了又只有自己用一次就沒了,實在很浪費。所以我那時候就想,作好了應該要分享出來,大家建立副本就能用。 這次那時候作的幾個生物測驗表單,範圍就是動物界和生態系第一節的部份 https://drive.google.com/drive/u/1/folders/1uU9CCzZxNx0OKxaQxtzGiLGbqm9rMizU 後來想要作四選一的選擇題的時候,想到自己之前就有收自然科、社會科的題庫,當然我自己生物科的題庫也是有的,所以我就埋頭研究Google App Script,看看可不可以用它來轉換。最後當然也是轉成了。也是提供給大家使用,那時候可以大量轉出這樣的題庫,靠的就是自己寫的試算表裡的script,那個試算表我也放在下面這個資料夾中。 各科考題(不含圖片):國中生物、理化、地科、歷史、地理、公民、英語.... https://drive.google.com/drive/folders/1L8z0xrJ2s0T5A_vHVOahLIjgFvTGhXog?fbclid=IwAR0M-cqLwPcfUsAlTCS14tFRvG5qEnD7-hS_o3Jsd89O2IcCDQacW7hn7ks 但那時候作的時候,還有一個問題,就是圖片沒辦法放進去,但