Fate of Our Forests

Addition and removal of forest reserves in Peninsular Malaysia as published in government gazettes.

Created and updated regularly by Law Yao Hua.


Jan 1, 2002 to


Recent Changes

before
Loading data...

Peninsular Malaysia

Net Change

Jan 1, 2002 to

Loading...

Net Yearly Change (ha)

10 Most Recent Changes

Loading...

Top 5 Biggest Additions

Loading...

Top 5 Biggest Removals

Loading...

All Changes up to

Loading...
Gazette Date Forest Reserve Change (ha) Gazette Number State District | Mukim Effective Date Notes

Pick and explore

Forest reserve layers will stack and blend colours.

What's This About

What's here?

This platform shows all official changes in areas of forest reserves in Peninsular Malaysia since January 1, 2002 to . All changes reported here were published in government gazettes.

The changes are presented in tables, charts, and maps. You can also review and retrieve the original gazettes for every change.

Why Gazettes?

In Malaysia, only state governments have the authority to add, remove, or classify forest reserves.

As per the National Forestry Act 1984 and the corresponding enactments in the states, when state governments add or remove forest reserves, they must:

  • publish the change in a government document called 'gazette', and
  • the change would take effect on the date indicated in the gazette.

Therefore, gazettes are the essential, ultimate, and legally binding documents on the status of forest reserves. Gazettes are ever more important because one cannot readily identify forest reserves by sight. Despite their official term "permanent reserved forest", in Peninsular Malaysia, about 70% of forest reserves are classified as "productive forest" -- these can be selectively logged or even cleared for tree farms or quarries.

We need gazettes to monitor or verify forest reserve area changes. A map of forest reserves would be helpful too.

The Need to Preserve and Democratise Data

But most gazettes and forest reserve maps are inaccessible, even to many government agencies, universities, and auditors. The documents are kept behind paywalls or demand time and expertise to use. As I reported on forest use in Peninsular Malaysia and began amassing data and documents, people reached out to me for information. They included auditors, researchers, consultants, environmental NGOs, reporters, and even government officers.

The information that concerns all of us are held by too few of us. How forests are managed affect the lives living within, nearby, and across the horizon. The generations now and future. You might have wondered if that patch of forest is protected, and why governments allow clear-cutting despite destructive floods. If you try to probe -- like my colleagues and I have -- you would likely receive silence, denial, or untruths.

One would think that the federal government and state governments have complete and updated forestry data, but my experience suggests otherwise. Our forest data is a multiverse-level obstacle in our pursuit of just, holistic, and progressive forest management.

For You

I collected, compiled, and cleaned those documents, and visualised the data for you.

Building This Platform

This platform draws from two datasets: gazettes and forest reserve maps. I paid to access and download gazettes in Peninsular Malaysia, then extracted information on forest reserve changes. There are nearly 1,000 entries in my gazette dataset.

Separately, I compiled forest reserve maps from various sources: the geospatial servers of the Department of Forestry Peninsular Malaysia and the Department of Environment, and documents like Local Plans, State Structural Plans, and state agencies developmental plans. For details on the data and methodology, head to Methodology.

Thank You

I built this platform as a side project during my Nieman Fellowship (2025/2026) at Harvard University, USA. It is the culmination of my forest reporting for Macaranga, advice from Belle Lipton of the Harvard Map Collection, and generous feedback, encouragement, and materials from friends in Malaysia and beyond. I thank the Nieman Foundation, the Harvard Map Collection, and everyone who has taught me everything I know about Malaysian forestry.

How I Put It Together

Overview

I created this platform to provide historical and regularly updated additions and removals in forest reserves in Peninsular Malaysia. It's something which would have been of great use in my reporting on forest use for Macaranga. Other forest-related information will be provided when I could get to them.

Any user would be able to:

  1. Access the platform for free
  2. Use the platform without prior knowledge or experience with forest data (though familiarity with local geography is helpful)
  3. Download all and full datasets shown on the platform for own use (except datasets with restrictive rights)
  4. Easily find and understand explanation on the limits and gaps in the datasets, and caveats to their interpretation
  5. Share feedback to better achieve these goals

User data: All data and processes are loaded on the user's Internet browser. The platform has a Google Analytics tag that records user visit information: country, duration of visit, etc. I cannot pinpoint identity of any visitor.

Data Repository: Sources and materials mentioned below can be found here.

Structure and Processes

What and where is it: This platform is a single static webpage with HTML, CSS, and JS components -- like most websites. I am hosting it for free as a GitHub Page on my GitHub repository. I built the platform using Claude Code in Visual Studio Code. I used Leaflet for webmapping functions, designed the basemap on Mapbox, and used the latter's satellite imagery layer too.

Data structure:

This platform is built on several datasets -- everything else serves to help you find and make sense of the data. The most essential dataset is a dynamic list of forest reserve changes (addition and removal) since 1 Jan 2002 based on gazettes. Then there are maps of forest reserves (boundaries).

The list and the maps share two parameters: the names of the forest reserves (e.g. Bukit Tinggi), and the states where the reserves are located in (e.g., Pahang). The code uses these two parameters to connect a specific forest reserve or state in the list to its location on the maps.

When you click on a state or forest reserve on a map, the code sees your choice, goes into the list, finds all changes recorded of that state or forest reserve, and presents them to the user. If you pick options in a table, the code only queries the list.

Datasets

Data Repository: Sources and materials mentioned below can be found here.

List of Forest Reserve Changes

Sources: All gazettes of forest reserve changes since 2001 are available in PDF format via Lawnet, a unit under Percetakan Nasional Malaysia Berhad, the "licensed security printer" for the Malaysian government. I paid RM1620 for an annual subscription.

In Data Repository: The list is "gazette[date].csv". If you want the download the gazette itself, click here. To find a specific gazette, look up the issuing state, year, and gazette number, as the PDF is named as "State.Year.GazetteNumber.PDF".

Process: On Lawnet, I searched for forest reserve gazettes in each Peninsular Malaysia state by querying the "E-Gazettes" interface using "perhutanan" ('forestry') in "Title". This query returns all forest reserve gazettes because their titles contain the words "Akta Perhutanan" ('Forestry Act'). I downloaded every gazette since 1 Jan 2002, read them, and transcribed the data into an Excel spreadsheet. If the gazettes carry variations of the same forest reserve name (e.g., Air Hitam vs Ayer Hitam), I standardised them to the most recent spelling as of 31 December 2025.

Components: A total of 371 forest reserves were named in the gazettes since 1 Jan 2002. Some gazettes did not name the forest reserves affected, and I couldn't verify their names without checking with the land offices. Data components comprise date of gazette publication, the forest reserve's name, state, district, and mukim, change in area, and the ID of the Pelan Warta, which is a separate state government document that shows the boundaries of the area implicated in the change. From the gazettes, I also recorded the effective dates of the changes, which in some states could be long before the gazettes were published.

Notes: The gazettes on Lawnet do not show the boundaries of the changed area, so I do not know the exact locations added or removed in the forest reserves. For the few gazettes (typically those from Melaka) that do not mention the names of the forest reserves affected, I wrote "Not stated".

Maps: Forest Reserves (Dept Forestry Peninsular Malaysia and Dept Environment Malaysia)

Sources: The Department of Forestry Peninsular Malaysia and the Department of Environment Malaysia had (have?) websites that stored geospatial datasets. Both servers could be accessed without login and had options to display the geospatial data in tables or maps. The vector shapefiles used on this platform were originally downloaded from the Departments' geospatial servers and given to me in 2021 (Dept Environment) and 2024 (Dept Forestry). The websites and files had no description on dates of publication or last update.

In Data Repository: DeptForestryPMsia_2022 "forest_jpsm.geojson"; DeptEnvMsia_2012 "forest_doe.geojson". Download here.

Process: The original shapefiles contained hundreds of individual forest reserves each. Each forest reserve carried information such as state, mukim, forestry district, area, gazetted date, etc. I removed all information except for the forest reserve's boundary, name (e.g. Kledang Saiong), and state (e.g., Perak). I fixed the geometries of the shapefile (QGIS function: "Vector->Fix Geometries, Repair Structure"). Some forest reserves were fragmented items (e.g., the same forest reserve has east and west sections) and I merged them into one item with one name (QGIS function: "Vector->Dissolve" by forest reserve name). Because the platform searches all datasets using names of forest reserves, it's essential to use a standardised list of names. I chose to use names printed in the legally-binding gazettes as the standard. Therefore, when these maps had names different from those in the gazettes, I changed them to match the gazettes'. For forest reserves not mentioned in gazettes, I used the Dept of Forestry's map as the standard.

Components: A total of 523 forest reserves in the Department of Forestry Peninsular Malaysia's map, and 474 reserves in the Department of Environment's. Data includes forest reserve's boundary, name (e.g. Kledang Saiong), state (e.g., Perak), and source ("DeptForPMsia_2022" or "DeptEnvMsia_2012").

Notes: The Master List of forest reserve names used on this platform can be found in the data repository. One forest reserve in Perak on the Dept Forestry Peninsular Malaysia's map is not named and could not be identified after comparisons across datasets, so I left it as "Z - Not named".

Maps: Forest Reserves (2012 vs 2022)

Sources: This layer is simply the areas of forest reserves found in the Department of Environment's map (2012) but not in the Department of Forestry Peninsular Malaysia's (2022). I created this layer to draw attention to the areas that suggest big removals of forest reserves between 2012 and 2022.

In Data Repository: "forest_2012vs2022.geojson" Download here.

Process: I used QGIS to extract the parts of forest reserves in the Dept Env's map that are not found in the Department of Forestry's (QGIS function "Vector->Difference" with the former as the Input Layer and the latter as the Overlay Layer). Because the two layers do not fully align and the same forest reserves often diverge slightly, this extraction produced many narrow strips (often just a line) along borders of forest reserves. To focus attention on the bigger blocs -- which I assume are more likely to be true differences between 2012 and 2022 -- I manually removed all narrow strips from the extracted layer.

Components: Forest reserve boundary, and state.

Notes: The remaining blocs likely still retain some artefacts of the processing; further verification is warranted.

Maps: Forest Reserves (Others)

Sources: As of 21 March 2026, the gazette dataset mentioned 118 forest reserves (excluding the unnamed ones) that were not found in the maps from the Department of Forestry or Department of Environment's websites. I tried to reduce this gap by looking for recent maps outside of the two Departments. My heuristic search yielded results that were more opportunistic than the fruit of systematic efforts. Full list of sources in Data Repository.

In Data Repository: "forest_others.geojson".

Process: I downloaded the original maps either in PDF format or screenshot into PNG format. Then I georeferenced the PDF/PNG by matching geographic features with Open Street Map basemap in QGIS. After georeferencing, I traced the forest reserves in these maps and added them as vector polygons, also in QGIS.

Components: Forest reserve boundary, state, and sources.

Notes:

Maps: Forest Reserves (National Atlas 1977)

Sources: "Atlas Kebangsaan Malaysia", 1977, published by Dewan Bahasa dan Pustaka. Accessed hardcopy at the Harvard Map Collection between September 2025 - January 2026.

In Data Repository: forest_atlas1977.geojson

Process: After producing the raster GeoTIFF (see below) for state maps from the Atlas, I produced vector shapefiles of forest reserves and wildlife reserves found on the 1977 maps. I traced every reserve using mouse and added each forest reserve as an individual feature (polygon).

Components: Forest reserve boundaries, name of forest reserves (if not printed on maps, then "Not stated"), state of forest reserve

Notes:

Map: National Atlas 1977 (raster)

Sources: "Atlas Kebangsaan Malaysia", 1977, published by Dewan Bahasa dan Pustaka. Accessed hardcopy at the Harvard Map Collection between September 2025 - January 2026. The book has 152 pages, excluding front cover matter and preface. Part 8 of the atlas contains two maps for each state in Peninsular Malaysia -- a land use map, and a "development" map showing agriculture and main public infrastructure.

In Data Repository: TIF files of each state (higher resolution) and entire peninsula (lower resolution). Download here.

Process: I scanned the land use maps for each state using the library's scanner Bookeye 4 Basic. Each state's map is an individual PDF of 300 dpi in colour. I then georeferenced each state map PDF in the software QGIS, using the gridlines and coordinates on the PDF map and a Coordinate Reference System of EPSG 4751 (Kertau (RSO)). The georeferenced PDF is now a 8-bit GeoTIFF raster and contains not just the state map, but also many items beyond the state border such as legends, text, and graphics of neighbouring states. To extract ONLY the state and everything within, I place a separate state border vector shapefile above the raster and clip the underlying raster (QGIS function: "Clip raster by mask layer"), yielding a raster file such as 'Atlas1977clipped_Perak_4751CRS.tiff'. I then stitch all 11 clipped state maps into a single Peninsular Malaysia map (QGIS function: "Raster->Merge").

