PGO-mapscan-opt
PGO-mapscan-opt copied to clipboard
I think level 10 cells are a bit too large...
As i told you over at reddit i decided to use the awesome s2 cells instead of circle planning... But i think that the level of the cells (currently lvl10) may be a bit too large of an area...
This leads to wasted time scanning unwanted areas that nearly no one will ever need... this time could be spent mapping spawns of more useful areas elsewhere... I will include 2 pictures so you can easily see exactly what i mean!
So i was wondering if a cell level of 12 or 13 (approximately since i couldn't find exactly the area per cell level) is more suitable for this. Also, if there was an option in the config file, would it make it difficult (or even impossible) to merge spawns from people that used cells of different levels?
Also i want to say a big thank you for all the awesome stuff you have created and everything you teach us through this!
I think level 13 cells are more appropriate.
This is a level 10 coverage:
And this is a level 13 coverage:
I used https://github.com/blackmad/s2map to compute the S2 coverage. It will work for an arbitrary polygon.
Sure you can use level 12 or 13 cells and you can merge it just as easily without any overlap, which is the point of using s2 cells in the first place. You can change the "lvl_big = 10" line in res/maplib.py to achieve this right now.
But.... And here's the but. For level 10 plans, you can easily split them into many smaller subplans. But you can't join many level 13 plans to one in an easy way (talking about the plans here, not the areas). The level 10 cell boundary ensures no softbans due to teleporting around, if you fuse just the planned level 13 cells within each level 10 cell into one plan, you'll have a fluctuating area up to the amount for the whole level 10 cell, which means you could have scanned all of it in the first place. Also it's a difference whether you set the lvl 13 cells yourself based on where you think it's useful or whether you just scan the whole cell. Level 10 cells split into two subplans can be scanned with ~80 accounts, which is a good number leaving room for something like another 70 or so before getting softbans due to too many accounts. So level 10 is the perfect level, if you want to scan things like countries or huge cities or for a general global database.
I'll add the option for a joint cell format tomorrow, and the option to save all cells in the spawnview.py map in that joint format and also to change the cell level. For now I'll sleep :) By the way, you can pull frames in spawnview.py and thus mark huge areas, if you start at a marker. (Useful for the smaller level 13 cells.)
You don't need to join the level 13 cells. You can put the appropriate number of workers in each of a few id groups then subdivide the work between groups. This is how I built my map using the old layered hex spirals. I created a list of jobs and dispatched them to separate groups of accounts (by rewriting the json file and relaunching the client).
I see, yeah splitting the workers into smaller groups is indeed a very good way to do that, I haven't thought of that :)
Maybe a little OT But how do you use the plans? I did not find it anywhere in the instruction/readme
Check the wiki
read the wiki section of this git... it should clear things for you =)
@seikur0 I created a (really dirty) tool to tile irregular areas in hexagons. Check my fork under tiling-raw-tool branch. There is a function in there to make the layered spirals also but it isn't implemented by the interface. Creating a closed region (control+click to close) will automatically generate a JSON file with the list of scan locations.
Are you using the grid tiles from my maplib?
They are just tiled 70m hexagons. The file has no dependencies except the Google maps API.
Okay, can you change it to use my maplib? res/maplib.py Because with a spiral you have to worry about gaps between hex tiles and the grid realized in maplib.py is one encompassing the whole world without any gaps at all and the optimum number of hexes.
I suppose the JavaScript could generate the same grid and round reach location to the nearest grid location. It looks like you reduced your step side by 0.1% to avoid gaps due to rounding. The coverage grid for arbitrary polygon here uses rectilinear generation (not spiral) with an origin at the minimum lat/minimum lng of the polygon. If I use the same step size, it will be just as safe, but won't necessarily align to the same grid.
I see, well if it's like that I'm fine with it, Yeah the safety of 0.1% and then also the rectifying earth radius, that Niantic uses, 6367000 m.
nice work jedi! i have one question tho, when working with hexagons will it be easy to merge the resulted .json learning files with other peoples scans just like s2 cells?
I am not sure what changes @seikur0 has made to the learning files. The old files used to just contain a list of spawn point locations, gyms and Poké Stops. As noted above I need to account for the eccentricity of the earth (it isn't a perfect sphere) and include a little cell overlap to ensure there are no gaps. The list of locations can be pasted into a RAW mode planning file.
This is not an S2 decomposition and it is not aligned to seikur0's hex grid of the globe. Therefore, the result will not seamlessly align to anything else. So it is not very useful if you want to subdivide a region into smaller regions with 100% coverage.
This is useful for mapping one contiguous region (ie. If you just want to map your own town) or multiple discrete regions. (I map my town and a few neighboring towns and an island.) Most of the land area where I live is entirely inaccessible (swamp, marsh, forest, etc), so there is little point in covering it.
The eccentricity of the earth doesn't matter at all, since Niantic uses it as perfect sphere with 6367 km diameter, it's just the circumference, if it's called that, which gets smaller towards the poles.
You can still merge these files. Now with the changes to spawn points old files just became worthless anyway, so that whole global database thing may not be realistic :/
On the topic of spawn points, I rescanned some of my region and it didn't appear to change. I plan on rescanning the whole thing soon anyway (using raw). There are 2 islands, 2 beaches, 3 or 4 towns, and a large city I want to map. I just need to generate another 40-50 accounts.
It's interesting, some regions didn't seem to have changed at all, while others changed a lot.
@darkforcesjedi Just letting you know that I tried out your tiling-raw-tool fork, and ctrl+click didn't work for me on my Mac. I know extremely little about javascript, but just changed 'Control' to 'Shift' on line 23, and that worked fine for me.