Skip to content
Snippets Groups Projects
Commit ee633a70 authored by Knuiman, Bart's avatar Knuiman, Bart
Browse files

Added tree cacher, should have all tree files now. :-)

parent 1970e84e
No related branches found
No related tags found
No related merge requests found
using System.Numerics;
using Wander;
using static System.Net.Mime.MediaTypeNames;
while (true)
......@@ -31,7 +32,6 @@ public class TreeCacher
public int numAttempts;
public int x;
public int y;
public string filepath;
public float dist;
public int dx;
public int dy;
......@@ -39,9 +39,11 @@ public class TreeCacher
public string folder;
public string invalidFolder;
public int numImages;
public int numImagesFinished;
public int numImagesFailed;
public int numImagesInvalid;
public List<string> errorCodes;
public double lat = 52.282842;
......@@ -79,16 +81,25 @@ public class TreeCacher
internal void Run()
{
folder = Environment.CurrentDirectory.Combine( "Trees" );
folder = Environment.CurrentDirectory.Combine( "Trees" ).NormalizePath();
if (!Directory.Exists( folder ))
{
Directory.CreateDirectory( folder );
}
invalidFolder = Environment.CurrentDirectory.Combine( "Trees/Invalid" ).NormalizePath();
if (!Directory.Exists( invalidFolder ))
{
Directory.CreateDirectory( invalidFolder );
}
treeRequests = null;
numImages = 0;
numImagesFailed = 0;
numImagesFinished = 0;
numImagesInvalid = 0;
client = new HttpClient();
activeRequests = new List<TreeImageTile>();
treeRequests = new List<TreeImageTile>();
errorCodes = new List<string>();
CreateRequests();
while ( true )
{
......@@ -113,7 +124,6 @@ public class TreeCacher
var image = new TreeImageTile();
image.x = cx -numTilesWide/2 + x;
image.y = cy +numTilesTall/2 - y;
image.filepath = folder.Combine( $"tree_{zoom}_{image.x}_{image.y}.png" ).NormalizePath();
treeRequests.Add( image );
}
}
......@@ -130,20 +140,12 @@ public class TreeCacher
{
return MathF.Sign( b.dist-a.dist );
} );
int count = Math.Min(numSimultanousDownloads, treeRequests.Count);
for (int i = 0; i<count;i++)
{
activeRequests.Add( treeRequests[treeRequests.Count-1] );
treeRequests.RemoveAt( treeRequests.Count-1 );
}
}
void DownloadAndStoreImages()
{
if (activeRequests == null || activeRequests.Count==0) // Happens when switching to Debug/Release unity while running.
if (activeRequests == null) // Happens when switching to Debug/Release unity while running.
{
return;
}
......@@ -166,14 +168,24 @@ public class TreeCacher
{
var data = web.Result.Content.ReadAsByteArrayAsync();
await data;
var filename = $"tree_{tt.zoom}_{tree.x}_{tree.y}.png";
if (data.Result.Length>2300) // otherwise so little pixel info, is empty or no tree found
{
await File.WriteAllBytesAsync( tree.filepath, data.Result );
filename = folder.Combine( filename ).NormalizePath();
await File.WriteAllBytesAsync( filename, data.Result );
tt.numImagesFinished++;
Console.Clear();
Console.WriteLine( $"numFinished: {tt.numImagesFinished}" );
Console.WriteLine( $"numFaailed: {tt.numImagesFailed}" );
}
else
{
filename = invalidFolder.Combine( filename ).NormalizePath();
await File.WriteAllBytesAsync( filename, data.Result );
tt.numImagesInvalid++;
}
Console.Clear();
Console.WriteLine( $"numFinished: {tt.numImagesFinished}" );
Console.WriteLine( $"numInvalid: {tt.numImagesInvalid}" );
Console.WriteLine( $"numDLFailed: {tt.numImagesFailed}" );
} );
remove = true;
}
......@@ -196,20 +208,24 @@ public class TreeCacher
activeRequests.RemoveAt( i );
i--;
}
}
if (activeRequests.Count < numSimultanousDownloads )
if (activeRequests.Count < numSimultanousDownloads)
{
while (treeRequests.Count != 0)
{
while (treeRequests.Count != 0)
var potentialNew = treeRequests[treeRequests.Count-1];
treeRequests.RemoveAt( treeRequests.Count-1 );
var filename = $"tree_{zoom}_{potentialNew.x}_{potentialNew.y}.png";
var valid = folder.Combine( filename ).NormalizePath();
var invalid = invalidFolder.Combine( filename ).NormalizePath();
if (!File.Exists( valid ) && !File.Exists( invalid ))
{
var potentialNew = treeRequests[treeRequests.Count-1];
treeRequests.RemoveAt( treeRequests.Count-1 );
if (!File.Exists( potentialNew.filepath ))
{
activeRequests.Add( potentialNew );
break;
}
activeRequests.Add( potentialNew );
break;
}
}
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment