augustt / cehcraft Goto Github PK
View Code? Open in Web Editor NEWCreating minecraft maps using CEH data
Creating minecraft maps using CEH data
I'm not sure what the habitat is but in the lake district the hills are covered with purple tulips in every square. Let's add some variation to this to make it more interesting.
Using a vector map of rivers we should be able to better represent them in out maps
By changing the biome we use I think we can get it to snow on our mountain peaks. try biome 3 https://minecraft.gamepedia.com/Biome#Temperature
I guess the habitats we have them in are rare. Can we put them somewhere else.
Create a test map for checking block type / entity assignment
This should replace #2 eventually. In the same way that we build houses we could write some code that builds trees. They can all have the same crown shape and size with some variation introduced in the height of the trunk (say, 3-6). The leaf type and wood type for trunk are then selected randomly in the same way as we do the saplings (or bricks for buildings). This could do with us learning how to write functions in python!
Adding fences and walls should keep in animals and people to their respective zones. This could be done by checking the 4 tiles around the target tile and building a fence/wall on any sides that touch a different land class. It is actually not this easy as fences/wall do not go down the side of a block but radiate from a central position.
More info on fences and their states here https://minecraft.gamepedia.com/Fence#Block_state
Some thought will be required to work out the rules that govern the position of fences
Walls operate in a similar fashion https://minecraft.gamepedia.com/Cobblestone_Wall
It might be a nice idea to build the worlds of a bunch of famous Minecraft players/commentators. I have had a look at a few forums and here are some potential people.
Joseph Garrett / Stampy Cat - Born in Portsmouth - Uni in Southampton - We could do Southampton
Daniel Middleton / DanTDM - Lives in Wellingborough
Various people / yogscast - The team is based in Bristol
We should be able to add major roads to the map which will help people to recognise locations. I suggest we buffer rods so that they are 2 blocks wide at a minimum. @GPowney perhaps there are different block types we could use for motorways vs A roads? Equally the motorways could be buffered to be larger then the A roads.
@RetoSchmucki is there a vector layer for railway lines that we could add in along with the rivers and roads?
@GPowney I assume we could code these as minecart tracks and even add the odd minecart?
This was suggested by one of our testers
If we are ever going to go big we need to figure this one out. I think there is an answer in here somewhere
https://stackoverflow.com/questions/17318643/python-multiprocessing-pool-for-parallel-processing
Given that the world building is an 'embarrassingly parallel' problem there could be some big speed gains here. We should look into multi-core solutions in python, no idea how easy/hard these are. We could then in theory upscale to JASMIN if we wanted to 'go big'.
Esp. Squids and birds
The block below water should be rock/mud
We need to implement the scenarios that ASSIST is producing. Remember, these need only be illustrative, they do not need to be accurate.
I suggest we create a function which takes in a matrix (think raster) of land cover, and returns the same after applying the transformations the the scenario. We can then add parameters to this function to allow us to control the extent of conversions and perhaps the type of scenario run.
John has provided these transitions as a starting point
RULES FOR MINECRAFT VERSIONS OF ASSET SCENARIOS
In all cases, prioritise conversion close to existing areas of the target habitat
I’ve added woodland to the last scenario as this’ll be visually obvious in your Minecraft world.
In my scenarios, conversion to agricultural use preferentially takes place on the land most suitable for it (fertile, workable soils, flat ground etc.) and vice versa. I assume this is a step too far for your examples, but let me know if you want to try it and I can send you the data.
Rules for 30% agricultural expansion, intensive cropping
Agricultural land must expand by a total of 30%.
At least 20% expansion of arable
At least 10% expansion of improved grassland
Relative priorities (in descending order)
Improved grassland -> arable
Semi-natural grassland -> improved grassland
Semi-natural grassland -> arable
Heathland -> improved grassland
Crops (i.e. arable land) should become (at the expense of all other crops) at least:
55% winter wheat,
30% oilseed rape
Rules for 30% semi-natural habitat expansion, diverse cropping
Grassland and semi-natural habitats must expand by a total of 30%.
At least 20% expansion of semi-natural grassland
At least 10% expansion of improved grassland
At least 5% expansion of broadleaf woodland
Relative priorities (in descending order)
Improved grassland -> Semi-natural grassland
Arable -> Improved grassland
Arable -> Semi-natural grassland
Improved grassland -> broadleaf woodland
Arable -> broadleaf woodland
Crops (i.e. arable land) should be at least:
20% winter wheat
10% oilseed rape
20% barley
5% field bean
5% potato
5% sugar beet
5% maize
We can do this using the clump function in raster
r <- raster(ncols=12, nrows=12)
set.seed(0)
r[] <- round(runif(ncell(r))*0.7 )
rc <- clump(r)
freq(rc)
plot(rc)
Theses are pretty big (~250MB), I'll see if I can use github IO to do this
These worlds would be downscaled from the 25m data, though the vector data could be used as they are. Might look crap but worth exploring.
Code to use is something like this:
https://cran.r-project.org/web/packages/smoothr/vignettes/smoothr.html
Currently both minecraft maps and the overviewer maps are not orientated to north. This might be related to our need to flip the x axis in R. Maybe we have x and y back-to-front in python?
Currently these are not displaying.
When I speed up time to make forest appear faster the shear number of saplings results in a forest of insane density. We should reduce their spawn rate.
Create a list of all the credits we need to give. This should include every data set that we have used. Our funders and people that have helped. Lets put this in the description file of the package so it is version controlled and we always have it to hand.
Please edit this post with additions to the list
Data providers:
Commission National Forest Inventory (NFI) Map - National Forest Inventory Woodland GB 2015
Natural England - Natural England Priority Habitats Inventory version 2.1
CEH - CEH Land Cover ® Plus 2017
CEH - CEH Land Cover Map 2015
European Environment Agency (EEA) - European Digital Elevation Model (EU-DEM), version 1.1
European Environment Agency (EEA) in the frame of the EU Copernicus programme. - EU-Hydro River Network (Thames & Tweed)
OpenStreetMap - roads and railways as of 2018-02-21
People:
Tom August
Gary Powney
Reto Schmuki
John Redhead
Funders:
RCUK via the SEE-PER project
NERC and BBSRC via the ASSIST project
NERC via the SPEED project (development composition of base layers)
I think we can do that using this:
https://www.planetminecraft.com/mod/anvil-to-leveldb-converter-java-to-pocket-edition/
Hopefully it has command line functionality and we can wrap it in the same way that we have wrapped overview
Once we have got the building finalised want to create a series of short (<3min) videos that we can share on social media. Here is a list of ideas (please edit/add @GPowney @RetoSchmucki )
About coding:
About science:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.