Skip to content

Thailand Covid testing and case data gathered and combined from various sources for others to download or view

Notifications You must be signed in to change notification settings

intelligent-bytes/covidthailand

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thailand COVID-19 Data

Note Share via https://djay.github.io/covidthailand

Thailand COVID-19 case/test/vaccination data gathered and combined from various government sources for others to view or download.

  • Updated daily 8-9am summary info, 1-3pm from full briefing. Testing data is updated every 1-3 weeks.

last update was.

NEW Excess Deaths

Disclaimer

Data offered here is offered as is with no guarentees. As much as possible government reportsk and data feeds have been used effort has gone into making this data collection accurate and timely. This sites only intention is to give an accurate representation of all the available Covid data for Thailand in one place.

Links to all data sources are including in Downloads

Cases

Cases by Where Tested

Source of Confirmed Cases

Cases by Risk Group

Cases by Risk

Provinces with Cases Trending Up

To see cases for every province go to The Researcher Covid Tracker

Trending Up Confirmed Cases (by Provinces)

Trending Up Contact Cases (by Provinces)

Trending Up "Unknown" Cases (by Provinces)

Provinces with Most Cases

Provinces with Most Walkin Cases

Cases by Health District

Cases by Health District

Cases by Age

Ages of Confirmed cases

Unoffcial Estimated Infections based on Deaths/IFR

Estimated Infections Thailand

Active Cases Since April 1st

Thailand Active Cases

Thailand Cases in ICU

Trending Up Severe Hospitaliztions

Top Severe Hospitaliztions

  • Break down of active case status only available from 2020-04-24 onwards.
  • Other Active Cases + ICU + Ventilator + Field hospitals = Hospitalised, which is everyone who is confirmed (for 14days at least)
  • see Thailand Active Cases 2020-2021
  • Source: CCSA Daily Briefing

Deaths

COVID-19 Deaths

Thailand Covid Deaths by Reason

COVID-19 Deaths by Health District

Thailand Covid Deaths by Health District

COVID-19 Deaths Age Range

Thailand Covid Death Age Range

Thailand Covid Death Age Range

Testing

Positive Rate

Positive Rate

PCR Tests in Thailand by day

Private and Public Tests

Private and Public Positive Results

PCR Tests by Health District

Tests by health area

Positive Rate by Health District

Proportion of positive rate contributed by health districts

  • Shows if all health districts are testing similarly

Health Districts with high Positive Rate (ex. some proactive tests)

Vaccinations

Vaccinations by Priority Groups

Daily Vaccinations in Thailand

Vaccinations in Thailand

Progress towards Full Vaccination

Progress towards Half Vaccination

Top Provinces by Vaccination 2nd Jab Top Provinces by Vaccination 1st Jab Lowest Provinces by Vaccination 2nd Jab Lowest Provinces by Vaccination 1st Jab

Vaccine Doses given by Heath District

Excess Deaths

Shows Deaths from all causes in comparison to the min, max and mean of Deaths from the 5 years pre-pandemic.

  • Note: there are many possible factors alter deaths up or down other than uncounted Covid Deaths

Thailand Excess Deaths by Region

Thailand Excess Deaths by Age

Thailand Excess deaths with Covid Deaths

Thailand Deaths Years Compared

Notes

How to contribute

  • As the differnent sources of the data has increased so has the code needed fetch, extract and display this data. All the code is fairly simple python however. It is a fun way to learn scraping data and/or pandas and matplotlib.
  • Find a github issue and have a go. Many are marked as suitable for begginers
    • making new plots
    • improve existing plots
    • adding tests so it's faster to make future fixes
    • improving scrapers that miss past data, e.g. vaccination reports
    • Spotting breaking updates and submitting a pull request to revise the scraper
    • If unsure if you are on the right track, submit a draft pull request and request a review
  • Spotted a problem or got an idea how to improve? Submit an issue and then have a go making it happen.
  • Got Questions? Start a discussion or comment on an issue

Install

  • To install (requires python >=3.9)
    python -m venv .
    bin/pip install -r requirements.txt
    

Adding tests

  • To run the tests (will only get files needed for tests)
    bin/pytest
    
  • To add a test
    • Only add test data for dates where the format changed and so the scraper had to get updated. See commit history for dates where this happened or use code coverage.
    • Logs from a full scrape can be used to also identify files/dates that are not scraped correctly
      • if you are trying to add in past regression tests you can also use git blame covid_data.py on the scraping function to see the dates that lines were added or changed. in some cases comments indicated important dates where code had to change.
    • Add empty file in tests/scraper_type/dl_name.json
      • for some tests can be use date of file instead or filename.date.json (the date is ignored but helps for readability)
    • Run tests. This will download just the document needed for that test, scrape it and compare the results agains the json.
      • of course this will fail but you can look at the generated data and compare it to the original file or other sources to make sure it loosk right
    • If the results are correct there is commented out code in the test to export the data to the test json file.
      • if you are using vscode to run pytests you need to refresh the tests list at this point for some reason
    • Note not all scrapers have a test framework setup yet. But follow the existing code to do add it or ask for help.

Running just plots (or latest files)

  • copy all the csv files from downloads and put then in a dir called api
  • copy the moph_* files from api and also put them in a dir called "json"
  • To get latest files
    USE_CACHE_DATA=True MAX_DAYS=1 bin/python covid_plot.py
    
  • To do just plots
    USE_CACHE_DATA=True MAX_DAYS=0 bin/python covid_plot.py
    
  • For debugging, to do just one part of the scraping first, rearrange lines in covid_data.py/scrape_and_combine

Running full code (warning will take a long time)

You can just use the test framework without a full download if want to work on scraping.

  • to download only the files that interest you first you can commented out or rearrange the lines in covid_data.scrape_and_combine

  • to work on plots you can download the csv files from the website into the api directory and set env MAX_DAYS=0

  • To run the full scrape (warning this will take a long time as it downloads all the documents into a local cache)

    bin/python covid_plot.py
    

Contributors

About

Made with python/pandas/matplotlib. Dylan Jay gave a talk on how easy it is to extract data from PDFs and powerpoints and plot data at Bangkok's Monthly ThaiPy Event Video: "How I scraped Thailand's covid data" (1h mark)

Why do this? Originally to answer the question "Was Thailand doing enough testing?" for myself and because Someone was wrong on the internet.

License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Other sources of visualisations/Data for Thailand

Change log

  • 2021-08-16 - Move ATK to tests plot and remove from types plot
  • 2021-08-16 - Plots of more age ranges for deaths, excess deaths and cases
  • 2021-08-15 - Dashboard parsing for provinces and ages with downloads
  • 2021-08-02 - Add ATK cases parsing from dashboard and put in case_types plot
  • 2021-07-30 - Add plots for excess deaths
  • 2021-07-18 - Add data on vaccines by manufacturer from vaccine slides
  • 2021-07-17 - Add estimate of death ages
  • 2021-07-13 - Remove import vaccines due to coldchain data being restricted
  • 2021-07-10 - Switch province plots to per 100,000
  • 2021-07-10 - Put actuals on main case plots
  • 2021-06-29 - Use coldchain data to plot deliveries and province vac data
  • 2021-06-22 - Add trending provinces for contact cases
  • 2021-06-12 - Add vacination daily and improve cumulative vaccinations
  • 2021-06-05 - update vaccination reports to parse summary timeline data only (missing source)
  • 2021-06-30 - death reasons and hospitalisation critical plots
  • 2021-05-21 - Estimate of Infections from Deaths
  • 2021-05-18 - Include prisons as seperate province/health district (because briefings do)
  • 2021-05-15 - improve highest positive rate plot to show top 5 only.
  • 2021-05-10 - parse unofficial RB tweet to get cases and deaths earlier
  • 2021-05-07 - add trending up and down provinces for cases
  • 2021-05-06 - add top 5 fully vaccinated provinces
  • 2021-05-05 - added recovered to active cases
  • 2021-05-04 - plots of deaths and vaccinations
  • 2021-04-28 - rolling averages on area graphs to make them easier to read
  • 2021-04-25 - Add graph of cases by risk and active cases (inc severe)
  • 2021-04-25 - Scrape hospitalisation stats from briefing reports
  • 2021-04-23 - Fixed mistake in testing data where private tests was added again
  • 2021-04-22 - data for sym/asymptomatic and pui private vs pui public
  • 2021-04-20 - Added case age plot
  • 2021-04-18 - Added clearer positive rate by district plot and made overall positive rate clearer
  • 2021-04-15 - Quicker province case type breakdowns from daily briefing reports
  • 2021-04-13 - get quicker PUI count from https://ddc.moph.go.th/viralpneumonia/index.php
  • 2021-04-12 - Put in "unknown area" for tests and cases by district so totals are correct
  • 2021-04-05 - add tweets with province/type break down to get more up to date stats

<style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>

About

Thailand Covid testing and case data gathered and combined from various sources for others to download or view

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 98.9%
  • Python 1.1%