Components: One 8-bit GeoTIFF file

Notes: This processing introduces errors in alignments, including during georeferencing, CRS projections, and clipping, and also differences in scale across the individual state maps. Consequently, the final stitched-up Peninsular Malaysia map is most unreliable along state borders and sports variation in resolution. But it is instructive as a secondary reference or crude check on the land use situation in the 1970s. Regardless, I cannot do better than this for now.

Tools Used

Puzzles to Solve

The many gaps and discrepancies in Malaysian forest data pose many puzzles. It's an unfortunate situation, but exciting. Unfortunate, because these puzzles often hide the true picture of our forests; exciting, because solving these interesting puzzles is often a fun challenge that rewards you with surprising answers.

Here are several I have spotted while building this platform. I hope you will tackle them and share your findings with us.

When was Belungkor reserve in Johor excised?

  • Look up Belungkor forest reserve (Johor) in the "Map (Explore)" section. Compare the reserve between the maps of 2022 and 2012.
  • Notice that Belungkor in the 2022 map was half the size of the one in the 2012 map. This suggests that about half of Belungkur was excised since 2012.
  • Puzzle: There is no gazette recording any change in Belungkor since 2002. So, when was the western half of Belungkor excised?
  • Or perhaps, it was never excised, and the 2022 boundary was inaccurately smaller. But -- check the satellite image layer and you will see that the western half contains aquaculture ponds which is prohibited in forest reserves. If that half remains a reserve, what explains the aquaculture there?
  • Even stranger: Official documents (Rancangan Tempatan Daerah Kota Tinggi 2030 (Penggantian) and the Johor Forestry Department Annual Report 2023) show Belungkor with the bigger boundary on map but report just half its size in statistics -- thereby presenting conflicting data.
  • No end to stranger things: The annual audit reports for Johor Malaysian Timber Certification Scheme -- which is undertaken by auditors to check that Johor forest management meets sustainability criteria -- in 2020, 2021 and 2022 show Belungkor with the bigger boundary. Then starting in 2023, the reports show a smaller Belungkor in their maps. The audit reports mention other reserves that were excised but not Belungkor.

When was Ulu Temiang in Kelantan excised?

  • A puzzle similiar to Belungkor in Johor
  • Look up Ulu Temiang forest reserve (Kelantan) in the "Map (Explore)" section. Compare the reserve between the maps of 2022 and 2012. Notice that the southern part of Ulu Temiang reserve is present in the 2012 map but missing in the 2022 map. This suggests that the southern part was excised since 2012.
  • Use the measurement tool to estimate the area of this 'excised' part -- it's about 6,100 hectares.
  • Check it on the satellite image layer -- it has been cleared some time ago and it's now covered in either shrubs or planted trees.
  • But there are only two gazettes on Ulu Temiang since 2002, both removals: 2,023 ha in 2007 and 125 ha in 2014, for a total of 2,148 ha.
  • Puzzle: What happened to the 6,100 ha southern part of Ulu Temiang? Is it still a reserve that's been turned into tree plantations? Or was it 'excised' without a gazette...waiting to be 'backdated' in a future gazette (see below)?

What explains the 'backdating' of gazettes?

  • This is a puzzle that I would love to crack but haven't got the time to!
  • Every gazette on addition or removal of forest reserves will give a date for the change to take effect. For most gazettes, the gazette says that the change takes effect on the date the gazette is published.
  • But for some gazettes, the effective dates could be weeks, months, or even years ago. This 'backdating' practice is most common among Kelantan, Kedah, Terengganu, and Melaka. The most extreme cases is the gazette issued by Terengganu in 2018 (#1431) that excised parts of three reserves with effective dates in 1972 -- 46 years ago!
  • I wrote about this practice for Macaranga.
  • You can check effective dates using the "All Changes (Table)" section. Download the entire data in CSV to analyse the data.
  • Puzzle: Is there any pattern or motivation that explains this backdating practice? Why do some states do it but others don't? Why do the states do it for some gazettes but not all? It appears that backdating is more common among excision than addition -- why?