diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000000..2d812561302 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,42 @@ +name: build + +on: [push, pull_request] + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [ubuntu-latest] + + env: + OS: ${{ matrix.os }} + PYTHON: '3.8' + + steps: + + - uses: actions/checkout@v1 + + - name: Set up Python + uses: actions/setup-python@master + with: + python-version: 3.8.5 + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + sudo apt-add-repository ppa:ubuntugis/ubuntugis-unstable + sudo apt-get update + sudo apt-get install libgdal-dev + python setup.py install + - name: Test and generate coverage report on Linux + run: | + pip install pytest + pip install pytest-cov + pytest --cov=./ --cov-report=xml + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v1 + with: + file: ./coverage.xml + fail_ci_if_error: true \ No newline at end of file diff --git a/NATURF/.gitkeep b/NATURF/.gitkeep old mode 100644 new mode 100755 diff --git a/NATURF/.vscode/settings.json b/NATURF/.vscode/settings.json new file mode 100644 index 00000000000..3b664107303 --- /dev/null +++ b/NATURF/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "git.ignoreLimitWarning": true +} \ No newline at end of file diff --git a/NATURF/1_no_raster_temp_chicago_UTM.py b/NATURF/1_no_raster_temp_chicago_UTM.py deleted file mode 100644 index e7577068dc0..00000000000 --- a/NATURF/1_no_raster_temp_chicago_UTM.py +++ /dev/null @@ -1,788 +0,0 @@ -from sys import exit -from time import time -from math import sqrt -from numpy import array, arange, transpose, set_printoptions, zeros, uint8, uint16, indices, where, empty, float64, \ - column_stack, savetxt -from skimage.draw import polygon -import osr -from PIL import Image -from scipy import ndimage - -try: - from osgeo import gdal, ogr - from osgeo.gdalconst import * -except ImportError: - import gdal - import ogr - from gdalconst import * - -set_printoptions(threshold='nan') -start_time = time() - - -def get_pixels(x1, y1, x2, y2): - - m = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.000000000000000000000000000000001) - yint = float(y1) - (m * float(x1)) - - slope_arr = [] - - if abs(x1-x2) > abs(y1-y2) or abs(x1-x2) == abs(y1-y2): - if x1 > x2: - for si in range(x2, x1+1): - sy = m*si+yint - sy = int(round(sy)) - small = [si, sy] - slope_arr.append(small) - if x1 < x2: - for si in range(x1, x2+1): - sy = m*si+yint - sy = int(round(sy)) - small = [si, sy] - slope_arr.append(small) - - if abs(x1-x2) < abs(y1-y2): - if y1 > y2: - for si in range(y2, y1+1): - sx = (si - yint) / m - sx = int(round(sx)) - small = [sx, si] - slope_arr.append(small) - if y1 < y2: - for si in range(y1, y2+1): - sx = (si - yint) / m - sx = int(round(sx)) - small = [sx, si] - slope_arr.append(small) - - return slope_arr - - -def get_pixels_new(x1, y1, x2, y2): - - m = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.00000000000000000000000000000001) - yint = float(y1) - (m * float(x1)) - - if abs(x1-x2) > abs(y1-y2) or abs(x1-x2) == abs(y1-y2): - if x1 > x2: - arrx = arange(x2, x1+1) - arry = m * arrx + yint - if x1 <= x2: - arrx = arange(x1, x2+1) - arry = m * arrx + yint - - if abs(x1-x2) < abs(y1-y2): - if y1 > y2: - arry = arange(y2, y1+1) - arrx = (arry - yint) / m - if y1 <= y2: - arry = arange(y1, y2+1) - arrx = (arry - yint) / m - - arr1 = array((arrx, arry)) - arr1 = transpose(arr1) - - return arr1 - - -def get_pixels2(arr1, arr2, arr3, x1, y1, x2, y2, w): - mx = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.0000000000000000000000000000001) - yint = float(y1) - (mx * float(x1)) - - if abs(x1 - x2) > abs(y1 - y2) or abs(x1 - x2) == abs(y1 - y2): - if x1 > x2: - for i in range(x2, x1 + 1): - yp = int(round(mx * i + yint)) - - bx = i - start_x_p - by = yp - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 0 - arr2[by][bx] = 0 - arr3[by][bx] = 255 - if w == 'r': - arr1[by][bx] = 255 - arr2[by][bx] = 0 - arr3[by][bx] = 0 - - if x1 < x2: - for i in range(x1, x2 + 1): - yp = int(round(mx * i + yint)) - - bx = i - start_x_p - by = yp - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 0 - arr2[by][bx] = 0 - arr3[by][bx] = 255 - if w == 'r': - arr1[by][bx] = 255 - arr2[by][bx] = 0 - arr3[by][bx] = 0 - - if abs(x1 - x2) < abs(y1 - y2): - if y1 > y2: - for i in range(y2, y1 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - start_x_p - by = i - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 0 - arr2[by][bx] = 0 - arr3[by][bx] = 255 - if w == 'r': - arr1[by][bx] = 255 - arr2[by][bx] = 0 - arr3[by][bx] = 0 - - if y1 < y2: - for i in range(y1, y2 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - start_x_p - by = i - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 0 - arr2[by][bx] = 0 - arr3[by][bx] = 255 - if w == 'r': - arr1[by][bx] = 255 - arr2[by][bx] = 0 - arr3[by][bx] = 0 - - -def get_pixels2_b(arr1, x1, y1, x2, y2, w): - mx = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.0000000000000000000000000000001) - yint = float(y1) - (mx * float(x1)) - - if abs(x1 - x2) > abs(y1 - y2) or abs(x1 - x2) == abs(y1 - y2): - if x1 > x2: - for i in range(x2, x1 + 1): - yp = int(round(mx * i + yint)) - - bx = i - start_x_p - by = yp - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 1 - if w == 'r': - arr1[by][bx] = 2 - if x1 < x2: - for i in range(x1, x2 + 1): - yp = int(round(mx * i + yint)) - - bx = i - start_x_p - by = yp - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 1 - if w == 'r': - arr1[by][bx] = 2 - - if abs(x1 - x2) < abs(y1 - y2): - if y1 > y2: - for i in range(y2, y1 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - start_x_p - by = i - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 1 - if w == 'r': - arr1[by][bx] = 2 - if y1 < y2: - for i in range(y1, y2 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - start_x_p - by = i - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 1 - if w == 'r': - arr1[by][bx] = 2 - - -def get_pixels2_c(x1, y1, x2, y2): - mx = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.0000000000000000000000000000001) - yint = float(y1) - (mx * float(x1)) - px_func = [] - py_func = [] - - if abs(x1 - x2) > abs(y1 - y2) or abs(x1 - x2) == abs(y1 - y2): - if x1 > x2: - for i in range(x2, x1 + 1): - yp = int(round(mx * i + yint)) - - bx = i - by = yp - - if 0 <= bx < IMAGE_SIZE_Y and 0 <= by < IMAGE_SIZE_X: - px_func.append(i) - py_func.append(yp) - if x1 < x2: - for i in range(x1, x2 + 1): - yp = int(round(mx * i + yint)) - - bx = i - by = yp - - if 0 <= bx < IMAGE_SIZE_Y and 0 <= by < IMAGE_SIZE_X: - px_func.append(i) - py_func.append(yp) - - if abs(x1 - x2) < abs(y1 - y2): - if y1 > y2: - for i in range(y2, y1 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - by = i - - if 0 <= bx < IMAGE_SIZE_Y and 0 <= by < IMAGE_SIZE_X: - px_func.append(xp) - py_func.append(i) - if y1 < y2: - for i in range(y1, y2 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - by = i - - if 0 <= bx < IMAGE_SIZE_Y and 0 <= by < IMAGE_SIZE_X: - px_func.append(xp) - py_func.append(i) - - return px_func, py_func - - -def bbox(x1, y1, x2, y2): - minx = min([x1, x2]) - miny = min([y1, y2]) - maxx = max([x1, x2]) - maxy = max([y1, y2]) - - minx2 = minx - start_x_p - miny2 = miny - start_y_p - maxx2 = maxx - start_x_p - maxy2 = maxy - start_y_p - - # dataa = data[miny-wb:maxy+wb+1, minx-wb:maxx+wb+1] - - # print minx2, miny2, maxx2, maxy2 - - return minx, miny, maxx, maxy, minx2, miny2, maxx2, maxy2 - - -def bbox2(x1, y1, x2, y2): - minx = min([x1, x2]) - # miny = min([y1, y2]) - maxx = max([x1, x2]) - # maxy = max([y1, y2]) - - if minx == x1: - miny = y1 - maxy = y2 - else: - miny = y2 - maxy = y1 - - minx2 = minx - start_x_p - miny2 = miny - start_y_p - maxx2 = maxx - start_x_p - maxy2 = maxy - start_y_p - - # print minx2, miny2, maxx2, maxy2 - - return minx, miny, maxx, maxy, minx2, miny2, maxx2, maxy2 - - -def line_eq(x1, y1, x2, y2): - x1 -= start_x_p - y1 -= start_y_p - x2 -= start_x_p - y2 -= start_y_p - - a1 = float(y1 - y2) - b1 = float(x2 - x1) - c1 = float(x1 * y2) - float(x2 * y1) - - tempa = a1 - tempb = b1 - - if a1 == 0: - tempa = 999999999999 - - if b1 == 0: - tempb = 999999999999 - - if tempa < tempb: - mini = tempa - elif tempb <= tempa: - mini = tempb - else: - mini = 1 - - a1 /= mini - b1 /= mini - c1 /= mini - - return a1, b1, c1 - - -def l2p3(a1, b1, c1, indi, xmin, xmax, ymin, ymax): - - # print indi[0, ymin-wb:ymax+wb+1, xmin-wb:xmax+wb+1].shape, xmin, xmax, ymin, ymax - - ind2a = indi[0, ymin:ymax, xmin:xmax] - ind2b = indi[1, ymin:ymax, xmin:xmax] - - ind2 = [ind2a, ind2b] - - da = a1*ind2[1] + b1*ind2[0] + c1 - db = float(sqrt(a1**2 + b1**2)) + 0.0000000000000000000000000000000000001 - - d = da / db - - return d - - -def midpoint(x1, y1, x2, y2): - # print 'x1 x2:', x1, x2, '\ny1 y2:', y1, y2 - mx = (x1 + x2) / 2 - my = (y1 + y2) / 2 - # print 'mx my:', mx, my - - return mx, my - - -def inter3(x1, y1, x2, y2, lrad1, rrad1): - - dx = x1-x2 - dy = y1-y2 - dist = sqrt(dx*dx + dy*dy) - dx /= (dist + 0.00000000000000000000001) - dy /= (dist + 0.00000000000000000000001); - - if y1 > y2: - x1r = x1 - rrad1*dy - y1r = y1 + rrad1*dx - x1l = x1 + lrad1*dy - y1l = y1 - lrad1*dx - - x2r = x2 - rrad1*dy - y2r = y2 + rrad1*dx - x2l = x2 + lrad1*dy - y2l = y2 - lrad1*dx - else: - x1r = x1 + rrad1*dy - y1r = y1 - rrad1*dx - x1l = x1 - lrad1*dy - y1l = y1 + lrad1*dx - - x2r = x2 + rrad1*dy - y2r = y2 - rrad1*dx - x2l = x2 - lrad1*dy - y2l = y2 + lrad1*dx - - return x1r, y1r, x1l, y1l, x2r, y2r, x2l, y2l - - -def trans(data, bbox_d, xmin, xmax, ymin, ymax, wb): - data[ymin-wb:ymax+wb+1, xmin-wb:xmax+wb+1] = bbox_d - - -def roads_func(ti): - tpt = geom.GetPoint(ti) - - xoff = int((tpt[0] - xOrigin) / pixelWidth) - yoff = int((tpt[1] - yOrigin) / pixelHeight) - - parr.append([xoff, yoff]) - - -def builds_func(bi): - bpt = ring.GetPoint(bi) - - xoff = int((bpt[0] - xOrigin) / pixelWidth) - yoff = int((bpt[1] - yOrigin) / pixelHeight) - - parr.append([xoff, yoff]) - parrx.append([xoff]) - parry.append([yoff]) - - -# get the shapefile driver -driver = ogr.GetDriverByName('ESRI Shapefile') - -# open the data source -datasource = driver.Open(r'chicago_roads_utm.shp', 0) -if datasource is None: - print 'Could not open ' + r'chicago_roads_utm.shp' - exit(1) - -datasource2 = driver.Open(r'ChicagoLoop_Morph3_utm.shp', 0) -if datasource2 is None: - print 'Could not open ' + r'ChicagoLoop_Morph.shp' - exit(1) - -# register all of the GDAL drivers -gdal.AllRegister() - -# img = gdal.Open(r'C:\Users\mbq\Documents\1 ORNL\Work\2621_warped_copy.tif', GA_ReadOnly) -# if img is None: -# print 'Could not open 2621.tif' -# exit(1) - -layer = datasource.GetLayer() - -extent = layer.GetExtent() - -dlon = abs(extent[0] - extent[1]) # wide -dlat = abs(extent[2] - extent[3]) # tall - -xOrigin = extent[0] -yOrigin = extent[3] - -x = extent[1] -y = extent[2] - -PIXEL_SIZE = 0.5 - -IMAGE_SIZE_X = 6300 -IMAGE_SIZE_Y = 3000 - -pixelWidth = PIXEL_SIZE -pixelHeight = -PIXEL_SIZE - -p2500x = PIXEL_SIZE * IMAGE_SIZE_X / 2 -p2500y = PIXEL_SIZE * IMAGE_SIZE_Y / 2 - -dlon_div_2 = dlon / 2 -dlat_div_2 = dlat / 2 - -start_x = 446861 -start_y = 4637537 - -end_x = start_x + p2500x + p2500x -end_y = start_y - p2500y - p2500y - -rows_new = int((end_x - start_x) / pixelWidth) -cols_new = int(round((end_y - start_y) / -pixelHeight)) - -start_x_p = int((start_x - xOrigin) / pixelWidth) -start_y_p = int((start_y - yOrigin) / pixelHeight) - -end_x_p = int((end_x - xOrigin) / pixelWidth) -end_y_p = int((end_y - yOrigin) / pixelHeight) - -# print start_x_p, end_x_p, start_y_p, end_y_p - -rows = int((x - xOrigin) / pixelWidth) -cols = int((y - yOrigin) / pixelHeight) - -layer2 = datasource2.GetLayer() - -driver_out = gdal.GetDriverByName('GTiff') -imgOut = driver_out.Create(r'no_raster_temp_chicago_UTM_new.tif', - IMAGE_SIZE_Y, IMAGE_SIZE_X, 1, 1) - -proj = osr.SpatialReference() -proj.SetWellKnownGeogCS("WGS84") -proj.SetUTM(16) - -bandOut1 = imgOut.GetRasterBand(1) - -data1 = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint8) -data1.fill(255) - -ids = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint16) -ids.fill(255) - -buils = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint16) -buils.fill(255) - -tempxyz = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) - -distarr = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -distarr.fill(0) - -ind = indices(data1.shape) - -ys = 0 -yl = 0 -xs = 0 -xl = 0 - -# radius = 15 - -# loop through the buildings -feature_buil = layer2.GetNextFeature() - -while feature_buil: - geomb = feature_buil.GetGeometryRef() - ring = geomb.GetGeometryRef(0) - numpoints = ring.GetPointCount() - - if numpoints != 0: - nx, ny, nz = ring.GetPoint(0) - - xOffset = int((nx - xOrigin) / pixelWidth) - yOffset = int((ny - yOrigin) / pixelHeight) - - parr = [[xOffset, yOffset]] - parrx = [[xOffset]] - parry = [[yOffset]] - - map(builds_func, xrange(1, ring.GetPointCount())) - - parrx[:] = [x[0] - start_x_p for x in parrx] - parry[:] = [y[0] - start_y_p for y in parry] - - parrx = array(parrx) - parry = array(parry) - rr, cc = polygon(parrx, parry, [IMAGE_SIZE_Y, IMAGE_SIZE_X]) - - buils[cc, rr] = 127 - - feature_buil.Destroy() - feature_buil = layer2.GetNextFeature() - -# loop through the roads -feature_road = layer.GetNextFeature() -while feature_road: - road_type = feature_road.GetFieldAsString('type') - rid = feature_road.GetFieldAsString('osm_id') - - if rid == '236806530': - - if road_type == 'motorway': - radius = 20 - elif road_type == 'trunk': - radius = 18 - elif road_type == 'primary': - radius = 16 - elif road_type == 'secondary': - radius = 14 - elif road_type == 'tertiary': - radius = 12 - elif road_type == 'unclassified': - radius = 10 - elif road_type == 'residential': - radius = 8 - elif road_type == 'service': - radius = 6 - else: - radius = 3 - - thres = 0 - - # print radius - - lradius = radius # - thres - rradius = radius # - thres - - geom = feature_road.GetGeometryRef() - nameg = geom.GetGeometryName() - - if nameg == 'MULTILINESTRING': - - for i in range(geom.GetGeometryCount()): - mgeom = geom.GetGeometryRef(i) - x = mgeom.GetX() - y = mgeom.GetY() - - xOffset = int((x - xOrigin) / pixelWidth) - yOffset = int((y - yOrigin) / pixelHeight) - - parr = [[xOffset, yOffset]] - - for j in range(1, mgeom.GetPointCount()): - tpt = mgeom.GetPoint(j) - - xoff = int((tpt[0] - xOrigin) / pixelWidth) - yoff = int((tpt[1] - yOrigin) / pixelHeight) - - parr.append([xoff, yoff]) - - elif nameg == 'LINESTRING': - - x = geom.GetX() - y = geom.GetY() - - xOffset = int((x - xOrigin) / pixelWidth) - yOffset = int((y - yOrigin) / pixelHeight) - - parr = [[xOffset, yOffset]] - - for j in range(1, geom.GetPointCount()): - tpt = geom.GetPoint(j) - - xoff = int((tpt[0] - xOrigin) / pixelWidth) - yoff = int((tpt[1] - yOrigin) / pixelHeight) - - parr.append([xoff, yoff]) - - for i in range(len(parr)-1): - if (start_x_p <= parr[i][0] < end_x_p) or (start_y_p <= parr[i][1] < end_y_p): # and \ - # (parr[i][0] != parr[i+1][0] and parr[i][1] != parr[i+1][1]): - - x1, y1, x2, y2 = parr[i][0] - start_x_p, parr[i][1] - start_y_p, parr[i+1][0] - start_x_p, parr[i+1][1] - start_y_p - - # print x1, y1, x2, y2 - - xmi, ymi, xma, yma, xmi2, ymi2, xma2, yma2 = bbox(parr[i][0], parr[i][1], parr[i+1][0], parr[i+1][1]) - - a, b, c = line_eq(parr[i][0], parr[i][1], parr[i+1][0], parr[i+1][1]) - - if xmi2 - radius < 0: - xmi2 = 0 - else: - xmi2 -= radius - if ymi2 - radius < 0: - ymi2 = 0 - else: - ymi2 -= radius - - if xmi2 >= IMAGE_SIZE_Y: - xmi2 = IMAGE_SIZE_Y - 1 - if ymi2 >= IMAGE_SIZE_X: - ymi2 = IMAGE_SIZE_X - 1 - - if xma2 + radius + 1 < 0: - xma2 = 0 - if yma2 + radius + 1 < 0: - yma2 = 0 - - if xma2 + radius + 1 >= IMAGE_SIZE_Y: - xma2 = IMAGE_SIZE_Y - 1 - else: - xma2 += radius + 1 - if yma2 + radius + 1 >= IMAGE_SIZE_X: - yma2 = IMAGE_SIZE_X - 1 - else: - yma2 += radius + 1 - - # print xmi2, ymi2, xma2, yma2, radius+1 - - if xmi2 <= xma2 and (((xma2 - xmi2) > (radius+1)) and ((yma2 - ymi2) > (radius+1))): - - if ymi2 > yma2: - tempdgj = yma2 - yma2 = ymi2 - ymi2 = tempdgj - - dist = l2p3(a, b, c, ind, xmi2, xma2, ymi2, yma2) - - # savetxt(r'no_raster_dist.txt', dist, '%lf') - - index = column_stack(where(buils[ymi2:yma2, xmi2:xma2] == 127)) - - # print index, '\n' - - # calculates how far the building is from the road - if len(index) != 0: - dist_r_to_b = dist[index[:, 0], index[:, 1]] - index2 = dist_r_to_b[abs(dist_r_to_b) <= radius] - - indexa = index2[index2 >= 0] # positive - indexb = index2[index2 < 0] # negative - - # print indexa, indexb, '\n' - - if len(indexa) != 0 and len(indexb) != 0: - lradius = abs(indexa.min()) - thres - rradius = abs(indexb.max()) - thres - elif len(indexa) != 0 and len(indexb) == 0: - lradius = abs(indexa.min()) - thres - rradius = radius - (abs(indexa.min()) - thres) + radius - elif len(indexa) == 0 and len(indexb) != 0: - rradius = abs(indexb.max()) - thres - lradius = radius - (abs(indexb.max()) - thres) + radius - else: - lradius = float(radius) - rradius = float(radius) - - index3a = dist_r_to_b[abs(dist_r_to_b) <= lradius] # pos - index3b = dist_r_to_b[abs(dist_r_to_b) <= rradius] # neg - - # print index3a, index3b - - ina = index3a[index3a >= 0] - inb = index3b[index3b < 0] - - # print ina, inb - - if len(ina) != 0: - lradius = abs(ina.min()) - thres - - if len(inb) != 0: - rradius = abs(inb.max()) - thres - - # print lradius, rradius, '\n' - - x1r, y1r, x1l, y1l, x2r, y2r, x2l, y2l = inter3(x1, y1, x2, y2, lradius, rradius) - - xf1, yf1 = midpoint(x1r, y1r, x1l, y1l) - xf2, yf2 = midpoint(x2r, y2r, x2l, y2l) - - rad = sqrt((x1r - xf1)**2 + (y1r - yf1)**2) - - # print rad - - # print xf1, yf1, xf2, yf2 - - if rad >= 1 and ((xf1 >= 0 and yf1 >= 0) and - (xf2 >= 0 and yf2 >= 0) and - (xf1 < IMAGE_SIZE_Y and yf1 < IMAGE_SIZE_X) and - (xf2 < IMAGE_SIZE_Y and yf2 < IMAGE_SIZE_X)): - # print 'here' - - xarr, yarr = get_pixels2_c(int(xf1), int(yf1), int(xf2), int(yf2)) - - tempxyz.fill(255) - tempxyz[yarr, xarr] = 0 - - distarr.resize((yma2-ymi2, xma2-xmi2)) - - distarr = ndimage.distance_transform_edt(tempxyz[ymi2:yma2, xmi2:xma2]) - - # print distarr - - distarr[data1[ymi2:yma2, xmi2:xma2] == 1] = 0 - - data1[ymi2:yma2, xmi2:xma2] = where(distarr > rad, tempxyz[ymi2:yma2, xmi2:xma2], 1) - - xs = xmi2 - ys = ymi2 - xl = xma2 - yl = yma2 - - feature_road.Destroy() - feature_road = layer.GetNextFeature() - -data1 = where(buils != 127, data1, 127) - -bandOut1.WriteArray(data1, 0, 0) - -imgOut.SetGeoTransform((start_x, pixelWidth, 0, start_y, 0, pixelHeight)) -imgOut.SetProjection(proj.ExportToWkt()) - -# close the data source -datasource.Destroy() - -print "Script took", str(time() - start_time), "seconds to run" diff --git a/NATURF/2_height_to_width_3_buildfrac_chicago.py b/NATURF/2_height_to_width_3_buildfrac_chicago.py deleted file mode 100644 index e2f3f7d506c..00000000000 --- a/NATURF/2_height_to_width_3_buildfrac_chicago.py +++ /dev/null @@ -1,1063 +0,0 @@ -from sys import exit -from time import time -from math import sqrt -from numpy import array, arange, transpose, set_printoptions, zeros, uint8, uint16, uint32, indices, where, empty, float64, \ - column_stack, savetxt, save -from skimage.draw import polygon -import osr -from PIL import Image -from scipy import ndimage -import csv -from tempfile import TemporaryFile - -try: - from osgeo import gdal, ogr - from osgeo.gdalconst import * -except ImportError: - import gdal - import ogr - from gdalconst import * - -set_printoptions(threshold='nan') -start_time = time() - - -def get_pixels(x1, y1, x2, y2): - - m = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.000000000000000000000000000000001) - yint = float(y1) - (m * float(x1)) - - slope_arr = [] - - if abs(x1-x2) > abs(y1-y2) or abs(x1-x2) == abs(y1-y2): - if x1 > x2: - for si in range(x2, x1+1): - sy = m*si+yint - sy = int(round(sy)) - small = [si, sy] - slope_arr.append(small) - if x1 < x2: - for si in range(x1, x2+1): - sy = m*si+yint - sy = int(round(sy)) - small = [si, sy] - slope_arr.append(small) - - if abs(x1-x2) < abs(y1-y2): - if y1 > y2: - for si in range(y2, y1+1): - sx = (si - yint) / m - sx = int(round(sx)) - small = [sx, si] - slope_arr.append(small) - if y1 < y2: - for si in range(y1, y2+1): - sx = (si - yint) / m - sx = int(round(sx)) - small = [sx, si] - slope_arr.append(small) - - return slope_arr - - -def get_pixels_new(x1, y1, x2, y2): - - m = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.00000000000000000000000000000001) - yint = float(y1) - (m * float(x1)) - - if abs(x1-x2) > abs(y1-y2) or abs(x1-x2) == abs(y1-y2): - if x1 > x2: - arrx = arange(x2, x1+1) - arry = m * arrx + yint - if x1 <= x2: - arrx = arange(x1, x2+1) - arry = m * arrx + yint - - if abs(x1-x2) < abs(y1-y2): - if y1 > y2: - arry = arange(y2, y1+1) - arrx = (arry - yint) / m - if y1 <= y2: - arry = arange(y1, y2+1) - arrx = (arry - yint) / m - - arr1 = array((arrx, arry)) - arr1 = transpose(arr1) - - return arr1 - - -def get_pixels2(arr1, arr2, arr3, x1, y1, x2, y2, w): - mx = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.0000000000000000000000000000001) - yint = float(y1) - (mx * float(x1)) - - if abs(x1 - x2) > abs(y1 - y2) or abs(x1 - x2) == abs(y1 - y2): - if x1 > x2: - for i in range(x2, x1 + 1): - yp = int(round(mx * i + yint)) - - bx = i - start_x_p - by = yp - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 0 - arr2[by][bx] = 0 - arr3[by][bx] = 255 - if w == 'r': - arr1[by][bx] = 255 - arr2[by][bx] = 0 - arr3[by][bx] = 0 - - if x1 < x2: - for i in range(x1, x2 + 1): - yp = int(round(mx * i + yint)) - - bx = i - start_x_p - by = yp - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 0 - arr2[by][bx] = 0 - arr3[by][bx] = 255 - if w == 'r': - arr1[by][bx] = 255 - arr2[by][bx] = 0 - arr3[by][bx] = 0 - - if abs(x1 - x2) < abs(y1 - y2): - if y1 > y2: - for i in range(y2, y1 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - start_x_p - by = i - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 0 - arr2[by][bx] = 0 - arr3[by][bx] = 255 - if w == 'r': - arr1[by][bx] = 255 - arr2[by][bx] = 0 - arr3[by][bx] = 0 - - if y1 < y2: - for i in range(y1, y2 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - start_x_p - by = i - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 0 - arr2[by][bx] = 0 - arr3[by][bx] = 255 - if w == 'r': - arr1[by][bx] = 255 - arr2[by][bx] = 0 - arr3[by][bx] = 0 - - -def get_pixels2_b(arr1, x1, y1, x2, y2, w): - mx = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.0000000000000000000000000000001) - yint = float(y1) - (mx * float(x1)) - - if abs(x1 - x2) > abs(y1 - y2) or abs(x1 - x2) == abs(y1 - y2): - if x1 > x2: - for i in range(x2, x1 + 1): - yp = int(round(mx * i + yint)) - - bx = i - start_x_p - by = yp - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 1 - if w == 'r': - arr1[by][bx] = 2 - if x1 < x2: - for i in range(x1, x2 + 1): - yp = int(round(mx * i + yint)) - - bx = i - start_x_p - by = yp - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 1 - if w == 'r': - arr1[by][bx] = 2 - - if abs(x1 - x2) < abs(y1 - y2): - if y1 > y2: - for i in range(y2, y1 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - start_x_p - by = i - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 1 - if w == 'r': - arr1[by][bx] = 2 - if y1 < y2: - for i in range(y1, y2 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - start_x_p - by = i - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 1 - if w == 'r': - arr1[by][bx] = 2 - - -def get_pixels2_c(x1, y1, x2, y2): - mx = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.0000000000000000000000000000001) - yint = float(y1) - (mx * float(x1)) - px_func = [] - py_func = [] - - if abs(x1 - x2) > abs(y1 - y2) or abs(x1 - x2) == abs(y1 - y2): - if x1 > x2: - for i in range(x2, x1 + 1): - yp = int(round(mx * i + yint)) - - bx = i - by = yp - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - px_func.append(i) - py_func.append(yp) - if x1 < x2: - for i in range(x1, x2 + 1): - yp = int(round(mx * i + yint)) - - bx = i - by = yp - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - px_func.append(i) - py_func.append(yp) - - if abs(x1 - x2) < abs(y1 - y2): - if y1 > y2: - for i in range(y2, y1 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - by = i - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - px_func.append(xp) - py_func.append(i) - if y1 < y2: - for i in range(y1, y2 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - by = i - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - px_func.append(xp) - py_func.append(i) - - return px_func, py_func - - -def bbox(x1, y1, x2, y2): - minx = min([x1, x2]) - miny = min([y1, y2]) - maxx = max([x1, x2]) - maxy = max([y1, y2]) - - minx2 = minx - start_x_p - miny2 = miny - start_y_p - maxx2 = maxx - start_x_p - maxy2 = maxy - start_y_p - - # dataa = data[miny-wb:maxy+wb+1, minx-wb:maxx+wb+1] - - # print minx2, miny2, maxx2, maxy2 - - return minx, miny, maxx, maxy, minx2, miny2, maxx2, maxy2 - - -def bbox2(x1, y1, x2, y2): - minx = min([x1, x2]) - # miny = min([y1, y2]) - maxx = max([x1, x2]) - # maxy = max([y1, y2]) - - if minx == x1: - miny = y1 - maxy = y2 - else: - miny = y2 - maxy = y1 - - minx2 = minx - start_x_p - miny2 = miny - start_y_p - maxx2 = maxx - start_x_p - maxy2 = maxy - start_y_p - - # print minx2, miny2, maxx2, maxy2 - - return minx, miny, maxx, maxy, minx2, miny2, maxx2, maxy2 - - -def line_eq(x1, y1, x2, y2): - x1 -= start_x_p - y1 -= start_y_p - x2 -= start_x_p - y2 -= start_y_p - - a1 = float(y1 - y2) - b1 = float(x2 - x1) - c1 = float(x1 * y2) - float(x2 * y1) - - tempa = a1 - tempb = b1 - - if a1 == 0: - tempa = 999999999999 - - if b1 == 0: - tempb = 999999999999 - - if tempa < tempb: - mini = tempa - elif tempb <= tempa: - mini = tempb - else: - mini = 1 - - a1 /= mini - b1 /= mini - c1 /= mini - - return a1, b1, c1 - - -def l2p3(a1, b1, c1, indi, xmin, xmax, ymin, ymax): - - # print indi[0, ymin-wb:ymax+wb+1, xmin-wb:xmax+wb+1].shape, xmin, xmax, ymin, ymax - - ind2a = indi[0, ymin:ymax, xmin:xmax] - ind2b = indi[1, ymin:ymax, xmin:xmax] - - ind2 = [ind2a, ind2b] - - da = a1*ind2[1] + b1*ind2[0] + c1 - db = float(sqrt(a1**2 + b1**2)) + 0.0000000000000000000000000000000000001 - - d = da / db - - return d - - -def midpoint(x1, y1, x2, y2): - # print 'x1 x2:', x1, x2, '\ny1 y2:', y1, y2 - mx = (x1 + x2) / 2 - my = (y1 + y2) / 2 - # print 'mx my:', mx, my - - return mx, my - - -def inter3(x1, y1, x2, y2, lrad1, rrad1): - - dx = x1-x2 - dy = y1-y2 - dist = sqrt(dx*dx + dy*dy) - dx /= (dist + 0.00000000000000000000001) - dy /= (dist + 0.00000000000000000000001) - - if y1 > y2: - x1r = x1 - rrad1*dy - y1r = y1 + rrad1*dx - x1l = x1 + lrad1*dy - y1l = y1 - lrad1*dx - - x2r = x2 - rrad1*dy - y2r = y2 + rrad1*dx - x2l = x2 + lrad1*dy - y2l = y2 - lrad1*dx - else: - x1r = x1 + rrad1*dy - y1r = y1 - rrad1*dx - x1l = x1 - lrad1*dy - y1l = y1 + lrad1*dx - - x2r = x2 + rrad1*dy - y2r = y2 - rrad1*dx - x2l = x2 - lrad1*dy - y2l = y2 + lrad1*dx - - return x1r, y1r, x1l, y1l, x2r, y2r, x2l, y2l - - -def inter4p(x1, y1, x2, y2, rad1): - - dx = x1-x2 - dy = y1-y2 - dist = sqrt(dx*dx + dy*dy) - dx /= (dist + 0.00000000000000000000001) - dy /= (dist + 0.00000000000000000000001) - - if y1 > y2: - x1r = x1 - rad1*dy - y1r = y1 + rad1*dx - else: - x1r = x1 + rad1*dy - y1r = y1 - rad1*dx - - return x1r, y1r - - -def inter4n(x1, y1, x2, y2, rad1): - - dx = x1-x2 - dy = y1-y2 - dist = sqrt(dx*dx + dy*dy) - dx /= (dist + 0.00000000000000000000001) - dy /= (dist + 0.00000000000000000000001) - - if y1 > y2: - x1l = x1 + rad1*dy - y1l = y1 - rad1*dx - else: - x1l = x1 - rad1*dy - y1l = y1 + rad1*dx - - return x1l, y1l - - -def trans(data, bbox_d, xmin, xmax, ymin, ymax, wb): - data[ymin-wb:ymax+wb+1, xmin-wb:xmax+wb+1] = bbox_d - - -def roads_func(ti): - tpt = geom.GetPoint(ti) - - xoff = int((tpt[0] - xOrigin) / pixelWidth) - yoff = int((tpt[1] - yOrigin) / pixelHeight) - - parr.append([xoff, yoff]) - - -# get the shapefile driver -driver = ogr.GetDriverByName('ESRI Shapefile') - -# open the data source -datasource = driver.Open(r'chicago_roads_utm.shp', 0) -if datasource is None: - print 'Could not open roads.shp' - exit(1) - -datasource2 = driver.Open(r'ChicagoLoop_Morph3_utm.shp', 0) -if datasource2 is None: - print 'Could not open buildings.shp' - exit(1) - -# register all of the GDAL drivers -gdal.AllRegister() - -# img = gdal.Open(r'C:\Users\mbq\Documents\1 ORNL\Work\2621_warped_copy.tif', GA_ReadOnly) -# if img is None: -# print 'Could not open 2621.tif' -# exit(1) - -layer = datasource.GetLayer() - -extent = layer.GetExtent() - -dlon = abs(extent[0] - extent[1]) # wide -dlat = abs(extent[2] - extent[3]) # tall - -xOrigin = extent[0] -yOrigin = extent[3] - -x = extent[1] -y = extent[2] - -PIXEL_SIZE = 0.5 - -IMAGE_SIZE_X = 6300 -IMAGE_SIZE_Y = 3000 - -pixelWidth = PIXEL_SIZE -pixelHeight = -PIXEL_SIZE - -p2500x = PIXEL_SIZE * IMAGE_SIZE_X / 2 -p2500y = PIXEL_SIZE * IMAGE_SIZE_Y / 2 - -dlon_div_2 = dlon / 2 -dlat_div_2 = dlat / 2 - -start_x = 446861 -start_y = 4637537 - -end_x = start_x + p2500x + p2500x -end_y = start_y - p2500y - p2500y - -rows_new = int((end_x - start_x) / pixelWidth) -cols_new = int(round((end_y - start_y) / -pixelHeight)) - -start_x_p = int((start_x - xOrigin) / pixelWidth) -start_y_p = int((start_y - yOrigin) / pixelHeight) - -end_x_p = int((end_x - xOrigin) / pixelWidth) -end_y_p = int((end_y - yOrigin) / pixelHeight) - -# print start_x_p, end_x_p, start_y_p, end_y_p - -rows = int((x - xOrigin) / pixelWidth) -cols = int((y - yOrigin) / pixelHeight) - -layer2 = datasource2.GetLayer() - -driver_out = gdal.GetDriverByName('GTiff') -imgOut = driver_out.Create(r'height_to_width_3_buildfrac_chicago_UTM.tif', - IMAGE_SIZE_Y, IMAGE_SIZE_X, 1, gdal.GDT_Int32) - -proj = osr.SpatialReference() -proj.SetWellKnownGeogCS("WGS84") -proj.SetUTM(16) - -bandOut1 = imgOut.GetRasterBand(1) - -data1 = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint8) -data1.fill(255) - -ids = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint32) -ids.fill(0) - -buils = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint16) -buils.fill(255) - -tempxyz = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) - -distarr = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -distarr.fill(0) - -ind = indices(data1.shape) - -names = [] -heights = [] -widths = [] -ratios = [] - -cnt = 1 - -# radius = 15 - -# loop through the buildings -feature_buil = layer2.GetNextFeature() - -while feature_buil: - bid = feature_buil.GetFieldAsString('BLDGID') - - geomb = feature_buil.GetGeometryRef() - ring = geomb.GetGeometryRef(0) - numpoints = ring.GetPointCount() - - if numpoints != 0: - nx, ny, nz = ring.GetPoint(0) - - xOffset = int((nx - xOrigin) / pixelWidth) - yOffset = int((ny - yOrigin) / pixelHeight) - - parr = [[xOffset, yOffset]] - parrx = [[xOffset]] - parry = [[yOffset]] - - for bi in xrange(1, ring.GetPointCount()): - bpt = ring.GetPoint(bi) - - xoff = int((bpt[0] - xOrigin) / pixelWidth) - yoff = int((bpt[1] - yOrigin) / pixelHeight) - - parr.append([xoff, yoff]) - parrx.append([xoff]) - parry.append([yoff]) - - parrx[:] = [x[0] - start_x_p for x in parrx] - parry[:] = [y[0] - start_y_p for y in parry] - - parrx = array(parrx) - parry = array(parry) - rr, cc = polygon(parrx, parry, [IMAGE_SIZE_Y, IMAGE_SIZE_X]) - - buils[cc, rr] = 127 - - bid = float(bid) - bid = int(bid) - - ids[cc, rr] = where(ids[cc, rr] != 0, ids[cc, rr], cnt) - - # print cnt - - cnt += 1 - feature_buil.Destroy() - feature_buil = layer2.GetNextFeature() - -'''layer2.ResetReading() -feature_buil = layer2.GetNextFeature() - -while feature_buil: - name = feature_buil.GetFieldAsString('BLDG') - ht = feature_buil.GetFieldAsString('avg_ht_m') - - if ht != '': - # print name, '=', float(ht) - - # if name == '4500N': # or name == '4500S': - cntr2 = 0 - summ2 = 0 - aveg2 = 0 - aveg1 = 0 - - geomb = feature_buil.GetGeometryRef() - ring = geomb.GetGeometryRef(0) - numpoints = ring.GetPointCount() - - if numpoints != 0: - cntr1 = 0 - summ1 = 0 - - nx, ny, nz = ring.GetPoint(0) - - # print nx, ny - - xOffset = int((nx - xOrigin) / pixelWidth) - yOffset = int((ny - yOrigin) / pixelHeight) - - parr = [[xOffset, yOffset]] - parrx = [[xOffset]] - parry = [[yOffset]] - - parrxc = [[nx]] - parryc = [[ny]] - - for bi in xrange(1, ring.GetPointCount()): - bpt = ring.GetPoint(bi) - - # print bpt[0], bpt[1] - - xoff = int((bpt[0] - xOrigin) / pixelWidth) - yoff = int((bpt[1] - yOrigin) / pixelHeight) - - parr.append([xoff, yoff]) - parrx.append([xoff]) - parry.append([yoff]) - - parrxc.append([bpt[0]]) - parryc.append([bpt[1]]) - - parrx[:] = [x[0] - start_x_p for x in parrx] - parry[:] = [y[0] - start_y_p for y in parry] - - parrx = array(parrx) - parry = array(parry) - - parrxc = array(parrxc) - parryc = array(parryc) - - for na in xrange(0, len(parrx)-1): - p1x = parrx[na] - p1y = parry[na] - - p2x = parrx[na+1] - p2y = parry[na+1] - - dist = sqrt((p2x - p1x)**2 + (p2y - p1y)**2) - - # print dist, distc - - f = int(dist) / 20 - - xarr, yarr = get_pixels2_c(int(p1x), int(p1y), int(p2x), int(p2y)) - - # print xarr, yarr - - if ((len(xarr)/20)-1) > 0: - - for nb in xrange(0, (len(xarr)/20)-1): - # print xarr[(nb*20)+1], yarr[(nb*20)+1] - - tempa = 0 - x1 = xarr[(nb*20)+1] - y1 = yarr[(nb*20)+1] - - x2 = xarr[((nb+1)*20)+1] - y2 = yarr[((nb+1)*20)+1] - - for tg in xrange(1, 200): - perp1x, perp1y = inter4p(x1, y1, x2, y2, tg) - - if perp1x < 0: - perp1x = 0 - if perp1y < 0: - perp1y = 0 - - if perp1x >= IMAGE_SIZE: - perp1x = IMAGE_SIZE - 1 - if perp1y >= IMAGE_SIZE: - perp1y = IMAGE_SIZE - 1 - - if buils[perp1y, perp1x] == 127: - tempa = tg - if tempa > 4: - # print 'p' - break - else: - tempa = tg - - if tempa == 5: - for tg in xrange(1, 200): - perp1x, perp1y = inter4n(p1x, p1y, p2x, p2y, tg) - - if perp1x < 0: - perp1x = 0 - if perp1y < 0: - perp1y = 0 - - if perp1x >= IMAGE_SIZE: - perp1x = IMAGE_SIZE - 1 - if perp1y >= IMAGE_SIZE: - perp1y = IMAGE_SIZE - 1 - - if buils[perp1y, perp1x] == 127: - tempa = tg - if tempa > 4: - # print 'n' - break - else: - tempa = tg - - # print tempa - - if tempa != 5 and tempa != 199: - cntr1 += 1 - summ1 += tempa - # print tempa - - if cntr1 != 0: - aveg1 = summ1 / cntr1 - # print aveg1 - else: - aveg1 = 0 - elif len(xarr) != 0: - tempa = 0 - x1 = xarr[1] - y1 = yarr[1] - - x2 = xarr[1] - y2 = yarr[1] - - for tg in xrange(1, 200): - perp1x, perp1y = inter4p(x1, y1, x2, y2, tg) - - if perp1x < 0: - perp1x = 0 - if perp1y < 0: - perp1y = 0 - - if perp1x >= IMAGE_SIZE: - perp1x = IMAGE_SIZE - 1 - if perp1y >= IMAGE_SIZE: - perp1y = IMAGE_SIZE - 1 - - if buils[perp1y, perp1x] == 127: - tempa = tg - if tempa > 4: - # print 'p' - break - else: - tempa = tg - - if tempa == 5: - for tg in xrange(1, 200): - perp1x, perp1y = inter4n(p1x, p1y, p2x, p2y, tg) - - if perp1x < 0: - perp1x = 0 - if perp1y < 0: - perp1y = 0 - - if perp1x >= IMAGE_SIZE: - perp1x = IMAGE_SIZE - 1 - if perp1y >= IMAGE_SIZE: - perp1y = IMAGE_SIZE - 1 - - if buils[perp1y, perp1x] == 127: - tempa = tg - if tempa > 4: - # print 'n' - break - else: - tempa = tg - - # print tempa - - if tempa != 5 and tempa != 199: - cntr1 += 1 - summ1 += tempa - # print tempa - - if cntr1 != 0: - aveg1 = summ1 / cntr1 - # print aveg1 - else: - aveg1 = 0 - - cntr2 += 1 - summ2 += aveg1 - - if cntr2 != 0 and summ2 != 0: - aveg2 = summ2 / cntr2 - # print name, '=', aveg2*PIXEL_SIZE*100000 # , '\n' - - if aveg2*PIXEL_SIZE*100000 != 0: - names.append(name) - heights.append(float(ht)) - widths.append(aveg2*PIXEL_SIZE*100000) - - feature_buil.Destroy() - feature_buil = layer2.GetNextFeature()''' - -# ratios.append(['Name', 'Height (meters)', 'Width (meters)', 'Ratio (H/W)']) -# -# for i in xrange(0, len(names)): -# n1 = names[i] -# h1 = heights[i] -# w1 = widths[i] -# -# ratio = h1 / w1 -# -# ratios.append([n1, h1, w1, ratio]) -# -# c = open('ratios1.csv', 'wb') -# wr = csv.writer(c) -# wr.writerows(ratios) -# -# c.close() - -# c = open('ids.csv', 'wb') -# wr = csv.writer(c) -# wr.writerows(ids) -# -# c.close() - -# loop through the roads -'''feature_road = layer.GetNextFeature() -while feature_road: - lanes = feature_road.GetFieldAsString('LANES') - name = feature_road.GetFieldAsString('NAME') - shoulder = feature_road.GetFieldAsString('SHOULDER') - oid = feature_road.GetFieldAsString('OBJECTID') - - # if "PARKING" not in name: - - # if name == 'ORNL VISITORS CENTER DR': - - # if oid == '551': - - if shoulder == 'N': - sho = 0 - else: - sho = 1 - - radius = 5 * int(lanes) # + 5/2 * sho - thres = 0 - - # print radius - - lradius = radius # - thres - rradius = radius # - thres - - geom = feature_road.GetGeometryRef() - nameg = geom.GetGeometryName() - - if nameg == 'MULTILINESTRING': - - for i in range(geom.GetGeometryCount()): - mgeom = geom.GetGeometryRef(i) - x = mgeom.GetX() - y = mgeom.GetY() - - xOffset = int((x - xOrigin) / pixelWidth) - yOffset = int((y - yOrigin) / pixelHeight) - - parr = [[xOffset, yOffset]] - - for j in range(1, mgeom.GetPointCount()): - tpt = mgeom.GetPoint(j) - - xoff = int((tpt[0] - xOrigin) / pixelWidth) - yoff = int((tpt[1] - yOrigin) / pixelHeight) - - parr.append([xoff, yoff]) - - elif nameg == 'LINESTRING': - - x = geom.GetX() - y = geom.GetY() - - xOffset = int((x - xOrigin) / pixelWidth) - yOffset = int((y - yOrigin) / pixelHeight) - - parr = [[xOffset, yOffset]] - - for j in range(1, geom.GetPointCount()): - tpt = geom.GetPoint(j) - - xoff = int((tpt[0] - xOrigin) / pixelWidth) - yoff = int((tpt[1] - yOrigin) / pixelHeight) - - parr.append([xoff, yoff]) - - for i in range(len(parr)-1): - if (start_x_p <= parr[i][0] < end_x_p) or (start_y_p <= parr[i][1] < end_y_p): # and \ - # (parr[i][0] != parr[i+1][0] and parr[i][1] != parr[i+1][1]): - - x1, y1, x2, y2 = parr[i][0] - start_x_p, parr[i][1] - start_y_p, parr[i+1][0] - start_x_p, parr[i+1][1] - start_y_p - - # print x1, y1, x2, y2 - - xmi, ymi, xma, yma, xmi2, ymi2, xma2, yma2 = bbox(parr[i][0], parr[i][1], parr[i+1][0], parr[i+1][1]) - - a, b, c = line_eq(parr[i][0], parr[i][1], parr[i+1][0], parr[i+1][1]) - - if xmi2 - radius < 0: - xmi2 = 0 - else: - xmi2 -= radius - if ymi2 - radius < 0: - ymi2 = 0 - else: - ymi2 -= radius - - if xmi2 >= IMAGE_SIZE: - xmi2 = IMAGE_SIZE - 1 - if ymi2 >= IMAGE_SIZE: - ymi2 = IMAGE_SIZE - 1 - - if xma2 + radius + 1 < 0: - xma2 = 0 - if yma2 + radius + 1 < 0: - yma2 = 0 - - if xma2 + radius + 1 >= IMAGE_SIZE: - xma2 = IMAGE_SIZE - 1 - else: - xma2 += radius + 1 - if yma2 + radius + 1 >= IMAGE_SIZE: - yma2 = IMAGE_SIZE - 1 - else: - yma2 += radius + 1 - - # print xmi2, ymi2, xma2, yma2, radius+1 - - if xmi2 <= xma2 and (((xma2 - xmi2) > (radius+1)) and ((yma2 - ymi2) > (radius+1))): - - if ymi2 > yma2: - tempdgj = yma2 - yma2 = ymi2 - ymi2 = tempdgj - - dist = l2p3(a, b, c, ind, xmi2, xma2, ymi2, yma2) - - index = column_stack(where(buils[ymi2:yma2, xmi2:xma2] == 127)) - - # print index, '\n' - - # calculates how far the building is from the road - if len(index) != 0: - dist_r_to_b = dist[index[:, 0], index[:, 1]] - index2 = dist_r_to_b[abs(dist_r_to_b) <= radius] - - indexa = index2[index2 >= 0] - indexb = index2[index2 < 0] - - if len(indexa) != 0 and len(indexb) != 0: - lradius = abs(indexa.min()) - thres - rradius = abs(indexb.max()) - thres - elif len(indexa) != 0 and len(indexb) == 0: - lradius = abs(indexa.min()) - thres - rradius = radius - (abs(indexa.min()) - thres) + radius - elif len(indexa) == 0 and len(indexb) != 0: - rradius = abs(indexb.max()) - thres - lradius = radius - (abs(indexb.max()) - thres) + radius - else: - lradius = float(radius) - rradius = float(radius) - - index3a = dist_r_to_b[abs(dist_r_to_b) <= lradius] # pos - index3b = dist_r_to_b[abs(dist_r_to_b) <= rradius] # neg - - ina = index3a[index3a >= 0] - inb = index3b[index3b < 0] - - if len(ina) != 0: - lradius = abs(ina.min()) - thres - - if len(inb) != 0: - rradius = abs(inb.max()) - thres - - # print lradius, rradius - - x1r, y1r, x1l, y1l, x2r, y2r, x2l, y2l = inter3(x1, y1, x2, y2, lradius, rradius) - - xf1, yf1 = midpoint(x1r, y1r, x1l, y1l) - xf2, yf2 = midpoint(x2r, y2r, x2l, y2l) - - rad = sqrt((x1r - xf1)**2 + (y1r - yf1)**2) - - # print rad - - # print xf1, yf1, xf2, yf2 - - if rad >= 1 and ((xf1 >= 0 and yf1 >= 0) and - (xf2 >= 0 and yf2 >= 0) and - (xf1 < IMAGE_SIZE and yf1 < IMAGE_SIZE) and - (xf2 < IMAGE_SIZE and yf2 < IMAGE_SIZE)): - # print 'here' - - xarr, yarr = get_pixels2_c(int(xf1), int(yf1), int(xf2), int(yf2)) - - tempxyz.fill(255) - tempxyz[yarr, xarr] = 0 - - distarr.resize((yma2-ymi2, xma2-xmi2)) - - distarr = ndimage.distance_transform_edt(tempxyz[ymi2:yma2, xmi2:xma2]) - - # print distarr - - distarr[data1[ymi2:yma2, xmi2:xma2] == 1] = 0 - - data1[ymi2:yma2, xmi2:xma2] = where(distarr > rad, tempxyz[ymi2:yma2, xmi2:xma2], 1) - - feature_road.Destroy() - feature_road = layer.GetNextFeature()''' - -data1 = where(buils != 127, data1, 127) - -bandOut1.WriteArray(ids, 0, 0) - -imgOut.SetGeoTransform((start_x, pixelWidth, 0, start_y, 0, pixelHeight)) -imgOut.SetProjection(proj.ExportToWkt()) - -# close the data source -datasource.Destroy() - -print "Script took", str(time() - start_time), "seconds to run" diff --git a/NATURF/3_frontal_area_density_8_chicago2.py b/NATURF/3_frontal_area_density_8_chicago2.py deleted file mode 100644 index 8433bdc5903..00000000000 --- a/NATURF/3_frontal_area_density_8_chicago2.py +++ /dev/null @@ -1,225 +0,0 @@ -# GRID and BINS (WRF Pre-Processing) - -from frontal_area_density_8_chicago_functions2 import * -from sys import exit -from time import time -import math -from numpy import array, arange, transpose, set_printoptions, zeros, uint8, uint16, indices, where, empty, float64, \ - column_stack, savetxt, save, sum, unique, mean, std, isnan, NaN -from skimage.draw import polygon -import osr -from PIL import Image -from scipy import ndimage -import csv -from tempfile import TemporaryFile -import cv2 -import itertools -import warnings -import pickle - -try: - from osgeo import gdal, ogr - from osgeo.gdalconst import * -except ImportError: - import gdal - import ogr - from gdalconst import * - -set_printoptions(threshold='nan') -start_time = time() - -wi = math.hypot((extent2[0] - extent2[1]), (extent2[2] - extent2[2])) - -he = math.hypot((extent2[0] - extent2[0]), (extent2[3] - extent2[2])) - -car = wi / he - -cents, hts, areas = get_cents_hts() - -cents_ns, cents_ew, avgsa, nbarea, mean_ht_out, std_ht_out, awmh_out = avg_building_dist(hts, areas, cents) - -fad_out, builfrac_out, fai_out, rdh_out, rrl_out, mdh_out, mrl_out, bs2par_out,\ - zo_out, zd_out, car_out = parameters1('south', 0, nbarea, cents_ns, cents_ew, avgsa) - -# print car_out - -# print fad_out, builfrac_out, fai_out - -h2wratios, names = h2w() - -paras_out = [['Name', 'Frontal Area Density', 'Plan Area Density', 'Roof Area Density', - 'Plan Area Fraction', 'Mean Building Height', 'Standard Deviation of Building Heights', - 'Area Weighted Mean of Building Heights', 'Building Surface to Plan Area Ratio', - 'Frontal Area Index', 'Grimmond and Oke (GO) Roughness Length', 'GO Displacement Height', - 'Raupach Roughness Length', 'Raupach Displacement Height', 'MacDonald et al. Roughness Length', - 'MacDonald et al. Displacement Height', 'Height to Width Ratio', 'Complete Aspect Ratio']] - -# #$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$% - -names2, fad_out2, builfrac_out2, paf_out2, fai_out2, rdh_out2, rrl_out2, mdh_out2, mrl_out2, bs2par_out2, zo_out2,\ - zd_out2, mean_ht_out2, std_ht_out2, awmh_out2, h2w_out2, car_out2 = [], [], [], [], [], [], [], [], [], [], [],\ - [], [], [], [], [], [] - -# #$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$% - -with warnings.catch_warnings(): - warnings.simplefilter("ignore", category=RuntimeWarning) - - for i in xrange(len(names)): - - n1 = names[i] - - # print n1 - - if len(fad_out[i]) != 0: - - for qw in xrange(len(builfrac_out[i])): - builfrac_out[i][qw] = mean(builfrac_out[i][qw]) - - bui1 = builfrac_out[i] # 15 - - bs21 = mean(bs2par_out[i]) # 1 - - for qw in xrange(15): - - fad_out[i]['n'][qw] = mean(fad_out[i]['n'][qw]) - fad_out[i]['w'][qw] = mean(fad_out[i]['w'][qw]) - fad_out[i]['s'][qw] = mean(fad_out[i]['s'][qw]) - fad_out[i]['e'][qw] = mean(fad_out[i]['e'][qw]) - - fad1 = fad_out[i] # 15 * 4 - - fai_out[i]['n'] = mean(fai_out[i]['n']) - fai_out[i]['w'] = mean(fai_out[i]['w']) - fai_out[i]['s'] = mean(fai_out[i]['s']) - fai_out[i]['e'] = mean(fai_out[i]['e']) - - rrl_out[i]['n'] = mean(rrl_out[i]['n']) - rrl_out[i]['w'] = mean(rrl_out[i]['w']) - rrl_out[i]['s'] = mean(rrl_out[i]['s']) - rrl_out[i]['e'] = mean(rrl_out[i]['e']) - - rdh_out[i]['n'] = mean(rdh_out[i]['n']) - rdh_out[i]['w'] = mean(rdh_out[i]['w']) - rdh_out[i]['s'] = mean(rdh_out[i]['s']) - rdh_out[i]['e'] = mean(rdh_out[i]['e']) - - mrl_out[i]['n'] = mean(mrl_out[i]['n']) - mrl_out[i]['w'] = mean(mrl_out[i]['w']) - mrl_out[i]['s'] = mean(mrl_out[i]['s']) - mrl_out[i]['e'] = mean(mrl_out[i]['e']) - - fai1 = fai_out[i] # 4 - rrl1 = rrl_out[i] # 4 - rdh1 = rdh_out[i] # 4 - mrl1 = mrl_out[i] # 4 - - paf = mean(builfrac_out[i]) - - mdh1 = mean(mdh_out[i]) # 1? - - mea1 = mean_ht_out[i] # 1 mbh - std1 = std_ht_out[i] # 1 stdev - awm1 = awmh_out[i] # 1 awm - zo1 = mean(zo_out[i]) # 1 grl - zd1 = mean(zd_out[i]) # 1 gdh - h2w1 = h2wratios[i] # 1 h2w - car1 = car_out[i] - - # print n1, fad1, bui1, paf, mea1, std1, awm1, bs21, fai1, zo1, zd1, rrl1, rdh1, mrl1, mdh1, h2w1, car1 - - names2.append(n1) - fad_out2.append(fad1) - builfrac_out2.append(bui1) - paf_out2.append(paf) - fai_out2.append(fai1) - rdh_out2.append(rdh1) - rrl_out2.append(rrl1) - mdh_out2.append(mdh1) - mrl_out2.append(mrl1) - bs2par_out2.append(bs21) - zo_out2.append(zo1) - zd_out2.append(zd1) - mean_ht_out2.append(mea1) - std_ht_out2.append(std1) - awmh_out2.append(awm1) - h2w_out2.append(h2w1) - car_out2.append(car1) - - paras_out.append([n1, fad1, bui1, bui1, paf, mea1, std1, awm1, bs21, fai1, zo1, zd1, rrl1, rdh1, - mrl1, mdh1, h2w1, car1]) - -# c = open('NUDAPT_Parameters_ORNL_out8.csv', 'wb') -# wr = csv.writer(c) -# wr.writerows(paras_out) -# c.close() - -afile = open(r'names2_chicago.pkl', 'wb') -pickle.dump(names2, afile) -afile.close() - -afile = open(r'fad_out2_chicago.pkl', 'wb') -pickle.dump(fad_out2, afile) -afile.close() - -afile = open(r'builfrac_out2_chicago.pkl', 'wb') -pickle.dump(builfrac_out2, afile) -afile.close() - -afile = open(r'paf_out2_chicago.pkl', 'wb') -pickle.dump(paf_out2, afile) -afile.close() - -afile = open(r'fai_out2_chicago.pkl', 'wb') -pickle.dump(fai_out2, afile) -afile.close() - -afile = open(r'rdh_out2_chicago.pkl', 'wb') -pickle.dump(rdh_out2, afile) -afile.close() - -afile = open(r'rrl_out2_chicago.pkl', 'wb') -pickle.dump(rrl_out2, afile) -afile.close() - -afile = open(r'mdh_out2_chicago.pkl', 'wb') -pickle.dump(mdh_out2, afile) -afile.close() - -afile = open(r'mrl_out2_chicago.pkl', 'wb') -pickle.dump(mrl_out2, afile) -afile.close() - -afile = open(r'bs2par_out2_chicago.pkl', 'wb') -pickle.dump(bs2par_out2, afile) -afile.close() - -afile = open(r'zo_out2_chicago.pkl', 'wb') -pickle.dump(zo_out2, afile) -afile.close() - -afile = open(r'zd_out2_chicago.pkl', 'wb') -pickle.dump(zd_out2, afile) -afile.close() - -afile = open(r'mean_ht_out2_chicago.pkl', 'wb') -pickle.dump(mean_ht_out2, afile) -afile.close() - -afile = open(r'std_ht_out2_chicago.pkl', 'wb') -pickle.dump(std_ht_out2, afile) -afile.close() - -afile = open(r'awmh_out2_chicago.pkl', 'wb') -pickle.dump(awmh_out2, afile) -afile.close() - -afile = open(r'h2w_out2_chicago.pkl', 'wb') -pickle.dump(h2w_out2, afile) -afile.close() - -afile = open(r'car_out2_chicago.pkl', 'wb') -pickle.dump(car_out2, afile) -afile.close() - -print "Script took", str(time() - start_time), "seconds to run" diff --git a/NATURF/4_no_raster_temp_chicago_UTM_with_paras2.py b/NATURF/4_no_raster_temp_chicago_UTM_with_paras2.py deleted file mode 100644 index aa098b3976c..00000000000 --- a/NATURF/4_no_raster_temp_chicago_UTM_with_paras2.py +++ /dev/null @@ -1,871 +0,0 @@ -from sys import exit -from time import time -from math import sqrt -from numpy import array, arange, transpose, set_printoptions, zeros, uint8, uint16, indices, where, empty, float64, \ - column_stack, savetxt, isnan, mean, shape, ones, int32, save, float32, double -from skimage.draw import polygon -import osr -from PIL import Image -from scipy import ndimage, misc -import pickle -import sklearn.preprocessing -import struct - -try: - from osgeo import gdal, ogr - from osgeo.gdalconst import * -except ImportError: - import gdal - import ogr - from gdalconst import * - -set_printoptions(threshold='nan') -start_time = time() - - -def get_pixels(x1, y1, x2, y2): - - m = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.000000000000000000000000000000001) - yint = float(y1) - (m * float(x1)) - - slope_arr = [] - - if abs(x1-x2) > abs(y1-y2) or abs(x1-x2) == abs(y1-y2): - if x1 > x2: - for si in range(x2, x1+1): - sy = m*si+yint - sy = int(round(sy)) - small = [si, sy] - slope_arr.append(small) - if x1 < x2: - for si in range(x1, x2+1): - sy = m*si+yint - sy = int(round(sy)) - small = [si, sy] - slope_arr.append(small) - - if abs(x1-x2) < abs(y1-y2): - if y1 > y2: - for si in range(y2, y1+1): - sx = (si - yint) / m - sx = int(round(sx)) - small = [sx, si] - slope_arr.append(small) - if y1 < y2: - for si in range(y1, y2+1): - sx = (si - yint) / m - sx = int(round(sx)) - small = [sx, si] - slope_arr.append(small) - - return slope_arr - - -def get_pixels_new(x1, y1, x2, y2): - - m = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.00000000000000000000000000000001) - yint = float(y1) - (m * float(x1)) - - if abs(x1-x2) > abs(y1-y2) or abs(x1-x2) == abs(y1-y2): - if x1 > x2: - arrx = arange(x2, x1+1) - arry = m * arrx + yint - if x1 <= x2: - arrx = arange(x1, x2+1) - arry = m * arrx + yint - - if abs(x1-x2) < abs(y1-y2): - if y1 > y2: - arry = arange(y2, y1+1) - arrx = (arry - yint) / m - if y1 <= y2: - arry = arange(y1, y2+1) - arrx = (arry - yint) / m - - arr1 = array((arrx, arry)) - arr1 = transpose(arr1) - - return arr1 - - -def get_pixels2(arr1, arr2, arr3, x1, y1, x2, y2, w): - mx = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.0000000000000000000000000000001) - yint = float(y1) - (mx * float(x1)) - - if abs(x1 - x2) > abs(y1 - y2) or abs(x1 - x2) == abs(y1 - y2): - if x1 > x2: - for i in range(x2, x1 + 1): - yp = int(round(mx * i + yint)) - - bx = i - start_x_p - by = yp - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 0 - arr2[by][bx] = 0 - arr3[by][bx] = 255 - if w == 'r': - arr1[by][bx] = 255 - arr2[by][bx] = 0 - arr3[by][bx] = 0 - - if x1 < x2: - for i in range(x1, x2 + 1): - yp = int(round(mx * i + yint)) - - bx = i - start_x_p - by = yp - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 0 - arr2[by][bx] = 0 - arr3[by][bx] = 255 - if w == 'r': - arr1[by][bx] = 255 - arr2[by][bx] = 0 - arr3[by][bx] = 0 - - if abs(x1 - x2) < abs(y1 - y2): - if y1 > y2: - for i in range(y2, y1 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - start_x_p - by = i - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 0 - arr2[by][bx] = 0 - arr3[by][bx] = 255 - if w == 'r': - arr1[by][bx] = 255 - arr2[by][bx] = 0 - arr3[by][bx] = 0 - - if y1 < y2: - for i in range(y1, y2 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - start_x_p - by = i - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 0 - arr2[by][bx] = 0 - arr3[by][bx] = 255 - if w == 'r': - arr1[by][bx] = 255 - arr2[by][bx] = 0 - arr3[by][bx] = 0 - - -def get_pixels2_b(arr1, x1, y1, x2, y2, w): - mx = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.0000000000000000000000000000001) - yint = float(y1) - (mx * float(x1)) - - if abs(x1 - x2) > abs(y1 - y2) or abs(x1 - x2) == abs(y1 - y2): - if x1 > x2: - for i in range(x2, x1 + 1): - yp = int(round(mx * i + yint)) - - bx = i - start_x_p - by = yp - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 1 - if w == 'r': - arr1[by][bx] = 2 - if x1 < x2: - for i in range(x1, x2 + 1): - yp = int(round(mx * i + yint)) - - bx = i - start_x_p - by = yp - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 1 - if w == 'r': - arr1[by][bx] = 2 - - if abs(x1 - x2) < abs(y1 - y2): - if y1 > y2: - for i in range(y2, y1 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - start_x_p - by = i - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 1 - if w == 'r': - arr1[by][bx] = 2 - if y1 < y2: - for i in range(y1, y2 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - start_x_p - by = i - start_y_p - - if 0 <= bx < IMAGE_SIZE and 0 <= by < IMAGE_SIZE: - if w == 'b': - arr1[by][bx] = 1 - if w == 'r': - arr1[by][bx] = 2 - - -def get_pixels2_c(x1, y1, x2, y2): - mx = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.0000000000000000000000000000001) - yint = float(y1) - (mx * float(x1)) - px_func = [] - py_func = [] - - if abs(x1 - x2) > abs(y1 - y2) or abs(x1 - x2) == abs(y1 - y2): - if x1 > x2: - for i in range(x2, x1 + 1): - yp = int(round(mx * i + yint)) - - bx = i - by = yp - - if 0 <= bx < IMAGE_SIZE_Y and 0 <= by < IMAGE_SIZE_X: - px_func.append(i) - py_func.append(yp) - if x1 < x2: - for i in range(x1, x2 + 1): - yp = int(round(mx * i + yint)) - - bx = i - by = yp - - if 0 <= bx < IMAGE_SIZE_Y and 0 <= by < IMAGE_SIZE_X: - px_func.append(i) - py_func.append(yp) - - if abs(x1 - x2) < abs(y1 - y2): - if y1 > y2: - for i in range(y2, y1 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - by = i - - if 0 <= bx < IMAGE_SIZE_Y and 0 <= by < IMAGE_SIZE_X: - px_func.append(xp) - py_func.append(i) - if y1 < y2: - for i in range(y1, y2 + 1): - xp = int(round((i - yint) / mx)) - - bx = xp - by = i - - if 0 <= bx < IMAGE_SIZE_Y and 0 <= by < IMAGE_SIZE_X: - px_func.append(xp) - py_func.append(i) - - return px_func, py_func - - -def bbox(x1, y1, x2, y2): - minx = min([x1, x2]) - miny = min([y1, y2]) - maxx = max([x1, x2]) - maxy = max([y1, y2]) - - minx2 = minx - start_x_p - miny2 = miny - start_y_p - maxx2 = maxx - start_x_p - maxy2 = maxy - start_y_p - - # dataa = data[miny-wb:maxy+wb+1, minx-wb:maxx+wb+1] - - # print minx2, miny2, maxx2, maxy2 - - return minx, miny, maxx, maxy, minx2, miny2, maxx2, maxy2 - - -def bbox2(x1, y1, x2, y2): - minx = min([x1, x2]) - # miny = min([y1, y2]) - maxx = max([x1, x2]) - # maxy = max([y1, y2]) - - if minx == x1: - miny = y1 - maxy = y2 - else: - miny = y2 - maxy = y1 - - minx2 = minx - start_x_p - miny2 = miny - start_y_p - maxx2 = maxx - start_x_p - maxy2 = maxy - start_y_p - - # print minx2, miny2, maxx2, maxy2 - - return minx, miny, maxx, maxy, minx2, miny2, maxx2, maxy2 - - -def line_eq(x1, y1, x2, y2): - x1 -= start_x_p - y1 -= start_y_p - x2 -= start_x_p - y2 -= start_y_p - - a1 = float(y1 - y2) - b1 = float(x2 - x1) - c1 = float(x1 * y2) - float(x2 * y1) - - tempa = a1 - tempb = b1 - - if a1 == 0: - tempa = 999999999999 - - if b1 == 0: - tempb = 999999999999 - - if tempa < tempb: - mini = tempa - elif tempb <= tempa: - mini = tempb - else: - mini = 1 - - a1 /= mini - b1 /= mini - c1 /= mini - - return a1, b1, c1 - - -def l2p3(a1, b1, c1, indi, xmin, xmax, ymin, ymax): - - # print indi[0, ymin-wb:ymax+wb+1, xmin-wb:xmax+wb+1].shape, xmin, xmax, ymin, ymax - - ind2a = indi[0, ymin:ymax, xmin:xmax] - ind2b = indi[1, ymin:ymax, xmin:xmax] - - ind2 = [ind2a, ind2b] - - da = a1*ind2[1] + b1*ind2[0] + c1 - db = float(sqrt(a1**2 + b1**2)) + 0.0000000000000000000000000000000000001 - - d = da / db - - return d - - -def midpoint(x1, y1, x2, y2): - # print 'x1 x2:', x1, x2, '\ny1 y2:', y1, y2 - mx = (x1 + x2) / 2 - my = (y1 + y2) / 2 - # print 'mx my:', mx, my - - return mx, my - - -def inter3(x1, y1, x2, y2, lrad1, rrad1): - - dx = x1-x2 - dy = y1-y2 - dist = sqrt(dx*dx + dy*dy) - dx /= (dist + 0.00000000000000000000001) - dy /= (dist + 0.00000000000000000000001) - - if y1 > y2: - x1r = x1 - rrad1*dy - y1r = y1 + rrad1*dx - x1l = x1 + lrad1*dy - y1l = y1 - lrad1*dx - - x2r = x2 - rrad1*dy - y2r = y2 + rrad1*dx - x2l = x2 + lrad1*dy - y2l = y2 - lrad1*dx - else: - x1r = x1 + rrad1*dy - y1r = y1 - rrad1*dx - x1l = x1 - lrad1*dy - y1l = y1 + lrad1*dx - - x2r = x2 + rrad1*dy - y2r = y2 - rrad1*dx - x2l = x2 - lrad1*dy - y2l = y2 + lrad1*dx - - return x1r, y1r, x1l, y1l, x2r, y2r, x2l, y2l - - -def trans(data, bbox_d, xmin, xmax, ymin, ymax, wb): - data[ymin-wb:ymax+wb+1, xmin-wb:xmax+wb+1] = bbox_d - - -def roads_func(ti): - tpt = geom.GetPoint(ti) - - xoff = int((tpt[0] - xOrigin) / pixelWidth) - yoff = int((tpt[1] - yOrigin) / pixelHeight) - - parr.append([xoff, yoff]) - - -def builds_func(bi): - bpt = ring.GetPoint(bi) - - xoff = int((bpt[0] - xOrigin) / pixelWidth) - yoff = int((bpt[1] - yOrigin) / pixelHeight) - - parr.append([xoff, yoff]) - parrx.append([xoff]) - parry.append([yoff]) - - -# get the shapefile driver -driver = ogr.GetDriverByName('ESRI Shapefile') - -# open the data source -datasource = driver.Open(r'chicago_roads_utm.shp', 0) -if datasource is None: - print 'Could not open' + r'chicago_roads_utm.shp' - exit(1) - -datasource2 = driver.Open(r'ChicagoLoop_Morph3_utm.shp', 0) -if datasource2 is None: - print 'Could not open ' + r'ChicagoLoop_Morph.shp' - exit(1) - -# register all of the GDAL drivers -gdal.AllRegister() - -# img = gdal.Open(r'C:\Users\mbq\Documents\1 ORNL\Work\2621_warped_copy.tif', GA_ReadOnly) -# if img is None: -# print 'Could not open 2621.tif' -# exit(1) - -layer = datasource.GetLayer() - -extent = layer.GetExtent() - -xOrigin = extent[0] -yOrigin = extent[3] - -x = extent[1] -y = extent[2] - -FACTOR = 10 / 0.5 - -PIXEL_SIZE = 0.5 * FACTOR - -IMAGE_SIZE_X = 372 -IMAGE_SIZE_Y = 274 - -pixelWidth = PIXEL_SIZE -pixelHeight = -PIXEL_SIZE - -start_x = 446768 -start_y = 4637947 - -start_x_p = int((start_x - xOrigin) / pixelWidth) -start_y_p = int((start_y - yOrigin) / pixelHeight) - -layer2 = datasource2.GetLayer() - -driver_out = gdal.GetDriverByName('GTiff') - -proj = osr.SpatialReference() -proj.SetWellKnownGeogCS("WGS84") -proj.SetUTM(16) - -data1 = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint8) -data1.fill(255) -ids = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint16) -ids.fill(255) - -tempxyz = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) - -distarr = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -distarr.fill(0) - -ind = indices(data1.shape) - -cnt = 0 - -# radius = 15 - -afile = open(r'names2_chicago.pkl', 'rb') -names2 = pickle.load(afile) -afile.close() - -afile = open(r'fad_out2_chicago.pkl', 'rb') -fad_out2 = pickle.load(afile) -afile.close() - -afile = open(r'builfrac_out2_chicago.pkl', 'rb') -builfrac_out2 = pickle.load(afile) -afile.close() - -afile = open(r'paf_out2_chicago.pkl', 'rb') -paf_out2 = pickle.load(afile) -afile.close() - -afile = open(r'fai_out2_chicago.pkl', 'rb') -fai_out2 = pickle.load(afile) -afile.close() - -afile = open(r'rdh_out2_chicago.pkl', 'rb') -rdh_out2 = pickle.load(afile) -afile.close() - -afile = open(r'rrl_out2_chicago.pkl', 'rb') -rrl_out2 = pickle.load(afile) -afile.close() - -afile = open(r'mdh_out2_chicago.pkl', 'rb') -mdh_out2 = pickle.load(afile) -afile.close() - -afile = open(r'mrl_out2_chicago.pkl', 'rb') -mrl_out2 = pickle.load(afile) -afile.close() - -afile = open(r'bs2par_out2_chicago.pkl', 'rb') -bs2par_out2 = pickle.load(afile) -afile.close() - -afile = open(r'zo_out2_chicago.pkl', 'rb') -zo_out2 = pickle.load(afile) -afile.close() - -afile = open(r'zd_out2_chicago.pkl', 'rb') -zd_out2 = pickle.load(afile) -afile.close() - -afile = open(r'mean_ht_out2_chicago.pkl', 'rb') -mean_ht_out2 = pickle.load(afile) -afile.close() - -afile = open(r'std_ht_out2_chicago.pkl', 'rb') -std_ht_out2 = pickle.load(afile) -afile.close() - -afile = open(r'awmh_out2_chicago.pkl', 'rb') -awmh_out2 = pickle.load(afile) -afile.close() - -afile = open(r'h2w_out2_chicago.pkl', 'rb') -h2w_out2 = pickle.load(afile) -afile.close() - -afile = open(r'car_out2_chicago.pkl', 'rb') -car_out2 = pickle.load(afile) -afile.close() - -bldgs = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=double) - -# loop through the buildings -feature_buil = layer2.GetNextFeature() - -while feature_buil: - bid = feature_buil.GetFieldAsString('BLDGID') - - # print bid, names2[cnt] - - if bid in names2: - # print bid, names2[cnt] - - geomb = feature_buil.GetGeometryRef() - ring = geomb.GetGeometryRef(0) - numpoints = ring.GetPointCount() - - if numpoints != 0: - nx, ny, nz = ring.GetPoint(0) - - xOffset = int((nx - xOrigin) / pixelWidth) - yOffset = int((ny - yOrigin) / pixelHeight) - - parr = [[xOffset, yOffset]] - parrx = [[xOffset]] - parry = [[yOffset]] - - map(builds_func, xrange(1, ring.GetPointCount())) - - parrx[:] = [x[0] - start_x_p for x in parrx] - parry[:] = [y[0] - start_y_p for y in parry] - - parrx = array(parrx) - parry = array(parry) - rr, cc = polygon(parrx, parry, [IMAGE_SIZE_Y, IMAGE_SIZE_X]) - - bldgs[cc, rr] = bid - - # print bid - - cnt += 1 - - feature_buil.Destroy() - feature_buil = layer2.GetNextFeature() - -bldgsh = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=double) - -layer2.ResetReading() -feature_buil = layer2.GetNextFeature() - -while feature_buil: - bid = feature_buil.GetFieldAsString('BLDGID') - ht = feature_buil.GetFieldAsString('MEAN_AVGHT') - - # print ht - - if bid in names2: - if ht != '': - ht = float(ht) - cnt = 0 - - for asdf in xrange(0, 75, 5): - if ((ht - asdf) >= 5) or (0 < (ht - asdf) < 5): - - geomb = feature_buil.GetGeometryRef() - ring = geomb.GetGeometryRef(0) - numpoints = ring.GetPointCount() - - if numpoints != 0: - nx, ny, nz = ring.GetPoint(0) - - xOffset = int((nx - xOrigin) / pixelWidth) - yOffset = int((ny - yOrigin) / pixelHeight) - - parr = [[xOffset, yOffset]] - parrx = [[xOffset]] - parry = [[yOffset]] - - map(builds_func, xrange(1, ring.GetPointCount())) - - parrx[:] = [x[0] - start_x_p for x in parrx] - parry[:] = [y[0] - start_y_p for y in parry] - - parrx = array(parrx) - parry = array(parry) - rr, cc = polygon(parrx, parry, [IMAGE_SIZE_Y, IMAGE_SIZE_X]) - - bldgsh[cnt, cc, rr] = bid - - cnt += 1 - - feature_buil.Destroy() - feature_buil = layer2.GetNextFeature() - -# print bldgs[bldgs != 0] - -# print names2 - -fadn = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -fadw = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -fads = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -fade = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) - -pad = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -rad = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) - -fai = zeros((4, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -rrl = zeros((4, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -rdh = zeros((4, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -mrl = zeros((4, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) - -for i in xrange(len(fad_out2)): - for j in xrange(len(fad_out2[i]['n'])): - fadn[j][bldgs == double(names2[i])] = fad_out2[i]['n'][j] - fadw[j][bldgs == double(names2[i])] = fad_out2[i]['w'][j] - fads[j][bldgs == double(names2[i])] = fad_out2[i]['s'][j] - fade[j][bldgs == double(names2[i])] = fad_out2[i]['e'][j] - - pad[j][bldgs == double(names2[i])] = builfrac_out2[i][j] - rad[j][bldgs == double(names2[i])] = builfrac_out2[i][j] - - fai[0][bldgs == double(names2[i])] = fai_out2[i]['n'] - fai[1][bldgs == double(names2[i])] = fai_out2[i]['w'] - fai[2][bldgs == double(names2[i])] = fai_out2[i]['s'] - fai[3][bldgs == double(names2[i])] = fai_out2[i]['e'] - - rrl[0][bldgs == double(names2[i])] = rrl_out2[i]['n'] - rrl[1][bldgs == double(names2[i])] = rrl_out2[i]['w'] - rrl[2][bldgs == double(names2[i])] = rrl_out2[i]['s'] - rrl[3][bldgs == double(names2[i])] = rrl_out2[i]['e'] - - rdh[0][bldgs == double(names2[i])] = rdh_out2[i]['n'] - rdh[1][bldgs == double(names2[i])] = rdh_out2[i]['w'] - rdh[2][bldgs == double(names2[i])] = rdh_out2[i]['s'] - rdh[3][bldgs == double(names2[i])] = rdh_out2[i]['e'] - - mrl[0][bldgs == double(names2[i])] = mrl_out2[i]['n'] - mrl[1][bldgs == double(names2[i])] = mrl_out2[i]['w'] - mrl[2][bldgs == double(names2[i])] = mrl_out2[i]['s'] - mrl[3][bldgs == double(names2[i])] = mrl_out2[i]['e'] - -paf = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -mea = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -std = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -awm = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -b2p = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -h2w = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -grl = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -gdh = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -mdh = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) -car = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) - -for i in xrange(len(h2w_out2)): - h2w[bldgs == double(names2[i])] = h2w_out2[i] - paf[bldgs == double(names2[i])] = paf_out2[i] - mea[bldgs == double(names2[i])] = mean_ht_out2[i] - std[bldgs == double(names2[i])] = std_ht_out2[i] - awm[bldgs == double(names2[i])] = awmh_out2[i] - b2p[bldgs == double(names2[i])] = bs2par_out2[i] - grl[bldgs == double(names2[i])] = zo_out2[i] - gdh[bldgs == double(names2[i])] = zd_out2[i] - mdh[bldgs == double(names2[i])] = mdh_out2[i] - car[bldgs == double(names2[i])] = car_out2[i] - -dbh = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) - -for i in xrange(len(fad_out2)): - for j in xrange(len(bldgsh)): - dbh[j][bldgsh[j] == double(names2[i])] += float(1) / float(len(fad_out2)) - -master = zeros((132, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) - -master[0:15] = fadn[0:15] -master[15:30] = fadw[0:15] -master[30:45] = fads[0:15] -master[45:60] = fade[0:15] -master[60:75] = pad[0:15] -master[75:90] = rad[0:15] - -master[90] = paf -master[91] = mea -master[92] = std -master[93] = awm -master[94] = b2p - -master[95:99] = fai[0:4] - -master[99] = car - -master[100] = h2w - -master[101] = ones((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) * 0.99 - -master[102] = grl -master[103] = gdh - -master[104] = rrl[0] -master[105] = rdh[0] -master[106] = rrl[1] -master[107] = rdh[1] -master[108] = rrl[2] -master[109] = rdh[2] -master[110] = rrl[3] -master[111] = rdh[3] - -master[112:116] = mrl[0:4] -master[116] = mdh - -master[117:132] = dbh[0:15] - -for i in xrange(len(master)): - master[i][isnan(master[i])] = 0 - -# print master[0] - -for i in xrange(len(master)): - - s = 'tile_' + str(i+1) + '.tif' - - imgOut = driver_out.Create(s, IMAGE_SIZE_Y, IMAGE_SIZE_X, 1, gdal.GDT_Float64) - bandOut1 = imgOut.GetRasterBand(1) - bandOut1.WriteArray(master[i], 0, 0) - imgOut.SetGeoTransform((start_x, pixelWidth, 0, start_y, 0, pixelHeight)) - imgOut.SetProjection(proj.ExportToWkt()) - - svis = 'tile_' + str(i+1) + '_visual.tif' - - master[i] *= 10000 - - imgOut = driver_out.Create(svis, IMAGE_SIZE_Y, IMAGE_SIZE_X, 1, 1) - bandOut1 = imgOut.GetRasterBand(1) - bandOut1.WriteArray(master[i], 0, 0) - imgOut.SetGeoTransform((start_x, pixelWidth, 0, start_y, 0, pixelHeight)) - imgOut.SetProjection(proj.ExportToWkt()) - -master = array(master) -master = master.astype(float32) - -b = master[0][::5][::5] - -# print b - -# master[0] += 10 - -# print master[0][master[0] != 0] -master0 = master[0][master[0] != 0] - -# print master0 - -master_out = bytes() - -mast = zeros((132, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float32) - -for i in xrange(len(master)): - for j in xrange(len(master[i])): - for k in xrange(len(master[i][j])): - # print type(master[i][j][k]) - master_out += struct.pack('>i', master[i][len(master[i]) - j - 1][k]) - -# for i in xrange(len(master)): -# for j in xrange(len(master[i])): -# for k in xrange(len(master[i][j])): -# # print type(master[i][j][k]) -# mast[i][j][k] = master[i][len(master[i]) - j - 1][k] -# -# print mast[0][::5][::5] - -# master_out = struct.pack('=%si' % master.size, *master) - -afile = save('master_out_chicago', master_out) - -with open('master_out_chicago.npy', 'rb') as tile, open('master_out2_chicago.npy', 'wb') as tile2: - tile2.write(tile.read()[20*4:]) - -# afile = open(r'master_out.pkl', 'wb') -# pickle.dump(master_out, afile) -# afile.close() - -# imgOut = driver_out.Create('Output\\h2w_out2.tif', -# IMAGE_SIZE_Y, IMAGE_SIZE_X, 1, gdal.GDT_Float64) -# -# bandOut1 = imgOut.GetRasterBand(1) -# bandOut1.WriteArray(h2w, 0, 0) -# imgOut.SetGeoTransform((start_x, pixelWidth, 0, start_y, 0, pixelHeight)) -# imgOut.SetProjection(proj.ExportToWkt()) - -# for i, dic in enumerate(fad_out2): -# print i, double(names2[i]) -# for key in dic: -# for cntr, asdf in enumerate(dic[key]): -# s = double(names2[i]) + '_' + str(key) + '_fad_out2_' + str(cntr+1) -# -# print s -# -# h2w = where(bldgs != double(names2[i]), data1, asdf) - -# close the data source -datasource.Destroy() - -print "Script took", str(time() - start_time), "seconds to run" diff --git a/NATURF/Binary.py b/NATURF/Binary.py new file mode 100644 index 00000000000..6fd7c982fbd --- /dev/null +++ b/NATURF/Binary.py @@ -0,0 +1,476 @@ +from sys import exit +from math import ceil +from numpy import array, zeros, uint8, uint16, indices,empty, float64, \ + isnan, ones, save, float32, double +from skimage.draw import polygon +import osr +import pickle +import struct + +try: + from osgeo import gdal, ogr + from osgeo.gdalconst import * +except ImportError: + import gdal + import ogr + from gdalconst import * + +def make_binary(name, path, tifDir, cenlat, cenlon, outputDir, id_field, height_field, indexfile): + ''' + Take parameter calculations and format them into a binary file + + Parameters + ---------- + name : str + Name of output csv with no extension. + path : PosixPath or str + Path to study shapefile. + tifDir : PosixPath or str + Path to directory for tif outputs. + cenlat : float + Center latitude of study area + cenlon : float + Center longitude of study area + outputDir : PosixPath or str + Path to directory for non-tif outputs. + id_field : str + Name of ID field in study shapefile. + height_field : str + Name of height field in study shapefile. + indexfile : str + Name of output binary file. + ''' + if type(path) != 'str': + path = str(path) + if type(tifDir) != 'str': + tifDir = str(tifDir) + + filename = "%s.npy" % name + + # get the shapefile driver + driver = ogr.GetDriverByName('ESRI Shapefile') + + datasource2 = driver.Open(path, 0) + if datasource2 is None: + print('Could not open shapefile') + exit(1) + + # register all of the GDAL drivers + gdal.AllRegister() + + layer2 = datasource2.GetLayer() + extent2 = layer2.GetExtent() + + xOrigin = extent2[0] + yOrigin = extent2[3] + + PIXEL_SIZE = 100 + + IMAGE_SIZE_X = 32 + IMAGE_SIZE_Y = 32 + + pixelWidth = PIXEL_SIZE + pixelHeight = -PIXEL_SIZE + + start_x = int(xOrigin) + start_y = ceil(yOrigin) + + start_x_p = int((start_x - xOrigin) / pixelWidth) + start_y_p = int((start_y - yOrigin) / pixelHeight) + + driver_out = gdal.GetDriverByName('GTiff') + + proj = osr.SpatialReference() + proj.SetWellKnownGeogCS("NAD1983") + proj.SetACEA(29.5, 45.5, cenlat, cenlon, 0, 0) + + #proj = osr.SpatialReference() + #proj.SetWellKnownGeogCS("WGS84") + #proj.SetUTM(18, False) + + data1 = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint8) + data1.fill(255) + ids = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint16) + ids.fill(255) + + tempxyz = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + + distarr = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + distarr.fill(0) + + ind = indices(data1.shape) + + cnt = 0 + + # radius = 15 + + afile = open(outputDir/'names2.pkl', 'rb') + names2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'fad_out2.pkl', 'rb') + fad_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'builfrac_out2.pkl', 'rb') + builfrac_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'paf_out2.pkl', 'rb') + paf_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'fai_out2.pkl', 'rb') + fai_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'rdh_out2.pkl', 'rb') + rdh_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'rrl_out2.pkl', 'rb') + rrl_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'mdh_out2.pkl', 'rb') + mdh_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'mrl_out2.pkl', 'rb') + mrl_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'bs2par_out2.pkl', 'rb') + bs2par_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'zo_out2.pkl', 'rb') + zo_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'zd_out2.pkl', 'rb') + zd_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'mean_ht_out2.pkl', 'rb') + mean_ht_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'std_ht_out2.pkl', 'rb') + std_ht_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'awmh_out2.pkl', 'rb') + awmh_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'h2w_out2.pkl', 'rb') + h2w_out2 = pickle.load(afile) + afile.close() + + afile = open(outputDir/'car_out2.pkl', 'rb') + car_out2 = pickle.load(afile) + afile.close() + + bldgs = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=double) + + # loop through the buildings + feature_buil = layer2.GetNextFeature() + + while feature_buil: + bid = feature_buil.GetFieldAsString(id_field) + + if bid in names2: + + geomb = feature_buil.GetGeometryRef() + ring = geomb.GetGeometryRef(0) + numpoints = ring.GetPointCount() + + if numpoints != 0: + nx, ny, nz = ring.GetPoint(0) + + xOffset = int((nx - xOrigin) / pixelWidth) + yOffset = int((ny - yOrigin) / pixelHeight) + + parr = [[xOffset, yOffset]] + parrx = [[xOffset]] + parry = [[yOffset]] + + for i in range(1, numpoints): + bpt = ring.GetPoint(i) + + xoff = int((bpt[0] - xOrigin) / pixelWidth) + yoff = int((bpt[1] - yOrigin) / pixelHeight) + + parrx.append([xoff]) + parry.append([yoff]) + + parrx[:] = [x[0] - start_x_p for x in parrx] + parry[:] = [y[0] - start_y_p for y in parry] + + parrx = array(parrx) + parry = array(parry) + rr, cc = polygon(parrx, parry, [IMAGE_SIZE_Y, IMAGE_SIZE_X]) + + bldgs[cc, rr] = bid + + cnt += 1 + + feature_buil.Destroy() + feature_buil = layer2.GetNextFeature() + + bldgsh = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=double) + + layer2.ResetReading() + feature_buil = layer2.GetNextFeature() + + while feature_buil: + bid = feature_buil.GetFieldAsString(id_field) + ht = feature_buil.GetFieldAsString(height_field) + + if bid in names2: + if ht != '': + ht = float(ht) + cnt = 0 + + for asdf in range(0, 75, 5): + if ((ht - asdf) >= 5) or (0 < (ht - asdf) < 5): + + geomb = feature_buil.GetGeometryRef() + ring = geomb.GetGeometryRef(0) + numpoints = ring.GetPointCount() + + if numpoints != 0: + nx, ny, nz = ring.GetPoint(0) + + xOffset = int((nx - xOrigin) / pixelWidth) + yOffset = int((ny - yOrigin) / pixelHeight) + + parr = [[xOffset, yOffset]] + parrx = [[xOffset]] + parry = [[yOffset]] + + for i in range(1, numpoints): + bpt = ring.GetPoint(i) + + xoff = int((bpt[0] - xOrigin) / pixelWidth) + yoff = int((bpt[1] - yOrigin) / pixelHeight) + + parrx.append([xoff]) + parry.append([yoff]) + + parrx[:] = [x[0] - start_x_p for x in parrx] + parry[:] = [y[0] - start_y_p for y in parry] + + parrx = array(parrx) + parry = array(parry) + rr, cc = polygon(parrx, parry, [IMAGE_SIZE_Y, IMAGE_SIZE_X]) + + bldgsh[cnt, cc, rr] = bid + + cnt += 1 + + feature_buil.Destroy() + feature_buil = layer2.GetNextFeature() + + fadn = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + fadw = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + fads = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + fade = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + + pad = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + rad = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + + fai = zeros((4, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + rrl = zeros((4, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + rdh = zeros((4, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + mrl = zeros((4, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + + for i in range(len(fad_out2)): + for j in range(len(fad_out2[i]['n'])): + fadn[j][bldgs == double(names2[i])] = fad_out2[i]['n'][j] + fadw[j][bldgs == double(names2[i])] = fad_out2[i]['w'][j] + fads[j][bldgs == double(names2[i])] = fad_out2[i]['s'][j] + fade[j][bldgs == double(names2[i])] = fad_out2[i]['e'][j] + + pad[j][bldgs == double(names2[i])] = builfrac_out2[i][j] + rad[j][bldgs == double(names2[i])] = builfrac_out2[i][j] + + fai[0][bldgs == double(names2[i])] = fai_out2[i]['n'] + fai[1][bldgs == double(names2[i])] = fai_out2[i]['w'] + fai[2][bldgs == double(names2[i])] = fai_out2[i]['s'] + fai[3][bldgs == double(names2[i])] = fai_out2[i]['e'] + + rrl[0][bldgs == double(names2[i])] = rrl_out2[i]['n'] + rrl[1][bldgs == double(names2[i])] = rrl_out2[i]['w'] + rrl[2][bldgs == double(names2[i])] = rrl_out2[i]['s'] + rrl[3][bldgs == double(names2[i])] = rrl_out2[i]['e'] + + rdh[0][bldgs == double(names2[i])] = rdh_out2[i]['n'] + rdh[1][bldgs == double(names2[i])] = rdh_out2[i]['w'] + rdh[2][bldgs == double(names2[i])] = rdh_out2[i]['s'] + rdh[3][bldgs == double(names2[i])] = rdh_out2[i]['e'] + + mrl[0][bldgs == double(names2[i])] = mrl_out2[i]['n'] + mrl[1][bldgs == double(names2[i])] = mrl_out2[i]['w'] + mrl[2][bldgs == double(names2[i])] = mrl_out2[i]['s'] + mrl[3][bldgs == double(names2[i])] = mrl_out2[i]['e'] + + paf = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + mea = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + std = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + awm = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + b2p = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + h2w = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + grl = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + gdh = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + mdh = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + car = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + + for i in range(len(h2w_out2)): + h2w[bldgs == double(names2[i])] = h2w_out2[i] + paf[bldgs == double(names2[i])] = paf_out2[i] + mea[bldgs == double(names2[i])] = mean_ht_out2[i] + std[bldgs == double(names2[i])] = std_ht_out2[i] + awm[bldgs == double(names2[i])] = awmh_out2[i] + b2p[bldgs == double(names2[i])] = bs2par_out2[i] + grl[bldgs == double(names2[i])] = zo_out2[i] + gdh[bldgs == double(names2[i])] = zd_out2[i] + mdh[bldgs == double(names2[i])] = mdh_out2[i] + car[bldgs == double(names2[i])] = car_out2[i] + + dbh = zeros((15, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + + for i in range(len(fad_out2)): + for j in range(len(bldgsh)): + dbh[j][bldgsh[j] == double(names2[i])] += float(1) / float(len(fad_out2)) + + master = zeros((132, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + + master[0:15] = fadn[0:15] + master[15:30] = fadw[0:15] + master[30:45] = fads[0:15] + master[45:60] = fade[0:15] + master[60:75] = pad[0:15] + master[75:90] = rad[0:15] + + master[90] = paf + master[91] = mea + master[92] = std + master[93] = awm + master[94] = b2p + + master[95:99] = fai[0:4] + + master[99] = car + + master[100] = h2w + + master[101] = ones((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) * 0.99 + + master[102] = grl + master[103] = gdh + + master[104] = rrl[0] + master[105] = rdh[0] + master[106] = rrl[1] + master[107] = rdh[1] + master[108] = rrl[2] + master[109] = rdh[2] + master[110] = rrl[3] + master[111] = rdh[3] + + master[112:116] = mrl[0:4] + master[116] = mdh + + master[117:132] = dbh[0:15] + + for i in range(len(master)): + master[i][isnan(master[i])] = 0 + + # print master[0] + + for i in range(len(master)): + + s = 'tile_' + str(i+1) + '.tif' + + imgOut = driver_out.Create(tifDir + '/' + s, IMAGE_SIZE_Y, IMAGE_SIZE_X, 1, gdal.GDT_Float64) + bandOut1 = imgOut.GetRasterBand(1) + bandOut1.WriteArray(master[i], 0, 0) + imgOut.SetGeoTransform((start_x, pixelWidth, 0, start_y, 0, pixelHeight)) + imgOut.SetProjection(proj.ExportToWkt()) + + svis = 'tile_' + str(i+1) + '_visual.tif' + + master[i] *= 10000 + + imgOut = driver_out.Create(tifDir + '/' + svis, IMAGE_SIZE_Y, IMAGE_SIZE_X, 1, 1) + bandOut1 = imgOut.GetRasterBand(1) + bandOut1.WriteArray(master[i], 0, 0) + imgOut.SetGeoTransform((start_x, pixelWidth, 0, start_y, 0, pixelHeight)) + imgOut.SetProjection(proj.ExportToWkt()) + + master = array(master) + master = master.astype(float32) + + b = master[0][::5][::5] + + master0 = master[0][master[0] != 0] + + master_out = [] + + mast = zeros((132, IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float32) + + for i in range(len(master)): + master_outi = bytes() + for j in range(len(master[i])): + for k in range(len(master[i][j])): + master_outi += struct.pack('>i', int(master[i][len(master[i]) - j - 1][k])) + + # print('Progress (inner loop): ', k, '/', len(master[i][j])) + # print('Progress (middle loop): ', j, '/', len(master[i])) + master_out.append(master_outi) + #print('Progress (outer loop): ', i, '/', len(master)) + + master_out_final = bytes() + + for i in range(len(master_out)): + master_out_final += master_out[i] + + afile = save(outputDir/'temp', master_out_final) + + with open(outputDir/'temp.npy', 'rb') as tile, open(outputDir/filename, 'wb') as tile2: + tile2.write(tile.read()[20*4:]) + + tilex = str(IMAGE_SIZE_X) + tiley = str(IMAGE_SIZE_Y) + + with open(outputDir/'index','w') as index: + index.write('type=continuous\n') + index.write(' projection=albers_nad83\n') + index.write(' missing_value=-999900.\n') + index.write(' dy=100.0\n') + index.write(' dx=100.0\n') + index.write(' known_x=1\n') + index.write(' known_y=1\n') + index.write(' known_lat=38.794034\n') + index.write(' known_lon=-77.129474\n') + index.write(' truelat1=45.5\n') + index.write(' truelat2=29.5\n') + index.write(' stdlon=-77.0\n') + index.write(' wordsize=4\n') + index.write(' endian=big\n') + index.write(' signed=no\n') + index.write(' tile_x=') + index.write(tilex + '\n') + index.write(' tile_y=') + index.write(tiley + '\n') + index.write(' tile_z=132\n') + index.write(' units="dimensionless"\n') + index.write(' scale_factor=0.0001\n') + index.write(' description="Urban_Parameters"\n') + + + + with open(outputDir/filename, 'rb') as tile, open(outputDir/indexfile, 'wb') as tile2: + tile2.write(tile.read()) \ No newline at end of file diff --git a/NATURF/Building_IDs.py b/NATURF/Building_IDs.py new file mode 100644 index 00000000000..7c68be6535a --- /dev/null +++ b/NATURF/Building_IDs.py @@ -0,0 +1,164 @@ +from sys import exit +from math import ceil +from numpy import array, uint8, uint16, uint32, indices, where, empty, float64 +from skimage.draw import polygon +import osr + +try: + from osgeo import gdal, ogr + from osgeo.gdalconst import * +except ImportError: + import gdal + import ogr + from gdalconst import * + +def make_ids_image(path, tifDir, cenlat, cenlon, id_field): + ''' + Create GeoTiff file containing building ID data. + + Parameters + ---------- + path : PosixPath or str + Path to study shapefile + tifDir : PosixPath or str + Path to directory for tif outputs + cenlat : float + Center latitude of study area + cenlon : float + Center longitude of study area + id_field : str + Name of ID field in study shapefile + ''' + if type(path) != 'str': + path = str(path) + if type(tifDir) != 'str': + tifDir = str(tifDir) + + # get the shapefile driver + driver = ogr.GetDriverByName('ESRI Shapefile') + + datasource2 = driver.Open(path, 0) + if datasource2 is None: + print('Could not open shapefile') + exit(1) + + # register all of the GDAL drivers + gdal.AllRegister() + + layer2 = datasource2.GetLayer() + + extent2 = layer2.GetExtent() + + xOrigin = extent2[0] + yOrigin = extent2[3] + + PIXEL_SIZE = 0.5 + + IMAGE_SIZE_X = (2 * ceil(extent2[3]-extent2[2])) + 100 + IMAGE_SIZE_Y = (2 * ceil(extent2[1]-extent2[0])) + 100 + + pixelWidth = PIXEL_SIZE + pixelHeight = -PIXEL_SIZE + + start_x = int(xOrigin) + start_y = ceil(yOrigin) + + start_x_p = int((start_x - xOrigin) / pixelWidth) + start_y_p = int((start_y - yOrigin) / pixelHeight) + + driver_out = gdal.GetDriverByName('GTiff') + imgOut = driver_out.Create(tifDir + '/Building_IDs.tif', + IMAGE_SIZE_Y, IMAGE_SIZE_X, 1, gdal.GDT_Int32) + + proj = osr.SpatialReference() + proj.SetWellKnownGeogCS("NAD1983") + proj.SetACEA(29.5, 45.5, cenlat, cenlon, 0, 0) + + #proj = osr.SpatialReference() + #proj.SetWellKnownGeogCS("WGS84") + #proj.SetUTM(18, False) + + bandOut1 = imgOut.GetRasterBand(1) + + data1 = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint8) + data1.fill(255) + + ids = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint32) + ids.fill(0) + + buils = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint16) + buils.fill(255) + + tempxyz = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + + distarr = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + distarr.fill(0) + + ind = indices(data1.shape) + + names = [] + heights = [] + widths = [] + ratios = [] + + cnt = 1 + + # radius = 15 + + # loop through the buildings + feature_buil = layer2.GetNextFeature() + + while feature_buil: + bid = feature_buil.GetFieldAsString(id_field) + + geomb = feature_buil.GetGeometryRef() + ring = geomb.GetGeometryRef(0) + numpoints = ring.GetPointCount() + + if numpoints != 0: + nx, ny, nz = ring.GetPoint(0) + + xOffset = int((nx - xOrigin) / pixelWidth) + yOffset = int((ny - yOrigin) / pixelHeight) + + parr = [[xOffset, yOffset]] + parrx = [[xOffset]] + parry = [[yOffset]] + + for bi in range(1, ring.GetPointCount()): + bpt = ring.GetPoint(bi) + + xoff = int((bpt[0] - xOrigin) / pixelWidth) + yoff = int((bpt[1] - yOrigin) / pixelHeight) + + parr.append([xoff, yoff]) + parrx.append([xoff]) + parry.append([yoff]) + + parrx[:] = [x[0] - start_x_p for x in parrx] + parry[:] = [y[0] - start_y_p for y in parry] + + parrx = array(parrx) + parry = array(parry) + rr, cc = polygon(parrx, parry, [IMAGE_SIZE_Y, IMAGE_SIZE_X]) + + buils[cc, rr] = 127 + + bid = float(bid) + bid = int(bid) + + ids[cc, rr] = where(ids[cc, rr] != 0, ids[cc, rr], cnt) + + # print cnt + + cnt += 1 + feature_buil.Destroy() + feature_buil = layer2.GetNextFeature() + + data1 = where(buils != 127, data1, 127) + + bandOut1.WriteArray(ids, 0, 0) + + imgOut.SetGeoTransform((start_x, pixelWidth, 0, start_y, 0, pixelHeight)) + imgOut.SetProjection(proj.ExportToWkt()) + del imgOut \ No newline at end of file diff --git a/NATURF/Buildings_Raster.py b/NATURF/Buildings_Raster.py new file mode 100644 index 00000000000..b3326ce554f --- /dev/null +++ b/NATURF/Buildings_Raster.py @@ -0,0 +1,168 @@ +from sys import exit +from math import ceil +from numpy import array, uint8, uint16, indices, where, empty, float64 +from skimage.draw import polygon +import osr +from PIL import Image +import pathlib + +try: + from osgeo import gdal, ogr + from osgeo.gdalconst import * +except ImportError: + import gdal + import ogr + from gdalconst import * + +def make_raster(path, tifDir, cenlat, cenlon): + ''' + Create a raster out of a study shapefile in GeoTiff format + + Parameters + ---------- + path : PosixPath or str + Path to study shapefile + tifDir : PosixPath or str + Path to directory for tif outputs + cenlat : float + Center latitude of study area + cenlon : float + Center longitude of study area + ''' + if type(path) != 'str': + path = str(path) + if type(tifDir) != 'str': + tifDir = str(tifDir) + + + # get the shapefile driver + driver = ogr.GetDriverByName('ESRI Shapefile') + + datasource2 = driver.Open(path, 0) + if datasource2 is None: + print('Could not open shapefile') + exit(1) + + # register all of the GDAL drivers + gdal.AllRegister() + + layer2 = datasource2.GetLayer() + + extent2 = layer2.GetExtent() + + xOrigin = extent2[0] + yOrigin = extent2[3] + + PIXEL_SIZE = 0.5 + + IMAGE_SIZE_X = (2 * ceil(extent2[3]-extent2[2])) + 100 + IMAGE_SIZE_Y = (2 * ceil(extent2[1]-extent2[0])) + 100 + + pixelWidth = PIXEL_SIZE + pixelHeight = -PIXEL_SIZE + + start_x = int(xOrigin) + start_y = ceil(yOrigin) + + start_x_p = int((start_x - xOrigin) / pixelWidth) + start_y_p = int((start_y - yOrigin) / pixelHeight) + + driver_out = gdal.GetDriverByName('GTiff') + imgOut = driver_out.Create(tifDir + '/Buildings_Raster.tif', + IMAGE_SIZE_Y, IMAGE_SIZE_X, 1, 1) + + proj = osr.SpatialReference() + proj.SetWellKnownGeogCS("NAD1983") + proj.SetACEA(29.5, 45.5, cenlat, cenlon, 0, 0) + + #proj = osr.SpatialReference() + #proj.SetWellKnownGeogCS("WGS84") + #proj.SetUTM(18, False) + + bandOut1 = imgOut.GetRasterBand(1) + + data1 = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint8) + data1.fill(255) + + ids = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint16) + ids.fill(255) + + buils = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint16) + buils.fill(255) + + tempxyz = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + + distarr = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=float64) + distarr.fill(0) + + ind = indices(data1.shape) + + ys = 0 + yl = 0 + xs = 0 + xl = 0 + + # radius = 15 + + # loop through the buildings + feature_buil = layer2.GetNextFeature() + + while feature_buil: + geomb = feature_buil.GetGeometryRef() + ring = geomb.GetGeometryRef(0) + numpoints = ring.GetPointCount() + + if numpoints != 0: + nx, ny, _ = ring.GetPoint(0) + + # print(nx, ny) + # print(xOrigin, yOrigin) + + xOffset = int((nx - xOrigin) / pixelWidth) + yOffset = int((ny - yOrigin) / pixelHeight) + + # print(xOffset, yOffset) + + parr = [[xOffset, yOffset]] + parrx = [[xOffset]] + parry = [[yOffset]] + + # print(parrx) + # print(parry) + # print(ring.GetPointCount()) + + for i in range(1, numpoints): + bpt = ring.GetPoint(i) + + xoff = int((bpt[0] - xOrigin) / pixelWidth) + yoff = int((bpt[1] - yOrigin) / pixelHeight) + + parrx.append([xoff]) + parry.append([yoff]) + + # print(parrx) + # print(parry) + + parrx[:] = [x[0] - start_x_p for x in parrx] + parry[:] = [y[0] - start_y_p for y in parry] + + # print(parrx) + # print(parry) + + parrx = array(parrx) + parry = array(parry) + rr, cc = polygon(parrx, parry, [IMAGE_SIZE_Y, IMAGE_SIZE_X]) + # print(rr, cc) + buils[cc, rr] = 127 + + feature_buil.Destroy() + feature_buil = layer2.GetNextFeature() + + + data1 = where(buils != 127, data1, 127) + + bandOut1.WriteArray(data1, 0, 0) + + imgOut.SetGeoTransform((start_x, pixelWidth, 0, start_y, 0, pixelHeight)) + imgOut.SetProjection(proj.ExportToWkt()) + del imgOut \ No newline at end of file diff --git a/NATURF/LICENSE b/NATURF/LICENSE new file mode 100644 index 00000000000..a1599a519fc --- /dev/null +++ b/NATURF/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Levi Sweet-Breu and Melissa Allen-Dumas + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/NATURF/Parameter_Calculations.py b/NATURF/Parameter_Calculations.py new file mode 100644 index 00000000000..0e9545b6ff0 --- /dev/null +++ b/NATURF/Parameter_Calculations.py @@ -0,0 +1,286 @@ +# GRID and BINS (WRF Pre-Processing) +from Parameter_Definitions import * +from sys import exit +import math +from numpy import array, zeros, uint8, mean +from PIL import Image +import csv +import warnings +import pickle + +try: + from osgeo import gdal, ogr + from osgeo.gdalconst import * +except ImportError: + import gdal + import ogr + from gdalconst import * + + +def calculate_parameters(path, tifDir, outputDir, name, height_field, id_field): + ''' + Use functions defined in Parameter_Definitions.py to calculate urban parameters, pickle them, and create a csv. + + Parameters + ---------- + path : PosixPath or str + Path to study shapefile. + tifDir : PosixPath or str + Path to directory for tif outputs. + outputDir : PosixPath or str + Path to directory for pickle and csv outputs. + name : str + Name of output csv with no extension. + height_field : str + Name of height field in study shapefile. + id_field : str + Name of ID field in study shapefile. + ''' + if type(path) != 'str': + path = str(path) + if type(tifDir) != 'str': + tifDir = str(tifDir) + + # get the shapefile driver + gdal.AllRegister() + driver = ogr.GetDriverByName('ESRI Shapefile') + buils_shp = path + datasource2 = driver.Open(buils_shp, 0) + if datasource2 is None: + print('Could not open shapefile') + exit(1) + buils_raster = tifDir +'/Buildings_Raster.tif' + img = gdal.Open(buils_raster, GA_ReadOnly) + if img is None: + print('Could not open image') + exit(1) + + # register all of the GDAL drivers + gdal.AllRegister() + + layer2 = datasource2.GetLayer() + + extent2 = layer2.GetExtent() + + xOrigin = extent2[0] + yOrigin = extent2[3] + + PIXEL_SIZE = 0.5 + + IMAGE_SIZE_X = (2 * math.ceil(extent2[3]-extent2[2])) + 100 + IMAGE_SIZE_Y = (2 * math.ceil(extent2[1]-extent2[0])) + 100 + + pixelWidth = PIXEL_SIZE + pixelHeight = -PIXEL_SIZE + + start_x = int(xOrigin) + start_y = math.ceil(yOrigin) + + + start_x_p = int((start_x - xOrigin) / pixelWidth) + start_y_p = int((start_y - yOrigin) / pixelHeight) + + i2arr = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint8) + + buils_ids = tifDir +'/Building_IDs.tif' + ids = Image.open(buils_ids) + + ids = array(ids) + + + filename = "%s.csv" % name + + wi = math.hypot((extent2[0] - extent2[1]), (extent2[2] - extent2[2])) + + he = math.hypot((extent2[0] - extent2[0]), (extent2[3] - extent2[2])) + + car = wi / he + + cents, hts, areas = get_cents_hts(IMAGE_SIZE_X, IMAGE_SIZE_Y, layer2, ids, PIXEL_SIZE, height_field) + + cents_ns, cents_ew, avgsa, nbarea, mean_ht_out, std_ht_out, awmh_out = avg_building_dist(IMAGE_SIZE_X, IMAGE_SIZE_Y, layer2, ids, PIXEL_SIZE, height_field, hts, areas, cents) + + fad_out, builfrac_out, fai_out, rdh_out, rrl_out, mdh_out, mrl_out, bs2par_out,\ + zo_out, zd_out, car_out = parameters1(IMAGE_SIZE_X, IMAGE_SIZE_Y, layer2, ids, PIXEL_SIZE, height_field, 'south', 0, nbarea, cents_ns, cents_ew, avgsa) + + # print car_out + + # print fad_out, builfrac_out, fai_out + + h2wratios, names = h2w(IMAGE_SIZE_X, IMAGE_SIZE_Y, layer2, xOrigin, yOrigin, pixelWidth, pixelHeight, start_x_p, start_y_p, PIXEL_SIZE, height_field, id_field) + + paras_out = [['Name', 'Frontal Area Density', 'Plan Area Density', 'Roof Area Density', + 'Plan Area Fraction', 'Mean Building Height', 'Standard Deviation of Building Heights', + 'Area Weighted Mean of Building Heights', 'Building Surface to Plan Area Ratio', + 'Frontal Area Index', 'Grimmond and Oke (GO) Roughness Length', 'GO Displacement Height', + 'Raupach Roughness Length', 'Raupach Displacement Height', 'MacDonald et al. Roughness Length', + 'MacDonald et al. Displacement Height', 'Height to Width Ratio', 'Complete Aspect Ratio']] + + # #$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$% + + names2, fad_out2, builfrac_out2, paf_out2, fai_out2, rdh_out2, rrl_out2, mdh_out2, mrl_out2, bs2par_out2, zo_out2,\ + zd_out2, mean_ht_out2, std_ht_out2, awmh_out2, h2w_out2, car_out2 = [], [], [], [], [], [], [], [], [], [], [],\ + [], [], [], [], [], [] + + # #$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$%#$% + + with warnings.catch_warnings(): + warnings.simplefilter("ignore", category=RuntimeWarning) + + for i in range(len(names)): + + n1 = names[i] + + # print n1 + + if len(fad_out[i]) != 0: + + for qw in range(len(builfrac_out[i])): + builfrac_out[i][qw] = mean(builfrac_out[i][qw]) + + bui1 = builfrac_out[i] # 15 + + bs21 = mean(bs2par_out[i]) # 1 + + for qw in range(15): + + fad_out[i]['n'][qw] = mean(fad_out[i]['n'][qw]) + fad_out[i]['w'][qw] = mean(fad_out[i]['w'][qw]) + fad_out[i]['s'][qw] = mean(fad_out[i]['s'][qw]) + fad_out[i]['e'][qw] = mean(fad_out[i]['e'][qw]) + + fad1 = fad_out[i] # 15 * 4 + + fai_out[i]['n'] = mean(fai_out[i]['n']) + fai_out[i]['w'] = mean(fai_out[i]['w']) + fai_out[i]['s'] = mean(fai_out[i]['s']) + fai_out[i]['e'] = mean(fai_out[i]['e']) + + rrl_out[i]['n'] = mean(rrl_out[i]['n']) + rrl_out[i]['w'] = mean(rrl_out[i]['w']) + rrl_out[i]['s'] = mean(rrl_out[i]['s']) + rrl_out[i]['e'] = mean(rrl_out[i]['e']) + + rdh_out[i]['n'] = mean(rdh_out[i]['n']) + rdh_out[i]['w'] = mean(rdh_out[i]['w']) + rdh_out[i]['s'] = mean(rdh_out[i]['s']) + rdh_out[i]['e'] = mean(rdh_out[i]['e']) + + mrl_out[i]['n'] = mean(mrl_out[i]['n']) + mrl_out[i]['w'] = mean(mrl_out[i]['w']) + mrl_out[i]['s'] = mean(mrl_out[i]['s']) + mrl_out[i]['e'] = mean(mrl_out[i]['e']) + + fai1 = fai_out[i] # 4 + rrl1 = rrl_out[i] # 4 + rdh1 = rdh_out[i] # 4 + mrl1 = mrl_out[i] # 4 + + paf = mean(builfrac_out[i]) + + mdh1 = mean(mdh_out[i]) # 1? + + mea1 = mean_ht_out[i] # 1 mbh + std1 = std_ht_out[i] # 1 stdev + awm1 = awmh_out[i] # 1 awm + zo1 = mean(zo_out[i]) # 1 grl + zd1 = mean(zd_out[i]) # 1 gdh + h2w1 = h2wratios[i] # 1 h2w + car1 = car_out[i] + + # print n1, fad1, bui1, paf, mea1, std1, awm1, bs21, fai1, zo1, zd1, rrl1, rdh1, mrl1, mdh1, h2w1, car1 + + names2.append(n1) + fad_out2.append(fad1) + builfrac_out2.append(bui1) + paf_out2.append(paf) + fai_out2.append(fai1) + rdh_out2.append(rdh1) + rrl_out2.append(rrl1) + mdh_out2.append(mdh1) + mrl_out2.append(mrl1) + bs2par_out2.append(bs21) + zo_out2.append(zo1) + zd_out2.append(zd1) + mean_ht_out2.append(mea1) + std_ht_out2.append(std1) + awmh_out2.append(awm1) + h2w_out2.append(h2w1) + car_out2.append(car1) + + paras_out.append([n1, fad1, bui1, bui1, paf, mea1, std1, awm1, bs21, fai1, zo1, zd1, rrl1, rdh1, + mrl1, mdh1, h2w1, car1]) + + + c = open(outputDir/filename, 'w') + wr = csv.writer(c) + wr.writerows(paras_out) + c.close() + + afile = open(outputDir/'names2.pkl', 'wb') + pickle.dump(names2, afile) + afile.close() + + afile = open(outputDir/'fad_out2.pkl', 'wb') + pickle.dump(fad_out2, afile) + afile.close() + + afile = open(outputDir/'builfrac_out2.pkl', 'wb') + pickle.dump(builfrac_out2, afile) + afile.close() + + afile = open(outputDir/'paf_out2.pkl', 'wb') + pickle.dump(paf_out2, afile) + afile.close() + + afile = open(outputDir/'fai_out2.pkl', 'wb') + pickle.dump(fai_out2, afile) + afile.close() + + afile = open(outputDir/'rdh_out2.pkl', 'wb') + pickle.dump(rdh_out2, afile) + afile.close() + + afile = open(outputDir/'rrl_out2.pkl', 'wb') + pickle.dump(rrl_out2, afile) + afile.close() + + afile = open(outputDir/'mdh_out2.pkl', 'wb') + pickle.dump(mdh_out2, afile) + afile.close() + + afile = open(outputDir/'mrl_out2.pkl', 'wb') + pickle.dump(mrl_out2, afile) + afile.close() + + afile = open(outputDir/'bs2par_out2.pkl', 'wb') + pickle.dump(bs2par_out2, afile) + afile.close() + + afile = open(outputDir/'zo_out2.pkl', 'wb') + pickle.dump(zo_out2, afile) + afile.close() + + afile = open(outputDir/'zd_out2.pkl', 'wb') + pickle.dump(zd_out2, afile) + afile.close() + + afile = open(outputDir/'mean_ht_out2.pkl', 'wb') + pickle.dump(mean_ht_out2, afile) + afile.close() + + afile = open(outputDir/'std_ht_out2.pkl', 'wb') + pickle.dump(std_ht_out2, afile) + afile.close() + + afile = open(outputDir/'awmh_out2.pkl', 'wb') + pickle.dump(awmh_out2, afile) + afile.close() + + afile = open(outputDir/'h2w_out2.pkl', 'wb') + pickle.dump(h2w_out2, afile) + afile.close() + + afile = open(outputDir/'car_out2.pkl', 'wb') + pickle.dump(car_out2, afile) + afile.close() \ No newline at end of file diff --git a/NATURF/Parameter_Definitions.py b/NATURF/Parameter_Definitions.py new file mode 100644 index 00000000000..8642bb1eb09 --- /dev/null +++ b/NATURF/Parameter_Definitions.py @@ -0,0 +1,1331 @@ +import math +from numpy import array, zeros, uint8, uint16, where, empty, sum, unique, rint +from skimage.draw import polygon +from scipy import ndimage + +def get_pixels2_c(IMAGE_SIZE_X, IMAGE_SIZE_Y, x1, y1, x2, y2): + mx = (float(y1) - float(y2)) / (float(x1) - float(x2) + 0.0000000000000000000000000000001) + yint = float(y1) - (mx * float(x1)) + px_func = [] + py_func = [] + + if abs(x1 - x2) > abs(y1 - y2) or abs(x1 - x2) == abs(y1 - y2): + if x1 > x2: + for i in range(x2, x1 + 1): + yp = int(round(mx * i + yint)) + + bx = i + by = yp + + if 0 <= bx < IMAGE_SIZE_Y and 0 <= by < IMAGE_SIZE_X: + px_func.append(i) + py_func.append(yp) + if x1 < x2: + for i in range(x1, x2 + 1): + yp = int(round(mx * i + yint)) + + bx = i + by = yp + + if 0 <= bx < IMAGE_SIZE_Y and 0 <= by < IMAGE_SIZE_X: + px_func.append(i) + py_func.append(yp) + + if abs(x1 - x2) < abs(y1 - y2): + if y1 > y2: + for i in range(y2, y1 + 1): + xp = int(round((i - yint) / mx)) + + bx = xp + by = i + + if 0 <= bx < IMAGE_SIZE_Y and 0 <= by < IMAGE_SIZE_X: + px_func.append(xp) + py_func.append(i) + if y1 < y2: + for i in range(y1, y2 + 1): + xp = int(round((i - yint) / mx)) + + bx = xp + by = i + + if 0 <= bx < IMAGE_SIZE_Y and 0 <= by < IMAGE_SIZE_X: + px_func.append(xp) + py_func.append(i) + + return px_func, py_func + +def inter4p(x1, y1, x2, y2, rad1): + + dx = x1-x2 + dy = y1-y2 + dist = math.sqrt(dx*dx + dy*dy) + dx /= (dist + 0.00000000000000000000001) + dy /= (dist + 0.00000000000000000000001) + + if y1 > y2: + x1r = x1 - rad1*dy + y1r = y1 + rad1*dx + else: + x1r = x1 + rad1*dy + y1r = y1 - rad1*dx + + return x1r, y1r + + +def inter4n(x1, y1, x2, y2, rad1): + + dx = x1-x2 + dy = y1-y2 + dist = math.sqrt(dx*dx + dy*dy) + dx /= (dist + 0.00000000000000000000001) + dy /= (dist + 0.00000000000000000000001) + + if y1 > y2: + x1l = x1 + rad1*dy + y1l = y1 - rad1*dx + else: + x1l = x1 - rad1*dy + y1l = y1 + rad1*dx + + return x1l, y1l + + +def ang2lines(linea, lineb): + # returns [0, 360] + + va = [(linea[0][0]-linea[1][0]), (linea[0][1]-linea[1][1])] + vb = [(lineb[0][0]-lineb[1][0]), (lineb[0][1]-lineb[1][1])] + + angle = math.atan2(va[1], va[0]) - math.atan2(vb[1], vb[0]) + angle = angle * 360 / (2 * math.pi) + + if angle < 0: + angle += 360 + + return angle + + +def ang2points(x1, y1, x2, y2): + dx = x2 - x1 + dy = y2 - y1 + + r = math.atan2(dy, dx) + degr = math.degrees(r) + + if degr < 0: + degr += 360 + + return degr + + +def get_cents_hts(IMAGE_SIZE_X, IMAGE_SIZE_Y, layer2, ids, PIXEL_SIZE, height_field): + cents1 = {} + heights = {} + areas = {} + i2arr = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint8) + cnt = 1 + + layer2.ResetReading() + feature_buil = layer2.GetNextFeature() + + while feature_buil: + ht = feature_buil.GetFieldAsString(height_field) + + if ht != '': + ht = float(ht) + # print cnt + heights[cnt] = ht + + geom = feature_buil.GetGeometryRef() + ring = geom.GetGeometryRef(0) + numpoints = ring.GetPointCount() + + if numpoints != 0: + + cent = geom.Centroid() + centx = cent.GetX() + centy = cent.GetY() + + centx = float(centx) + centy = float(centy) + + cents1[cnt] = [centx, centy] + + builarea = 0 + + i2arr.fill(0) + if len(ids[ids == cnt]) != 0: + i2arr[ids == cnt] = 1 + builarea = sum(i2arr) * PIXEL_SIZE**2 + + areas[cnt] = builarea + + cnt += 1 + + feature_buil.Destroy() + feature_buil = layer2.GetNextFeature() + + return cents1, heights, areas + + +def avg_building_dist(IMAGE_SIZE_X, IMAGE_SIZE_Y, layer2, ids, PIXEL_SIZE, height_field, heights, ars, cents): + + i2arr = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint8) + dils = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint8) + narr = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint8) + struct = ndimage.generate_binary_structure(2, 2) + rad = 100 + sumareas = 0 + cntr = 1 + parea = 0 + avgns = 0 + avgew = 0 + + cns_out = {} + cew_out = {} + meanht_out = [] + stdht_out = [] + awmh1_out = [] + pareas = {} + + layer2.ResetReading() + feature_buil = layer2.GetNextFeature() + + while feature_buil: + ht = feature_buil.GetFieldAsString(height_field) + + avgns = 0 + avgew = 0 + + sumarhts = 0 + sumareas2 = 0 + + hts1 = [] + + if ht != '': + + geomb = feature_buil.GetGeometryRef() + ring = geomb.GetGeometryRef(0) + numpoints = ring.GetPointCount() + + if numpoints != 0: + + i2arr.fill(0) + dils.fill(0) + narr.fill(0) + if len(ids[ids == cntr]) != 0: + i2arr[ids == cntr] = 1 + builarea = sum(i2arr) * PIXEL_SIZE**2 + i2arr = ndimage.binary_dilation(i2arr, structure=struct, iterations=rad).astype(i2arr.dtype) + # dilarea = sum(i2arr) * PIXEL_SIZE**2 + dibuils = unique(ids[where(i2arr == 1)]) + + sumareas += builarea + + # print dibuils + + if len(dibuils) != 0: + currcx = cents[cntr][0] # current building centroid + currcy = cents[cntr][1] + # print currcx, currcy + + te, tn, ts, tw = 0., 0., 0., 0. + ce, cn, cs, cw = 0., 0., 0., 0. + + for asdf in dibuils: + if asdf != 0 and asdf in heights: + hts1.append(heights[asdf]) + dils[(ids == asdf) & (i2arr == 1)] = 1 + + sumarhts += ars[asdf] * heights[asdf] + sumareas2 += ars[asdf] + + if asdf != cntr: + cx = cents[asdf][0] + cy = cents[asdf][1] + + d = math.hypot((currcx - cx), (currcy - cy)) + angle = ang2points(currcx, currcy, cx, cy) + + if (315 <= angle <= 360 or 0 <= angle < 45) and d != 0: # east + te += d + ce += 1 + + if 135 <= angle < 225 and d != 0: # west + tw += d + cw += 1 + + if 45 <= angle < 135 and d != 0: # north + tn += d + cn += 1 + + if 225 <= angle < 315 and d != 0: # south + ts += d + cs += 1 + + if cn != 0 or cs != 0: + avgns = (tn + ts) / (cn + cs) + else: + avgns = 0 + + if ce != 0 or cw != 0: + avgew = (te + tw) / (ce + cw) + else: + avgew = 0 + + # print avgns, avgew + + narr[(dils == 1) & (i2arr == 1)] = 1 + parea = sum(narr) * PIXEL_SIZE**2 + + pareas[cntr] = [ht, parea] # ####################################################### + + # if parea > dilarea: + # print parea, dilarea + + if len(hts1) != 0: + hts1 = array(hts1) + meanht_out.append(hts1.mean()) + stdht_out.append(hts1.std()) + else: + meanht_out.append(ht) + stdht_out.append(ht) + + cns_out[cntr] = avgns + cew_out[cntr] = avgew + + if sumareas2 != 0: + awmh1_out.append(sumarhts / sumareas2) + else: + awmh1_out.append(0) + + cntr += 1 + + feature_buil.Destroy() + feature_buil = layer2.GetNextFeature() + + avgsa = sumareas / cntr # sum of all of the surface areas in shapefile (used in a parameter) + + return cns_out, cew_out, avgsa, pareas, meanht_out, stdht_out, awmh1_out + + +def parameters1(IMAGE_SIZE_X, IMAGE_SIZE_Y, layer2, ids, PIXEL_SIZE, height_field, direc, bid, newbarea, cents_ns, cents_ew, avgsa): # if bid == 0, loops through all of the buildings + + i2arr = zeros((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint8) + struct = ndimage.generate_binary_structure(2, 2) + rad = 100 + + dist = -1 + builarea = 0 + dilarea = 0 + + sumarhts = 0 + sumareas = 0 + counter = 1 + + fad_out_inc = [] + builfrac_out_inc = [] + fai_out_inc = [] + rdh_out_inc = [] + rrl_out_inc = [] + mdh_out_inc = [] + mrl_out_inc = [] + bs2par_out_inc = [] + zo_out_inc = [] + zd_out_inc = [] + car_out_inc = [] + + if bid != 0: + layer2.ResetReading() + feature_buil = layer2.GetNextFeature() + while feature_buil: + ht = feature_buil.GetFieldAsString(height_field) + + fad_out = [] + builfrac_out = [] + fai_out = [] + rdh_out = [] + rrl_out = [] + mdh_out = [] + mrl_out = [] + bs2par_out = [] + zo_out = [] + zd_out = [] + + if ht != '': + ht = float(ht) + for asdf in range(5, 75, 5): + if (ht - asdf) > 0: + nht = 5 + elif (ht - asdf + 5) > 0: + nht = ht - asdf + 5 + else: + nht = 0.000000000000000001 + + zh = ht + if zh == 0: + zh = 0.000000000000000001 + + zo = 0.1 * zh + zd = 0.67 * zh + + zo_out.append(zo) + zd_out.append(zd) + + fads = [] + builfracs = [] + fais = [] + rdhs = [] + rrls = [] + mdhs = [] + mrls = [] + bs2pars = [] + + if bid == counter: + + geomb = feature_buil.GetGeometryRef() + ring = geomb.GetGeometryRef(0) + numpoints = ring.GetPointCount() + + if numpoints != 0: + + i2arr.fill(0) + builarea = 0 + dilarea = 0 + + if len(ids[ids == bid]) != 0: + i2arr[ids == bid] = 1 + builarea = sum(i2arr) * PIXEL_SIZE**2 + i2arr = ndimage.binary_dilation(i2arr, structure=struct, iterations=rad).astype(i2arr.dtype) + # i2arr[(ids != bid) & (iarr == 127)] = 0 + dilarea = sum(i2arr) * PIXEL_SIZE**2 + + sumarhts += builarea * nht + sumareas += builarea + + nx, ny, nz = ring.GetPoint(0) + + parrxc = [[nx]] + parryc = [[ny]] + + for bi in range(1, ring.GetPointCount()): + bpt = ring.GetPoint(bi) + + parrxc.append([bpt[0]]) + parryc.append([bpt[1]]) + + parrxc = array(parrxc) + parryc = array(parryc) + + for na in range(0, len(parrxc)-1): + p1x = parrxc[na] + p1y = parryc[na] + + p2x = parrxc[na+1] + p2y = parryc[na+1] + + if (p1x, p1y) != (p2x, p2y): + + perpx0 = parrxc[na] + + if parryc[na] + 1 < IMAGE_SIZE_X: + perpy0 = parryc[na] + 1 + else: + perpy0 = IMAGE_SIZE_X + + line1 = [[p1x, p1y], [p2x, p2y]] + line0deg = [[p1x, p1y], [perpx0, perpy0]] + + deg = ang2lines(line1, line0deg) + dist = math.hypot((p2x - p1x), (p2y - p1y)) + breadth = dist + + if breadth >= 1: + + # if 315 <= deg <= 360 or 0 <= deg < 45: + # direc2 = 'East' + # if 45 <= deg < 135: + # direc2 = 'South' + # if 135 <= deg < 225: + # direc2 = 'West' + # if 225 <= deg < 315: + # direc2 = 'North' + # + # if prevdir == direc2: + # dist += prevdist + + if (direc.lower() == 'east') and (315 <= deg <= 360 or 0 <= deg < 45): + if ((dist / 10) - 1) > 0: + wallarea = dist * nht + + if dilarea == 0: + break + + fad = wallarea / dilarea + + + if newbarea[counter][0] > ht: + builfrac = newbarea[counter][1] / dilarea + else: + builfrac = 0 + + if (cents_ns[counter] * cents_ew[counter]) != 0: + fai = (breadth * zh) / (cents_ns[counter] * cents_ew[counter]) + rdh = zh * (1 - (1 - math.exp(-math.sqrt(7.5 * 2 * fai))/math.sqrt(7.5 * 2 * fai))) + rrl = zh * ((1 - rdh) * math.exp(-0.4 * (1 / math.sqrt(0.003 + 0.3 * fai)) - 0.193)) + else: + fai = 0 + rdh = 0 + rrl = 0 + + mdh = zh * (1 + (1 / 3.59 ** builfrac) * (builfrac - 1)) + zxcv = 0.5 * (1.12 / 0.4 ** 2) * (1 - rdh) * (wallarea / avgsa) + + if zxcv >= 0: + mrl = zh * (1 - rdh) * math.exp(-1 / (math.sqrt(0.5 * (1.12 / 0.4 ** 2) * + (1 - rdh) * (wallarea / avgsa)))) + else: + mrl = 0 + + bs2par = newbarea[counter][1] / newbarea[counter][1] # currently always 1 + + fads.append(fad) + builfracs.append(builfrac) + fais.append(fai) + rdhs.append(rdh) + rrls.append(rrl) + mdhs.append(mdh) + mrls.append(mrl) + bs2pars.append(bs2par) + + # print bid, 'East', wallarea, dilarea, fad, builfrac, fai + + if (direc.lower() == 'north') and (45 <= deg < 135): + if ((dist / 10) - 1) > 0: + wallarea = dist * nht + + if dilarea == 0: + break + + fad = wallarea / dilarea + + if newbarea[counter][0] > ht: + builfrac = newbarea[counter][1] / dilarea + else: + builfrac = 0 + + if (cents_ns[counter] * cents_ew[counter]) != 0: + fai = (breadth * zh) / (cents_ns[counter] * cents_ew[counter]) + rdh = zh * (1 - (1 - math.exp(-math.sqrt(7.5 * 2 * fai))/math.sqrt(7.5 * 2 * fai))) + rrl = zh * ((1 - rdh) * math.exp(-0.4 * (1 / math.sqrt(0.003 + 0.3 * fai)) - 0.193)) + else: + fai = 0 + rdh = 0 + rrl = 0 + + mdh = zh * (1 + (1 / 3.59 ** builfrac) * (builfrac - 1)) + zxcv = 0.5 * (1.12 / 0.4 ** 2) * (1 - rdh) * (wallarea / avgsa) + + if zxcv >= 0: + mrl = zh * (1 - rdh) * math.exp(-1 / (math.sqrt(0.5 * (1.12 / 0.4 ** 2) * + (1 - rdh) * (wallarea / avgsa)))) + else: + mrl = 0 + + bs2par = newbarea[counter][1] / newbarea[counter][1] # currently always 1 + + fads.append(fad) + builfracs.append(builfrac) + fais.append(fai) + rdhs.append(rdh) + rrls.append(rrl) + mdhs.append(mdh) + mrls.append(mrl) + bs2pars.append(bs2par) + + # print bid, 'North', wallarea, dilarea, fad, builfrac, fai + + if (direc.lower() == 'west') and (135 <= deg < 225): + if ((dist / 10) - 1) > 0: + wallarea = dist * nht + + if dilarea == 0: + break + + fad = wallarea / dilarea + + if newbarea[counter][0] > ht: + builfrac = newbarea[counter][1] / dilarea + else: + builfrac = 0 + + if (cents_ns[counter] * cents_ew[counter]) != 0: + fai = (breadth * zh) / (cents_ns[counter] * cents_ew[counter]) + rdh = zh * (1 - (1 - math.exp(-math.sqrt(7.5 * 2 * fai))/math.sqrt(7.5 * 2 * fai))) + rrl = zh * ((1 - rdh) * math.exp(-0.4 * (1 / math.sqrt(0.003 + 0.3 * fai)) - 0.193)) + else: + fai = 0 + rdh = 0 + rrl = 0 + + mdh = zh * (1 + (1 / 3.59 ** builfrac) * (builfrac - 1)) + zxcv = 0.5 * (1.12 / 0.4 ** 2) * (1 - rdh) * (wallarea / avgsa) + + if zxcv >= 0: + mrl = zh * (1 - rdh) * math.exp(-1 / (math.sqrt(0.5 * (1.12 / 0.4 ** 2) * + (1 - rdh) * (wallarea / avgsa)))) + else: + mrl = 0 + + bs2par = newbarea[counter][1] / newbarea[counter][1] # currently always 1 + + fads.append(fad) + builfracs.append(builfrac) + fais.append(fai) + rdhs.append(rdh) + rrls.append(rrl) + mdhs.append(mdh) + mrls.append(mrl) + bs2pars.append(bs2par) + + # print bid, 'West', wallarea, dilarea, fad, builfrac, fai + + if (direc.lower() == 'south') and (225 <= deg < 315): + if ((dist / 10) - 1) > 0: + wallarea = dist * nht + + if dilarea == 0: + break + + fad = wallarea / dilarea + + if newbarea[counter][0] > ht: + builfrac = newbarea[counter][1] / dilarea + else: + builfrac = 0 + + if (cents_ns[counter] * cents_ew[counter]) != 0: + fai = (breadth * zh) / (cents_ns[counter] * cents_ew[counter]) + rdh = zh * (1 - (1 - math.exp(-math.sqrt(7.5 * 2 * fai))/math.sqrt(7.5 * 2 * fai))) + rrl = zh * ((1 - rdh) * math.exp(-0.4 * (1 / math.sqrt(0.003 + 0.3 * fai)) - 0.193)) + else: + fai = 0 + rdh = 0 + rrl = 0 + + mdh = zh * (1 + (1 / 3.59 ** builfrac) * (builfrac - 1)) + zxcv = 0.5 * (1.12 / 0.4 ** 2) * (1 - rdh) * (wallarea / avgsa) + + if zxcv >= 0: + mrl = zh * (1 - rdh) * math.exp(-1 / (math.sqrt(0.5 * (1.12 / 0.4 ** 2) * + (1 - rdh) * (wallarea / avgsa)))) + else: + mrl = 0 + + bs2par = newbarea[counter][1] / newbarea[counter][1] # currently always 1 + + fads.append(fad) + builfracs.append(builfrac) + fais.append(fai) + rdhs.append(rdh) + rrls.append(rrl) + mdhs.append(mdh) + mrls.append(mrl) + bs2pars.append(bs2par) + + # print bid, 'South', wallarea, dilarea, fad, builfrac, fai + + # prevdir = direc2 + # prevdist = dist + + fad_out.append(fads) + builfrac_out.append(builfracs) + fai_out.append(fais) + rdh_out.append(rdhs) + rrl_out.append(rrls) + mdh_out.append(mdhs) + mrl_out.append(mrls) + bs2par_out.append(bs2pars) + + fad_out_inc.append(fad_out) + builfrac_out_inc.append(builfrac_out) + fai_out_inc.append(fai_out) + rdh_out_inc.append(rdh_out) + rrl_out_inc.append(rrl_out) + mdh_out_inc.append(mdh_out) + mrl_out_inc.append(mrl_out) + bs2par_out_inc.append(bs2par_out) + zo_out_inc.append(zo_out) + zd_out_inc.append(zd_out) + + counter += 1 + + feature_buil.Destroy() + feature_buil = layer2.GetNextFeature() + + else: + layer2.ResetReading() + feature_buil = layer2.GetNextFeature() + while feature_buil: + ht = feature_buil.GetFieldAsString(height_field) + + if ht != '': + ht = float(ht) + + fad_out = {'n': [], 'w': [], 's': [], 'e': []} + fai_out = {'n': [], 'w': [], 's': [], 'e': []} + rdh_out = {'n': [], 'w': [], 's': [], 'e': []} + rrl_out = {'n': [], 'w': [], 's': [], 'e': []} + mrl_out = {'n': [], 'w': [], 's': [], 'e': []} + + builfrac_out = [] + mdh_out = [] + bs2par_out = [] + zo_out = [] + zd_out = [] + + edist = 0 + wdist = 0 + sdist = 0 + + for asdf in range(0, 75, 5): + if (ht - asdf) >= 5: + nht = 5 + elif 0 < (ht - asdf) < 5: + nht = ht - asdf + else: + nht = 0.00000000000000000000000000000001 + + # print ht, asdf, nht + + zh = ht + if zh == 0: + zh = 0.000000000000000001 + + zo = 0.1 * zh + zd = 0.67 * zh + + zo_out.append(zo) + zd_out.append(zd) + + fads = [] + fade = [] + fadn = [] + fadw = [] + + fais = [] + fain = [] + faie = [] + faiw = [] + + rdhs = [] + rdhn = [] + rdhe = [] + rdhw = [] + + rrls = [] + rrln = [] + rrle = [] + rrlw = [] + + mrls = [] + mrln = [] + mrle = [] + mrlw = [] + + builfracs = [] + mdhs = [] + bs2pars = [] + + geomb = feature_buil.GetGeometryRef() + ring = geomb.GetGeometryRef(0) + numpoints = ring.GetPointCount() + + if numpoints != 0: + + # print unique(ids) # len(ids[ids == counter]) + + i2arr.fill(0) + builarea = 0 + dilarea = 0 + # print counter + if len(ids[ids == counter]) != 0: + i2arr[ids == counter] = 1 + builarea = sum(i2arr) * PIXEL_SIZE**2 + + # i2arr[(ids != counter) & (iarr == 127)] = 0 + dilarea = sum(i2arr) * PIXEL_SIZE**2 + + sumarhts += builarea * nht + sumareas += builarea + + if dilarea == 0: + dilarea = builarea + + + nx, ny, nz = ring.GetPoint(0) + + parrxc = [[nx]] + parryc = [[ny]] + + for bi in range(1, ring.GetPointCount()): + bpt = ring.GetPoint(bi) + + parrxc.append([bpt[0]]) + parryc.append([bpt[1]]) + + parrxc = array(parrxc) + parryc = array(parryc) + + for na in range(0, len(parrxc)-1): + p1x = parrxc[na] + p1y = parryc[na] + + p2x = parrxc[na+1] + p2y = parryc[na+1] + + if (p1x, p1y) != (p2x, p2y): + + perpx0 = parrxc[na] + + if parryc[na] + 1 < IMAGE_SIZE_X: + perpy0 = parryc[na] + 1 + else: + perpy0 = IMAGE_SIZE_X + + line1 = [[p1x, p1y], [p2x, p2y]] + line0deg = [[p1x, p1y], [perpx0, perpy0]] + + deg = ang2lines(line1, line0deg) + + dist = math.sqrt((p2x - p1x)**2 + (p2y - p1y)**2) + + breadth = dist + + if breadth >= 1: + + # if 315 <= deg <= 360 or 0 <= deg < 45: + # direc2 = 'East' + # if 45 <= deg < 135: + # direc2 = 'South' + # if 135 <= deg < 225: + # direc2 = 'West' + # if 225 <= deg < 315: + # direc2 = 'North' + # + # if prevdir == direc2: + # dist += prevdist + + if 315 <= deg <= 360 or 0 <= deg < 45: + if ((dist / 10) - 1) > 0: + edist = dist + wallarea = dist * nht + + if dilarea == 0: + break + + fad = wallarea / dilarea + + if (cents_ns[counter] * cents_ew[counter]) != 0: + fai = (breadth * zh) / (cents_ns[counter] * cents_ew[counter]) + rdh = zh * (1 - (1 - math.exp(-math.sqrt(7.5 * 2 * fai))/math.sqrt(7.5 * 2 * fai))) + rrl = zh * (1 - rdh) * math.exp(-0.4 * (1 / math.sqrt(0.003 + 0.3 * fai)) - 0.193) + else: + fai = 0 + rdh = 0 + rrl = 0 + + zxcv = 0.5 * (1.12 / 0.4 ** 2) * (1 - rdh) * (wallarea / avgsa) + + if zxcv >= 0: + mrl = zh * (1 - rdh) * math.exp(-1 / (math.sqrt(0.5 * (1.12 / 0.4 ** 2) * + (1 - rdh) * (wallarea / avgsa)))) + else: + mrl = 0 + + if rrl > 3 or rrl < 0: + rrl = 0 + if rdh > 3 or rdh < 0: + rdh = 0 + + faie.append(fai) + rdhe.append(rdh) + rrle.append(rrl) + mrle.append(mrl) + + if float(fad) < 0.00000000000000000001: + fade.append(0) + else: + fade.append(fad) + + if 45 <= deg < 135: + if ((dist / 10) - 1) > 0: + wallarea = dist * nht + if asdf == 0: + dilarea = 10000 + + if dilarea == 0: + break + + fad = wallarea / dilarea + + if (cents_ns[counter] * cents_ew[counter]) != 0: + fai = (breadth * zh) / (cents_ns[counter] * cents_ew[counter]) + rdh = zh * (1 - (1 - math.exp(-math.sqrt(7.5 * 2 * fai))/math.sqrt(7.5 * 2 * fai))) + rrl = zh * (1 - rdh) * math.exp(-0.4 * (1 / math.sqrt(0.003 + 0.3 * fai)) - 0.193) + else: + fai = 0 + rdh = 0 + rrl = 0 + + zxcv = 0.5 * (1.12 / 0.4 ** 2) * (1 - rdh) * (wallarea / avgsa) + + if zxcv >= 0: + mrl = zh * (1 - rdh) * math.exp(-1 / (math.sqrt(0.5 * (1.12 / 0.4 ** 2) * + (1 - rdh) * (wallarea / avgsa)))) + else: + mrl = 0 + + if rrl > 3 or rrl < 0: + rrl = 0 + if rdh > 3 or rdh < 0: + rdh = 0 + + fain.append(fai) + rdhn.append(rdh) + rrln.append(rrl) + mrln.append(mrl) + + if float(fad) < 0.00000000000000000001: + fadn.append(0) + else: + fadn.append(fad) + + if 135 <= deg < 225: + if ((dist / 10) - 1) > 0: + wdist = dist + wallarea = dist * nht + + if dilarea == 0: + break + + fad = wallarea / dilarea + + if (cents_ns[counter] * cents_ew[counter]) != 0: + fai = (breadth * zh) / (cents_ns[counter] * cents_ew[counter]) + rdh = zh * (1 - (1 - math.exp(-math.sqrt(7.5 * 2 * fai))/math.sqrt(7.5 * 2 * fai))) + rrl = zh * (1 - rdh) * math.exp(-0.4 * (1 / math.sqrt(0.003 + 0.3 * fai)) - 0.193) + else: + fai = 0 + rdh = 0 + rrl = 0 + + zxcv = 0.5 * (1.12 / 0.4 ** 2) * (1 - rdh) * (wallarea / avgsa) + + if zxcv >= 0: + mrl = zh * (1 - rdh) * math.exp(-1 / (math.sqrt(0.5 * (1.12 / 0.4 ** 2) * + (1 - rdh) * (wallarea / avgsa)))) + else: + mrl = 0 + + if rrl > 3 or rrl < 0: + rrl = 0 + if rdh > 3 or rdh < 0: + rdh = 0 + + faiw.append(fai) + rdhw.append(rdh) + rrlw.append(rrl) + mrlw.append(mrl) + + if float(fad) < 0.00000000000000000001: + fadw.append(0) + else: + fadw.append(fad) + + if (direc.lower() == 'south') and (225 <= deg < 315): + if ((dist / 10) - 1) > 0: + sdist = dist + wallarea = dist * nht + + if dilarea == 0: + break + + fad = wallarea / dilarea + + + # print newbarea[counter][0], float(asdf), float(newbarea[counter][0]) > float(asdf) + + if float(newbarea[counter][0]) > float(asdf): + builfrac = newbarea[counter][1] / dilarea + else: + builfrac = 0 + + if (cents_ns[counter] * cents_ew[counter]) != 0: + fai = (breadth * zh) / (cents_ns[counter] * cents_ew[counter]) + rdh = zh * (1 - (1 - math.exp(-math.sqrt(7.5 * 2 * fai))/math.sqrt(7.5 * 2 * fai))) + rrl = zh * (1 - rdh) * math.exp(-0.4 * (1 / math.sqrt(0.003 + 0.3 * fai)) - 0.193) + else: + fai = 0 + rdh = 0 + rrl = 0 + + mdh = zh * (1 + (1 / 3.59 ** builfrac) * (builfrac - 1)) + zxcv = 0.5 * (1.12 / 0.4 ** 2) * (1 - rdh) * (wallarea / avgsa) + + if zxcv >= 0: + mrl = zh * (1 - rdh) * math.exp(-1 / (math.sqrt(0.5 * (1.12 / 0.4 ** 2) * + (1 - rdh) * (wallarea / avgsa)))) + else: + mrl = 0 + + bs2par = newbarea[counter][1] / newbarea[counter][1] # currently always 1 + + if rrl > 3 or rrl < 0: + rrl = 0 + if rdh > 3 or rdh < 0: + rdh = 0 + + if float(fad) < 0.00000000000000000001: + fads.append(0) + else: + fads.append(fad) + builfracs.append(builfrac) + fais.append(fai) + rdhs.append(rdh) + rrls.append(rrl) + mdhs.append(mdh) + mrls.append(mrl) + bs2pars.append(bs2par) + + + fad_out['n'].append(fadn) + fad_out['w'].append(fadw) + fad_out['s'].append(fads) + fad_out['e'].append(fade) + + fai_out['n'].append(fain) + fai_out['w'].append(faiw) + fai_out['s'].append(fais) + fai_out['e'].append(faie) + + rdh_out['n'].append(rdhn) + rdh_out['w'].append(rdhw) + rdh_out['s'].append(rdhs) + rdh_out['e'].append(rdhe) + + rrl_out['n'].append(rrln) + rrl_out['w'].append(rrlw) + rrl_out['s'].append(rrls) + rrl_out['e'].append(rrle) + + mrl_out['n'].append(mrln) + mrl_out['w'].append(mrlw) + mrl_out['s'].append(mrls) + mrl_out['e'].append(mrle) + + builfrac_out.append(builfracs) + mdh_out.append(mdhs) + bs2par_out.append(bs2pars) + + # incremental arrays # + fad_out_inc.append(fad_out) + builfrac_out_inc.append(builfrac_out) + fai_out_inc.append(fai_out) + rdh_out_inc.append(rdh_out) + rrl_out_inc.append(rrl_out) + mdh_out_inc.append(mdh_out) + mrl_out_inc.append(mrl_out) + bs2par_out_inc.append(bs2par_out) + zo_out_inc.append(zo_out) + zd_out_inc.append(zd_out) + + # print sdist, edist, wdist + + if edist != 0: + car_out_inc.append(float(sdist) / float(edist)) + elif edist == 0 and wdist != 0: + car_out_inc.append(float(sdist) / float(wdist)) + else: + car_out_inc.append(1) + + counter += 1 + + feature_buil.Destroy() + feature_buil = layer2.GetNextFeature() + + awmh = sumarhts / sumareas + + return fad_out_inc, builfrac_out_inc, fai_out_inc, rdh_out_inc, rrl_out_inc, mdh_out_inc, mrl_out_inc, \ + bs2par_out_inc, zo_out_inc, zd_out_inc, car_out_inc + + +def h2w(IMAGE_SIZE_X, IMAGE_SIZE_Y, layer2, xOrigin, yOrigin, pixelWidth, pixelHeight, start_x_p, start_y_p, PIXEL_SIZE, height_field, id_field): + names = [] + heights = [] + widths = [] + cnt = 1 + idsa = [] + ratios = [] + + buils = empty((IMAGE_SIZE_X, IMAGE_SIZE_Y), dtype=uint16) + buils.fill(255) + + layer2.ResetReading() + feature_buil = layer2.GetNextFeature() + + while feature_buil: + geomb = feature_buil.GetGeometryRef() + ring = geomb.GetGeometryRef(0) + numpoints = ring.GetPointCount() + + if numpoints != 0: + nx, ny, nz = ring.GetPoint(0) + + xOffset = int((nx - xOrigin) / pixelWidth) + yOffset = int((ny - yOrigin) / pixelHeight) + + parr = [[xOffset, yOffset]] + parrx = [[xOffset]] + parry = [[yOffset]] + + for bi in range(1, ring.GetPointCount()): + bpt = ring.GetPoint(bi) + + xoff = int((bpt[0] - xOrigin) / pixelWidth) + yoff = int((bpt[1] - yOrigin) / pixelHeight) + + parr.append([xoff, yoff]) + parrx.append([xoff]) + parry.append([yoff]) + + parrx[:] = [x[0] - start_x_p for x in parrx] + parry[:] = [y[0] - start_y_p for y in parry] + + parrx = array(parrx) + parry = array(parry) + rr, cc = polygon(parrx, parry, [IMAGE_SIZE_Y, IMAGE_SIZE_X]) + + buils[cc, rr] = 127 + + feature_buil.Destroy() + feature_buil = layer2.GetNextFeature() + + layer2.ResetReading() + feature_buil = layer2.GetNextFeature() + + while feature_buil: + ht = feature_buil.GetFieldAsString(height_field) + bid = feature_buil.GetFieldAsString(id_field) + + if ht != '': + idsa.append(cnt) + + cntr2 = 0 + summ2 = 0 + aveg2 = 0 + aveg1 = 0 + + geomb = feature_buil.GetGeometryRef() + ring = geomb.GetGeometryRef(0) + numpoints = ring.GetPointCount() + + if numpoints != 0: + cntr1 = 0 + summ1 = 0 + + nx, ny, nz = ring.GetPoint(0) + + xOffset = int((nx - xOrigin) / pixelWidth) + yOffset = int((ny - yOrigin) / pixelHeight) + + parr = [[xOffset, yOffset]] + parrx = [[xOffset]] + parry = [[yOffset]] + + parrxc = [[nx]] + parryc = [[ny]] + + for bi in range(1, ring.GetPointCount()): + bpt = ring.GetPoint(bi) + + xoff = int((bpt[0] - xOrigin) / pixelWidth) + yoff = int((bpt[1] - yOrigin) / pixelHeight) + + parr.append([xoff, yoff]) + parrx.append([xoff]) + parry.append([yoff]) + + parrxc.append([bpt[0]]) + parryc.append([bpt[1]]) + + parrx[:] = [x[0] - start_x_p for x in parrx] + parry[:] = [y[0] - start_y_p for y in parry] + + parrx = array(parrx) + parry = array(parry) + + for na in range(0, len(parrx)-1): + p1x = parrx[na] + p1y = parry[na] + + p2x = parrx[na+1] + p2y = parry[na+1] + + xarr, yarr = get_pixels2_c(IMAGE_SIZE_X, IMAGE_SIZE_Y, int(p1x), int(p1y), int(p2x), int(p2y)) + + if ((len(xarr)/20)-1) > 0: + + for nb in range(0, int(rint((len(xarr)/20.)-1))): + + tempa = 0 + x1 = xarr[(nb*20)+1] + y1 = yarr[(nb*20)+1] + + x2 = xarr[((nb+1)*20)+1] + y2 = yarr[((nb+1)*20)+1] + + for tg in range(1, 200): + perp1x, perp1y = inter4p(x1, y1, x2, y2, tg) + + if perp1x < 0: + perp1x = 0 + if perp1y < 0: + perp1y = 0 + + if int(round(perp1x)) >= IMAGE_SIZE_Y: + perp1x = IMAGE_SIZE_Y - 1 + if int(round(perp1y)) >= IMAGE_SIZE_X: + perp1y = IMAGE_SIZE_X - 1 + + if buils[int(round(perp1y)), int(round(perp1x))] == 127: + tempa = tg + if tempa > 4: + # print 'p' + break + else: + tempa = tg + + if tempa == 5: + for tg in range(1, 200): + perp1x, perp1y = inter4n(p1x, p1y, p2x, p2y, tg) + + if perp1x < 0: + perp1x = 0 + if perp1y < 0: + perp1y = 0 + + if int(round(perp1x)) >= IMAGE_SIZE_Y: + perp1x = IMAGE_SIZE_Y - 1 + if int(round(perp1y)) >= IMAGE_SIZE_X: + perp1y = IMAGE_SIZE_X - 1 + + if buils[int(round(perp1y)), int(round(perp1x))] == 127: + tempa = tg + if tempa > 4: + # print 'n' + break + else: + tempa = tg + + # print tempa + + if tempa != 5 and tempa != 199: + cntr1 += 1 + summ1 += tempa + # print tempa + + if cntr1 != 0: + aveg1 = summ1 / cntr1 + # print aveg1 + else: + aveg1 = 0 + elif len(xarr) != 0: + tempa = 0 + x1 = xarr[1] + y1 = yarr[1] + + x2 = xarr[1] + y2 = yarr[1] + + for tg in range(1, 200): + perp1x, perp1y = inter4p(x1, y1, x2, y2, tg) + + if perp1x < 0: + perp1x = 0 + if perp1y < 0: + perp1y = 0 + + if int(round(perp1x)) >= IMAGE_SIZE_Y: + perp1x = IMAGE_SIZE_Y - 1 + if int(round(perp1y)) >= IMAGE_SIZE_X: + perp1y = IMAGE_SIZE_X - 1 + + if buils[int(round(perp1y)), int(round(perp1x))] == 127: + tempa = tg + if tempa > 4: + # print 'p' + break + else: + tempa = tg + + if tempa == 5: + for tg in range(1, 200): + perp1x, perp1y = inter4n(p1x, p1y, p2x, p2y, tg) + + if perp1x < 0: + perp1x = 0 + if perp1y < 0: + perp1y = 0 + + if int(round(perp1x)) >= IMAGE_SIZE_Y: + perp1x = IMAGE_SIZE_Y - 1 + if int(round(perp1y)) >= IMAGE_SIZE_X: + perp1y = IMAGE_SIZE_X - 1 + + if buils[int(round(perp1y)), int(round(perp1x))] == 127: + tempa = tg + if tempa > 4: + # print 'n' + break + else: + tempa = tg + + # print tempa + + if tempa != 5 and tempa != 199: + cntr1 += 1 + summ1 += tempa + # print tempa + + if cntr1 != 0: + aveg1 = summ1 / cntr1 + # print aveg1 + else: + aveg1 = 0 + + cntr2 += 1 + summ2 += aveg1 + + if cntr2 != 0 and summ2 != 0: + aveg2 = summ2 / cntr2 + # print name, '=', aveg2*PIXEL_SIZE # , '\n' + + heights.append(float(ht)) + widths.append(aveg2*PIXEL_SIZE) + names.append(bid) + + cnt += 1 + feature_buil.Destroy() + feature_buil = layer2.GetNextFeature() + + for qw in range(0, len(heights)): + if widths[qw] != 0: + ratio = heights[qw] / widths[qw] + else: + ratio = 0 + + ratios.append(ratio) + + return ratios, names \ No newline at end of file diff --git a/NATURF/__init__.py b/NATURF/__init__.py new file mode 100644 index 00000000000..9561ba9e77f --- /dev/null +++ b/NATURF/__init__.py @@ -0,0 +1,2 @@ + +__version__ = "0.0.0" diff --git a/NATURF/im3Workflow.py b/NATURF/im3Workflow.py new file mode 100644 index 00000000000..17526176bb9 --- /dev/null +++ b/NATURF/im3Workflow.py @@ -0,0 +1,42 @@ +import multiprocessing +import pandas as pd +import pathlib +import Buildings_Raster as BR +import Building_IDs as BI +import Parameter_Calculations as PC +import Binary + +def processFile(shapeFile): + folder = shapeFile.parent.parent # directory housing output subdirectories + scenario = shapeFile.parent.parent.stem # first part of output directory name + buildingTile = shapeFile.stem # filename without extension + outputDir = folder/'{}_{}'.format(scenario, buildingTile) # create output directory named according to tile + tifDir = outputDir/'Tifs' + tifDir.mkdir(parents=True, exist_ok=True) # automatically also creates outputDir + + indexfile = filenames[buildingTile][0] # binary file name + cenlat = 38.9 # Center latitude of the study area + cenlon = -77.0 # Center longitude of the study area + id_field = 'OBJECTID' # Name of the field containing ID data in shapefile + height_field = 'Max_HOUSE_' # Name of the field containing height data in shapefile + + BR.make_raster(shapeFile, tifDir, cenlat, cenlon) + BI.make_ids_image(shapeFile, tifDir, cenlat, cenlon, id_field) + PC.calculate_parameters(shapeFile, tifDir, outputDir, buildingTile, height_field, id_field) + Binary.make_binary(buildingTile, shapeFile, tifDir, cenlat, cenlon, outputDir, id_field, height_field, indexfile) + + print(buildingTile + " has finished") + +basePath = pathlib.Path('/mnt/data/UrbanMorphology/data/32x32/dilarea_testing/Shapefiles') # Path to directory containing shapefiles +shapeFiles = list(basePath.glob('*.shp')) # Creates a list of all the shapefile paths +grid = pd.read_csv(pathlib.Path('/mnt/data/UrbanMorphology/data/32x32/LA_Indices.csv')) # Path to geogrid csv +filenames = grid.set_index('GRID_ID').T.to_dict("list") # Creates a dictionary from the csv where grid IDs and the names are values + +try: + cpus = min(50, len(shapeFiles)) +except NotImplementedError: + cpus = 1 + #cpus = 96 # max +pool = multiprocessing.Pool(processes=cpus) + +pool.map(processFile, shapeFiles) \ No newline at end of file diff --git a/NATURF/tests/00065-00096.00065-00096 b/NATURF/tests/00065-00096.00065-00096 new file mode 100644 index 00000000000..c101cfdc37b Binary files /dev/null and b/NATURF/tests/00065-00096.00065-00096 differ diff --git a/NATURF/tests/C-5.csv b/NATURF/tests/C-5.csv new file mode 100644 index 00000000000..e482cceb47f --- /dev/null +++ b/NATURF/tests/C-5.csv @@ -0,0 +1,261 @@ +Name,Frontal Area Density,Plan Area Density,Roof Area Density,Plan Area Fraction,Mean Building Height,Standard Deviation of Building Heights,Area Weighted Mean of Building Heights,Building Surface to Plan Area Ratio,Frontal Area Index,Grimmond and Oke (GO) Roughness Length,GO Displacement Height,Raupach Roughness Length,Raupach Displacement Height,MacDonald et al. Roughness Length,MacDonald et al. Displacement Height,Height to Width Ratio,Complete Aspect Ratio +132147,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +132186,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,1.33,1.33,2.3276996996996995,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +132230,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.10306635664578775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.08314606436594871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,1.7733333333333334,1.2539360253041443,2.399764705882353,nan,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",0.266,1.7822,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.029577863784356857, 's': nan, 'e': 0.024142861204335602}",nan,0,0.0 +132237,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,1.7733333333333334,1.2539360253041443,2.399764705882353,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.266,1.7822,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +132286,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +132338,"{'n': [0.016979217820312243, 0.020525513397578948, 0.020525513397578948, 0.020525513397578948, 0.020525513397578948, 0.0016830920986014742, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.01049628410422098, 0.01049628410422098, 0.01049628410422098, 0.01049628410422098, 0.01049628410422098, 0.0008606952965461206, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.00840612544639733, 0.010161836799416518, 0.010161836799416518, 0.010161836799416518, 0.010161836799416518, 0.0008332706175521547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,11.086666666666666,10.623057730971604,22.250012153380624,nan,"{'n': 0.0, 'w': 0.0, 's': nan, 'e': 0.0}",2.5409999999999995,17.0247,"{'n': 0.0, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': 3.8106832754720865, 'w': 2.739723188268353, 's': nan, 'e': 2.759786943708305}",nan,1.7227118644067796,0.0 +134281,"{'n': [0.013640326650536454, 0.012098655476449836, 0.004815264879627034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.016380625219272894, 0.016380625219272894, 0.0065194888372706135, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.009426239991147669, 0.009333474776814113, 0.0037147229611720176, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.03136579752047879, 0.027820739756949504, 0.011072654423265903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[1.292752996635823, 1.269640996075127, 1.269640996075127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[1.292752996635823, 1.269640996075127, 1.269640996075127, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.2554689992524051,6.352222222222222,6.44579238776528,12.915654699779944,1.0,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",1.1990000000000003,8.033299999999999,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.7727340104417989, 'w': 0.9130634980041976, 's': 0.6877873675010893, 'e': 1.2045883596626046}",2.5274337015545645,0.436,0.18317233276572054 +134322,"{'n': [0.037260910367269175, 0.06929683906875428, 0.035757168959477205, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.012518034220583327, 0.023280703404469638, 0.012012842956706335, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.010416221931277675, 0.019371809431425843, 0.009995853666615734, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.037144711823268485, 0.06908073614147012, 0.035645659848998576, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[1.142325, 2.1244653152315416, 2.1244653152315416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[1.142325, 2.1244653152315416, 2.1244653152315416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.35941704203087227,6.505,6.5284645974379005,11.87926545503455,1.0,"{'n': 0.06798146612697595, 'w': 0.022838795696479907, 's': 0.019004099239997015, 'e': 0.0677694652041556}",1.2579999999999996,8.428600000000001,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",2.6685393434154157,0.28569265707797126,0.3182825538399279 +134352,"{'n': [0.015009693265536984, 0.03209771347882809, 0.012839085391531236, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.010048178470931058, 0.021487684514153556, 0.008595073805661421, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.015317735792493086, 0.032756451841738754, 0.013102580736695502, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.018008658020497278, 0.03851089659555687, 0.015404358638222745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[1.30185, 2.783961507618284, 2.783961507618284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[1.30185, 2.783961507618284, 2.783961507618284, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.45798486768243785,8.418571428571429,6.832438235717756,12.565421643659253,1.0,"{'n': 0.048215916385695404, 'w': 0.032277950282658466, 's': 0.04920544711495125, 'e': 0.05784954655459543}",1.1999999999999997,8.040000000000003,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",2.5270431717814104,0.39543726235741444,0.3179355807773004 +134369,"{'n': [0.013341454350919052, 0.03097800975426726, 0.012391203901706904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.019743055497525745, 0.04584212108324315, 0.018336848433297262, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.006752719728132352, 0.015679386377505898, 0.006271754551002358, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.03742677853404882, 0.08690260296987014, 0.03476104118794805, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[1.32215, 3.0699483369129856, 3.0699483369129856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[1.32215, 3.0699483369129856, 3.0699483369129856, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.4974697782550647,15.162,12.929176926626072,17.6147326651613,1.0,"{'n': 0.03061889930718776, 'w': 0.045310699448094086, 's': 0.015497624169519544, 'e': 0.08589519052302681}",1.1999999999999997,8.040000000000003,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",2.513017528121443,0.5370051635111875,0.18412724597050095 +134379,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.05976702493910865, 0.05976702493910865, 0.05976702493910865, 0.05976702493910865, 0.05976702493910865, 0.05976702493910865, 0.03502347661431766, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.03947297560296145, 0.03947297560296145, 0.03947297560296145, 0.03947297560296145, 0.03947297560296145, 0.03947297560296145, 0.02313116370333541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.410833333333331,10.337382372029948,31.94819466617812,nan,"{'n': nan, 'w': 0.09206217938738222, 's': nan, 'e': 0.060802226053847074}",3.2929999999999997,22.063100000000006,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.6488669950738917,0.0 +134389,"{'n': [0.03058558632201031, 0.02074754138077818, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.038294249423772304, 0.01049262434211361, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.04983532520622166, 0.013654879106504732, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.013943630268758559, 0.006274919970420929, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[1.6965401992944236, 1.6965401992944236, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[1.6965401992944236, 1.6965401992944236, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.22620535990592314,4.285833333333334,2.9870204171083636,6.374349786882991,1.0,"{'n': 0.11887114009884966, 'w': 0.060116531172774844, 's': 0.0782343805230815, 'e': 0.03595157986304975}",0.6370000000000002,4.267899999999999,"{'n': 0.21369577075279012, 'w': 0.0, 's': 0.0027888594506948394, 'e': 0.0}","{'n': 0.30625164237111174, 'w': 2.595308689743383, 's': 0.32993592832963925, 'e': 0.0}","{'n': 0.060861642242769284, 'w': 0.0, 's': 7.035848290697155e-06, 'e': 0.0}",0.9169859047428226,0.29734290843806105,3.0695728868986567 +134391,"{'n': [0.008055955202643227, 0.01999616556659814, 0.01999616556659814, 0.01999616556659814, 0.01999616556659814, 0.01999616556659814, 0.01999616556659814, 0.016916756069342013, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.017918037565107417, 0.017918037565107417, 0.017918037565107417, 0.017918037565107417, 0.017918037565107417, 0.017918037565107417, 0.017918037565107417, 0.015158659780080862, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.012193122890902127, 0.01637694038262396, 0.01637694038262396, 0.01637694038262396, 0.01637694038262396, 0.01637694038262396, 0.01637694038262396, 0.013854891563699862, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.020869044090772535, 0.020869044090772535, 0.020869044090772535, 0.020869044090772535, 0.020869044090772535, 0.020869044090772535, 0.020869044090772535, 0.017655211300793554, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[1.4315193422277381, 1.8807322370462303, 1.8807322370462303, 1.8807322370462303, 1.8807322370462303, 1.8807322370462303, 1.8807322370462303, 1.8807322370462303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[1.4315193422277381, 1.8807322370462303, 1.8807322370462303, 1.8807322370462303, 1.8807322370462303, 1.8807322370462303, 1.8807322370462303, 1.8807322370462303, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.97310966677009,18.334285714285716,12.56113377178402,23.731012952417196,1.0,"{'n': 0.053717813063978485, 'w': 0.048135118165033956, 's': 0.043995105916868005, 'e': 0.05606271890270018}",3.923000000000001,26.28410000000001,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",22.408407189347592,0.7737107377647918,0.8966773044926033 +134461,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.03793391104413956, 0.03793391104413956, 0.03793391104413956, 0.03391291647346076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.061224044009331284, 0.061224044009331284, 0.061224044009331284, 0.054734295344342154, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.665714285714285,11.132855951311551,17.466511632707828,nan,"{'n': nan, 'w': 0.037455946667112924, 's': nan, 'e': 0.06045262573875218}",1.9469999999999996,13.044900000000005,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.545760336370007,0.0 +134475,"{'n': [0.010403513037450114, 0.033807825290275775, 0.02305693684796808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.014124245895214415, 0.04589892239894197, 0.031303065076078426, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.014701676545137257, 0.04777537263835326, 0.03258280413935693, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.01135393970019124, 0.024566530333281156, 0.016754373687297746, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[0.569975, 1.8522219514176619, 1.8522219514176619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.569975, 1.8522219514176619, 1.8522219514176619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.28496126018902157,1.6582608695652175,3.902350074744719,10.541050979828471,1.0,"{'n': 0.04310658004654018, 'w': 0.058523302089147446, 's': 0.0609158651053731, 'e': 0.031323490854111166}",1.3410000000000006,8.984700000000002,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.9308717146918424, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",2.639269561149428,0.42206008583690985,4.7924125484576505 +134507,"{'n': [0.01836017207019679, 0.06610918019694587, 0.04019438155974307, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.017625610741784842, 0.06346425687923249, 0.038586268182573345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.008153233677424192, 0.02935721911035806, 0.017849189219097696, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.015241838702224283, 0.05488104672688553, 0.03336767640994639, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[0.30745, 1.1070303357637952, 1.1070303357637952, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.30745, 1.1070303357637952, 1.1070303357637952, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.16810071143517266,10.893333333333333,3.0611254284803304,10.117629642091096,1.0,"{'n': 0.3442222563937715, 'w': 0.33045047054346305, 's': 0.15285937858416607, 'e': 0.2857587657463236}",1.3039999999999998,8.7368,"{'n': 1.4825090258815226, 'w': 1.1314492020234277, 's': 0.0, 'e': 0.5768993232007079}","{'n': 1.1373190601275616, 'w': 0.6320847083336132, 's': 1.9868363936151674, 'e': 0.7944877514639243}","{'n': 0.44283362706467777, 'w': 0.23719593636774935, 's': 0.0, 'e': 0.07235118883953313}",2.2467894633530863,0.17157894736842105,0.45972950780853 +134603,"{'n': [0.012577142300415725, 0.057397112608856715, 0.057397112608856715, 0.03788209432184544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.009157060273639727, 0.041789208322371825, 0.041789208322371825, 0.02758087749276541, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.0245252715218935, 0.11192365782951967, 0.11192365782951967, 0.073869614167483, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.01020944268148335, 0.046591866201863556, 0.046591866201863556, 0.030750631693229946, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[0.311, 1.419281232173417, 1.419281232173417, 1.419281232173417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.311, 1.419281232173417, 1.419281232173417, 1.419281232173417, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.3045895797680167,10.069999999999999,8.388301377513805,16.44722266881029,1.0,"{'n': 0.24608061271387394, 'w': 0.1791643084709835, 's': 0.4798541432485967, 'e': 0.19975490858869877}",1.8299999999999992,12.261,"{'n': 0.5917770743849058, 'w': 0.0, 's': 2.83626130548298, 'e': 0.3658276903385853}","{'n': 1.8183033680180902, 'w': 2.192960631690032, 's': 0.4663301795387006, 'e': 0.25320281611282025}","{'n': 0.1693868061135874, 'w': 0.0, 's': 1.0005770067534259, 'e': 0.07633620368180682}",4.565256685021495,0.497583081570997,1.3210782489553115 +134604,"{'n': [0.009571843432580947, 0.04365223318928718, 0.0412077081306871, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.009546729265131488, 0.043537700445246776, 0.04109958922031296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.022776840446335017, 0.10387340301600738, 0.09805649244711098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.015388705344256591, 0.03823897155984846, 0.03609758915249695, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[0.272675, 1.243529814160301, 1.243529814160301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.272675, 1.243529814160301, 1.243529814160301, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.18398230855470682,4.23625,6.220859943568896,12.001120910133167,1.0,"{'n': 0.04967762410092111, 'w': 0.04954728221025508, 's': 0.11821122293415849, 'e': 0.043517160895726076}",1.4720000000000004,9.862400000000004,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 2.9189368394200894, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",2.5378116259924406,0.3890748898678414,3.5552939044625274 +134702,"{'n': [0.006625226055813624, 0.021067664445265078, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.06277156892112226, 0.035779794285039676, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.09528502910140095, 0.05431246658779852, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.021409886621727322, 0.02082502875567163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[2.780055788005579, 2.780055788005579, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[2.780055788005579, 2.780055788005579, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.37067410506741055,4.751428571428571,8.85807207107317,21.01963517503163,1.0,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",0.785,5.259500000000001,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.24252724911400284, 'w': 0.3380521931996068, 's': 0.41244718364910704, 'e': 0.24050034491158814}",1.100006109178922,0.19974554707379136,1.931110951183378 +134735,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.19917565744767357, 0.18802182063060385, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.12602744792346507, 0.11896991083975106, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,4.86,4.86,9.318029640084687,nan,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",0.9719999999999999,6.5124,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.7305987223035593, 's': nan, 'e': 0.5433029858551538}",nan,0.34714285714285714,0.0 +134777,"{'n': [0.062467538416879305, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.01133411141334339, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.4344181579655751, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.10429434775778697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[5.613023105509775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[5.613023105509775, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.37420154036731834,3.9561538461538466,3.088725249781705,6.3666464335741155,1.0,"{'n': 0.28620108840791053, 'w': 0.0519283311755868, 's': 0.30795364551948234, 'e': 0.07393296990507539}",0.49500000000000005,3.3164999999999996,"{'n': 0.745729908785224, 'w': 0.0, 's': 0.8176010365126984, 'e': 0.0}","{'n': 0.30087308210839414, 'w': 2.3204023452459284, 's': 0.26847666057708885, 'e': 1.639797205753212}","{'n': 0.1403325372863898, 'w': 0.0, 's': 0.15109737684733565, 'e': 0.0}",0.331166115597006,0.14452554744525548,4.1653087372909905 +134799,"{'n': [0.023887196942390228, 0.15686880277386459, 0.03262871097696381, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.01841562411590572, 0.12093662200561958, 0.02515481737716885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.023330154407849406, 0.15321066759382307, 0.03186781885951517, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.014625315664285118, 0.09604541562492279, 0.019977446449983925, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[0.290475, 1.9075685437530783, 1.9075685437530783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.290475, 1.9075685437530783, 1.9075685437530783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.27370747250041044,4.2749999999999995,3.9028355076790002,8.689592010925233,1.0,"{'n': 0.10849698244372077, 'w': 0.08364479311709702, 's': 0.10596686414494169, 'e': 0.06642900046785633}",1.1039999999999996,7.3968,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.9300784247569867, 'w': 0.9735301027564768, 's': 0.9570203829633912, 'e': 0.6321135497267081}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",1.9644054660265255,0.6558415841584159,2.1262552936653347 +134963,"{'n': [0.02153084705796133, 0.1884538035707775, 0.15264758089232983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.04534541602041154, 0.0700490653118012, 0.05673974290255898, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.009007562754066625, 0.07884081185178665, 0.0638610575999472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[2.718762035010941, 3.8577680525164113, 3.8577680525164113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[2.718762035010941, 3.8577680525164113, 3.8577680525164113, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.6956198760029175,13.172,14.332786749268266,21.52027663409966,1.0,"{'n': 0.08005064601331699, 'w': nan, 's': 0.02975515921987067, 'e': 0.03348968182846776}",1.4050000000000007,9.4135,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': 0.0}",2.7621354275988206,0.2963093145869948,1.262781123822556 +135091,"{'n': [0.005728453373584546, 0.06077934613882807, 0.01008937145904546, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.13339398394720303, 0.13339398394720303, 0.022143401335235707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.11611224916713282, 0.11611224916713282, 0.019274633361744047, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.10433128530791798, 0.10433128530791798, 0.017318993361114386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[1.0074270557029177, 1.0074270557029177, 1.0074270557029177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[1.0074270557029177, 1.0074270557029177, 1.0074270557029177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.20148541114058355,6.62,4.21,10.767925223802001,1.0,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",1.083,7.256100000000002,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.3907878661347566, 'w': 0.6459578307770973, 's': 0.5979475493719887, 'e': 0.5616321910497085}",2.1704387222220074,1.2741176470588236,1.1129188030651123 +135160,"{'n': [0.014966112096343886, 0.17473569289368227, 0.023065111461966062, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.16540326027631758, 0.16540326027631758, 0.021833230356473925, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.17473271620805678, 0.17473271620805678, 0.0230647185394635, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.03866198557921054, 0.06796915982960297, 0.008971929097507592, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[6.17338003502627, 6.17338003502627, 6.17338003502627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[6.17338003502627, 6.17338003502627, 6.17338003502627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",1.234676007005254,23.12,11.945797029360017,28.332938228330722,1.0,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",1.0660000000000003,7.142200000000002,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.6765736184837265, 'w': 0.6580548786097552, 's': 0.6765678543253628, 'e': 0.380624315118805}",2.136128122693836,0.2665,2.7257295039745673 +135324,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.23074282726484033, 0.23074282726484033, 0.17305712044863025, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.314004069733188, 0.314004069733188, 0.23550305229989102, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,10.069999999999999,8.388301377513805,16.44722266881029,nan,"{'n': nan, 'w': 0.17095924750046765, 's': nan, 'e': 0.2326481828709483}",1.375,9.212500000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 1.7311879912593369, 's': nan, 'e': 1.1366072375405432}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,4.583333333333333,0.0 +135342,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.08032846425137105, 0.03277401341455939, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.15978474279608276, 0.06519217506080177, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.25252527526598767, 0.10303031230852297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[1.8787436084733382, 1.8787436084733382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[1.8787436084733382, 1.8787436084733382, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.2504991477964451,5.493333333333333,4.00603988441897,5.5423129251700685,1.0,"{'n': nan, 'w': 0.0, 's': 0.0, 'e': 0.0}",0.7040000000000002,4.716800000000001,"{'n': nan, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': nan, 'w': 0.16767285928344786, 's': 0.27288323873250014, 'e': 0.34915714082313254}",1.0133963991524657,0.18226537216828478,0.6327475244914781 +135450,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,21.5525,15.514020070568426,31.296681187722196,nan,"{'n': nan, 'w': 2.572786377714244e-21, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': 5.553192199453486e-22, 's': nan, 'e': nan}","{'n': nan, 'w': 5.0904069900335575e-09, 's': nan, 'e': nan}","{'n': nan, 'w': 0.0, 's': nan, 'e': nan}",nan,0.0,0.0 +135451,"{'n': [0.01480432807408466, 0.13401303518043953, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.16711796389922484, 0.09258335200017054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.24178249165890753, 0.13394750037903472, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.006120347292178946, 0.05540314378867868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[3.435457516339869, 3.435457516339869, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[3.435457516339869, 3.435457516339869, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.4580610021786492,4.482222222222223,3.794469009193301,8.821958853666349,1.0,"{'n': 0.0988139131676824, 'w': 0.06826592124415323, 's': 0.09876559137445716, 'e': 0.040851260716391766}",0.7769999999999998,5.2059,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 1.8889923871452339, 'w': 2.7912625888226237, 's': 1.8900170376390129, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",1.0672562533173673,0.4377464788732394,2.417687719851128 +135491,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.14723419675181754, 0.14723419675181754, 0.02414640826729808, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.18437896460412542, 0.18437896460412542, 0.030238150195076578, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,6.984999999999999,4.154137495718375,9.25318638507279,nan,"{'n': nan, 'w': 0.11500313678194637, 's': nan, 'e': 0.1440165379638282}",1.0820000000000003,7.249399999999998,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.7977449118843777, 's': nan, 'e': 1.7458915710596608}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.8323076923076923,0.0 +135554,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,9.145,5.285175020753806,11.771641560707216,1.0,"{'n': 4.148583345177759e-21, 'w': nan, 's': 4.148597257090472e-21, 'e': 1.863470787771375e-21}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192205460367e-22, 'w': nan, 's': 5.553192205460406e-22, 'e': 5.553192194506379e-22}","{'n': 4.0087083492501535e-09, 'w': nan, 's': 4.008701627840006e-09, 'e': 5.981265435515977e-09}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': 0.0}",0.0,0.0,2.226274371626723 +135589,"{'n': [0.005054994883949858, 0.054506846178023476, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.008733681396174618, 0.09417327600877495, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.013362598370508832, 0.1440858221701925, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,5.178,4.340107832761762,7.808689753659407,nan,"{'n': 0.030238364475724876, 'w': 0.05224381969424075, 's': nan, 'e': 0.07993343794533136}",0.7910000000000001,5.2997000000000005,"{'n': 0.0, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': nan, 'e': 2.4166780449531235}","{'n': 0.0, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +135590,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.09519677654391821, 0.04893114314357396, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.16427922261393968, 0.08443952042356499, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,4.288333333333333,3.5767462712483375,7.2506882919412075,nan,"{'n': nan, 'w': 0.02191803850765241, 's': nan, 'e': 0.03782353203523011}",0.7569999999999999,5.0719,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.15019841269841272,0.0 +135895,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,5.493333333333333,4.00603988441897,5.5423129251700685,1.0,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +135915,"{'n': [0.005013243288111724, 0.11893815630158303, 0.015937712944412125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.0075760620457505454, 0.17974049930606276, 0.024085226907012407, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.00851669557759081, 0.20205683458103937, 0.027075615833859274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.005921971641009725, 0.14049754782941223, 0.018826671409141238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[0.30945, 7.341637010676156, 7.341637010676156, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.30945, 7.341637010676156, 7.341637010676156, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.9995149347568208,8.597142857142856,3.190433830564565,9.599852907200615,1.0,"{'n': 0.06144075705820575, 'w': 0.09284987000624476, 's': 0.10437798324336796, 'e': 0.07257785030375206}",1.067,7.148899999999999,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 2.7777720644633854, 's': 2.4400339784493577, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",1.8040128012220351,3.0485714285714285,1.4381520368339133 +135958,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,0.894,3.345041703775904,9.038147620872802,1.0,"{'n': 1.114845042468611e-20, 'w': nan, 's': 1.1148426139143595e-20, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192214141807e-22, 'w': nan, 's': 5.553192214141792e-22, 'e': nan}","{'n': 2.4453842843480655e-09, 'w': nan, 's': 2.4453869478384524e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +136127,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,0.0,0.0,0.0,1.0,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",0.0,0,0.8848953742975466 +136148,"{'n': [0.006388413572539668, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.00480839566200817, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.006128879849915946, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.004826133431769716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[0.7556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.7556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.05037333333333334,6.865,5.274658756734885,11.762515729033048,1.0,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",0.34700000000000014,2.3249,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.06305380684441918, 'w': 0.05170563070938751, 's': 0.061359597651140456, 'e': 0.051848323638872575}",0.20980997421557815,0.26692307692307693,1.2699358475193505 +136207,"{'n': [0.00741412664686061, 0.040305695648169285, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.33617975765606806, 0.06387415395465294, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.21213404908571326, 0.04030546932628554, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.14763321949779382, 0.02805031170458083, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[3.3240343347639487, 3.3240343347639487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[3.3240343347639487, 3.3240343347639487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.44320457796852647,3.3979999999999997,4.462108918437558,9.42061338985164,1.0,"{'n': 0.01757050669890011, 'w': 0.02784473092198775, 's': 0.017570408038149795, 'e': 0.012228003555967894}",0.5950000000000001,3.9865,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': 0.0}",0.8196690557589739,0.30512820512820515,1.4368991600083838 +136307,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.15749056728397728, 0.13985162374817184, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.22139106307791614, 0.19659526401318952, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[4.126132930513595, 4.126132930513595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[4.126132930513595, 4.126132930513595, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.5501510574018127,5.493333333333333,4.00603988441897,5.5423129251700685,1.0,"{'n': nan, 'w': nan, 's': 0.0, 'e': 0.0}",0.9439999999999995,6.324799999999998,"{'n': nan, 'w': nan, 's': 0.0, 'e': 0.0}","{'n': nan, 'w': nan, 's': 0.0, 'e': 0.0}","{'n': nan, 'w': nan, 's': 0.2859360135101347, 'e': 0.3605708348742187}",1.2788282524682935,0,0.7113682236963207 +136412,"{'n': [0.007414555916808799, 0.23821866399385697, 0.031921300975176835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.0064074020864368945, 0.20586030799797253, 0.027585281271728317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.006512802884732213, 0.20924667902754096, 0.028039054989690487, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,9.601666666666665,2.0592319226136504,10.049911328416343,nan,"{'n': 0.0793833303218967, 'w': 0.06860032104953737, 's': nan, 'e': 0.06972878598811859}",1.067,7.148899999999999,"{'n': 0.0, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.7113333333333334,0.0 +136444,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,7.346000000000001,4.46388888750605,9.84970615890926,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0820000000000003,7.249399999999998,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.42640394088669953,1 +136448,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.18414303803989834, 0.18414303803989834, 0.024675167097346372, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[10.520365752285953, 10.520365752285953, 10.520365752285953, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[10.520365752285953, 10.520365752285953, 10.520365752285953, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",2.1040731504571903,9.322105263157894,2.328956348481052,9.781849715549937,1.0,"{'n': nan, 'w': nan, 's': 0.09562306885119758, 'e': nan}",1.067,7.148899999999999,"{'n': nan, 'w': nan, 's': 0.0, 'e': nan}","{'n': nan, 'w': nan, 's': 2.6897269757956144, 'e': nan}","{'n': nan, 'w': nan, 's': 0.0, 'e': nan}",2.134029379975031,0.8368627450980393,1 +136638,"{'n': [0.0055651008598560665, 0.20054417512994835, 0.026872919467413076, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.2130890432607908, 0.2130890432607908, 0.028553931796945965, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.30033971065852716, 0.30033971065852716, 0.04024552122824263, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[11.016216216216216, 11.016216216216216, 11.016216216216216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[11.016216216216216, 11.016216216216216, 11.016216216216216, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",2.2032432432432434,9.322105263157894,2.328956348481052,9.781849715549937,1.0,"{'n': 0.08648254186617897, 'w': 0.0918923827784282, 's': 0.1295183048037743, 'e': nan}",1.067,7.148899999999999,"{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': nan}","{'n': 2.9992243384950745, 'w': 2.809292849934685, 's': 1.8994094243919408, 'e': nan}","{'n': 0.0, 'w': 0.0, 's': 0.0, 'e': nan}",2.1340164005208275,0.7173109243697479,1.4094563759008194 +136889,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.342,3.8215436671585996,7.020861214374226,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0410000000000001,6.9746999999999995,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.28135135135135136,1 +136957,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.5218250444696233, 0.14924196271831225, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.5218250445430193, 0.14924196273930349, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,4.482222222222223,3.794469009193301,8.821958853666349,nan,"{'n': nan, 'w': 0.06797186801095702, 's': nan, 'e': 0.06797186802051744}",0.6430000000000001,4.308100000000001,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.31993358748836, 's': nan, 'e': 2.319933587160466}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.09185714285714286,0.0 +137043,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.41491888211273104, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.7566666666666673,5.214763231015915,12.207755232611278,nan,"{'n': nan, 'w': 0.027754468046811982, 's': nan, 'e': nan}",0.4450000000000002,2.9814999999999996,"{'n': nan, 'w': 0.0, 's': nan, 'e': nan}","{'n': nan, 'w': 0.0, 's': nan, 'e': nan}","{'n': nan, 'w': 0.0, 's': nan, 'e': nan}",nan,0.22820512820512823,0.0 +137173,"{'n': [0.005313212519462678, 0.09058591836460961, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.2974849978762223, 0.10828453922694495, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.006434735736531456, 0.10970696993430681, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,8.812499999999998,3.1167063945774554,9.677438662290983,nan,"{'n': 0.04363848506927003, 'w': 0.05216454536860936, 's': nan, 'e': 0.052849781245287636}",0.6820000000000002,4.569400000000001,"{'n': 0.0, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': 0.0, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +137217,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,3.8340000000000005,5.709345321488271,12.46078499251497,1.0,"{'n': nan, 'w': 2.052883802768631e-20, 's': 1.2783455238098687e-20, 'e': 1.6170148796765098e-20}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': 5.553192217714242e-22, 's': 5.553192215039927e-22, 'e': 5.553192216445885e-22}","{'n': nan, 'w': 1.8020721965197553e-09, 's': 2.2836536783179108e-09, 'e': 2.030473669696019e-09}","{'n': nan, 'w': 0.0, 's': 0.0, 'e': 0.0}",0.0,0.0,0.7905589119041424 +137246,"{'n': [0.006595583899234444, 0.3092888112184968, 0.04144470070327857, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.38856678596164, 0.38856678596164, 0.05206794931885976, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[14.848769050410317, 14.848769050410317, 14.848769050410317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[14.848769050410317, 14.848769050410317, 14.848769050410317, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",2.969753810082063,8.597142857142856,3.190433830564565,9.599852907200615,1.0,"{'n': 0.11091465616881818, 'w': nan, 's': 0.13934468335200048, 'e': nan}",1.067,7.148899999999999,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.2774478213712426, 'w': nan, 's': 1.7385843561782552, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",2.1340001690971624,0.8891666666666667,1 +137248,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.28099509565882447, 0.28099509565882447, 0.037653342818282476, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.4881679023082514, 0.4881679023082514, 0.06541449890930569, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,9.050526315789472,3.0152916829915486,9.937345400933738,nan,"{'n': nan, 'w': 0.07082797832373688, 's': nan, 'e': 0.1230482173433161}",1.067,7.148899999999999,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 2.0186449694951816}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +137325,"{'n': [0.007292865491771738, 0.35402259668794844, 0.04743902795618509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,8.940526315789473,2.6488159692174094,9.610164826242286,nan,"{'n': 0.09991315726237499, 'w': nan, 's': nan, 'e': nan}",1.067,7.148899999999999,"{'n': 0.0, 'w': nan, 's': nan, 'e': nan}","{'n': 2.5623503908518184, 'w': nan, 's': nan, 'e': nan}","{'n': 0.0, 'w': nan, 's': nan, 'e': nan}",nan,0.40777070063694265,1 +137993,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.5679811563784835, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.5712411238577716, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.9561538461538466,3.088725249781705,6.356694729336916,nan,"{'n': nan, 'w': 0.06312924678480349, 's': nan, 'e': 0.0634915815017202}",0.3689999999999999,2.4722999999999997,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 1.4330129158734135, 's': nan, 'e': 1.4249389448486978}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.12473239436619718,0.0 +138485,"{'n': [0.006619209778027068, 0.015299618106515192, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.00658843885657076, 0.01522849430732244, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.052625, 3.378812199036918, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.052625, 3.378812199036918, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.22876247993579452,2.95,4.678048471317928,11.760799257618393,1.0,"{'n': 0.02073551950581765, 'w': nan, 's': 0.020639125666754358, 'e': nan}",0.5179999999999999,3.4705999999999992,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.3957289718749032,1.48,1 +138527,"{'n': [0.012192780309694288, 0.8266291735385958, 0.11076830925417183, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.8266142917936955, 0.8266142917936955, 0.11076631510035519, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[17.435593220338983, 17.435593220338983, 17.435593220338983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[17.435593220338983, 17.435593220338983, 17.435593220338983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",3.4871186440677966,8.962,3.186402778473975,9.947933884297521,1.0,"{'n': 0.11212032790270073, 'w': nan, 's': 0.11211830940859065, 'e': nan}",1.067,7.148899999999999,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.249387739945429, 'w': nan, 's': 2.249434246727492, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",2.1340000073549343,0,1 +138694,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.5124698046566092, 0.5124698046566092, 0.06867095382398562, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,8.597142857142856,3.190433830564565,9.599852907200615,nan,"{'n': nan, 'w': 0.12570969188926323, 's': nan, 'e': nan}",1.067,7.148899999999999,"{'n': nan, 'w': 0.0, 's': nan, 'e': nan}","{'n': nan, 'w': 1.968187289803052, 's': nan, 'e': nan}","{'n': nan, 'w': 0.0, 's': nan, 'e': nan}",nan,0.485,0.0 +138788,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,2.1658333333333335,4.845913154974567,10.94613623800191,1.0,"{'n': 9.31341611429294e-21, 'w': nan, 's': 9.38339059889941e-21, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192212864103e-22, 'w': nan, 's': 5.553192212919603e-22, 'e': nan}","{'n': 2.6754686514004156e-09, 'w': nan, 's': 2.6654741364684745e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +138850,"{'n': [0.005437808231650633, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.4061116681281587, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[9.567062818336163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[9.567062818336163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.6378041878890776,9.483571428571429,2.33795883851967,9.781721832884097,1.0,"{'n': 0.018135968780976765, 'w': nan, 's': 0.01994424693815653, 'e': nan}",0.42900000000000016,2.8743,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.28601198324737886,0.11753424657534246,1 +138949,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,2.1658333333333335,4.845913154974567,10.94613623800191,1.0,"{'n': 1.1996831311297488e-20, 'w': nan, 's': 1.1996902227705691e-20, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192214630768e-22, 'w': nan, 's': 5.553192214630804e-22, 'e': nan}","{'n': 2.357333859219351e-09, 'w': nan, 's': 2.3573268918416814e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +139162,"{'n': [0.0069829883299946304, 0.24111774979590692, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.006942623886214544, 0.23972399351334053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.365925, 25.99822380106572, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.365925, 25.99822380106572, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",1.757609920071048,3.9561538461538466,3.088725249781705,6.356694729336916,1.0,"{'n': 0.07481631489906726, 'w': nan, 's': 0.07438384690773395, 'e': nan}",0.7430000000000001,4.9780999999999995,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.431479414186785, 'w': nan, 's': 2.4460260030098455, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.7939164365476254,0.4016216216216216,1 +139635,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,1.6353846153846152,3.9873098997552714,8.673858301657589,1.0,"{'n': 9.616082209444753e-21, 'w': nan, 's': 9.616111968069488e-21, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192213099792e-22, 'w': nan, 's': 5.553192213099813e-22, 'e': nan}","{'n': 2.633026842387749e-09, 'w': nan, 's': 2.6330227682193843e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +139736,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,1.7716666666666665,4.120932000841019,8.693958758837391,1.0,"{'n': 1.5341098208787314e-20, 'w': nan, 's': 1.5341214726091718e-20, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192216145217e-22, 'w': nan, 's': 5.553192216145262e-22, 'e': nan}","{'n': 2.0846163763819006e-09, 'w': nan, 's': 2.084608459983279e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +139788,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,1.9327272727272726,4.267858928632803,8.79622436814497,1.0,"{'n': 1.2938792511990067e-20, 'w': nan, 's': 1.3168499510606416e-20, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192215116282e-22, 'w': nan, 's': 5.553192215226708e-22, 'e': nan}","{'n': 2.269904030592256e-09, 'w': nan, 's': 2.2500192012108044e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +139939,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,1.7716666666666665,4.120932000841019,8.693958758837391,1.0,"{'n': 1.3262752646519416e-20, 'w': nan, 's': 1.3299872944967069e-20, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192215271184e-22, 'w': nan, 's': 5.553192215288569e-22, 'e': nan}","{'n': 2.24200994804381e-09, 'w': nan, 's': 2.2388790072405383e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +140019,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,2.1658333333333335,4.845913154974567,10.94613623800191,1.0,"{'n': 8.838818697198892e-21, 'w': nan, 's': 9.046451877251558e-21, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192212470437e-22, 'w': nan, 's': 5.553192212646473e-22, 'e': nan}","{'n': 2.746358687104709e-09, 'w': nan, 's': 2.7146586744123285e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +140294,"{'n': [0.007309785318884687, 0.591885450921837, 0.35986635416047674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,11.616,2.8479999999999994,13.00315887691916,nan,"{'n': 0.21267578609357257, 'w': nan, 's': nan, 'e': nan}",1.3039999999999998,8.7368,"{'n': 0.0, 'w': nan, 's': nan, 'e': nan}","{'n': 1.22371859807048, 'w': nan, 's': nan, 'e': nan}","{'n': 0.0, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +140801,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.540734095506845, 0.19682721076449164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.5286701291034204, 0.19243592699364506, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,9.033888888888889,3.128167974476948,11.561347160302386,nan,"{'n': nan, 'w': 0.04697627911779109, 's': nan, 'e': 0.04592822193452113}",0.6820000000000002,4.569400000000001,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.13307317073170732,0.0 +142538,"{'n': [0.006580979542878411, 0.6237895301306551, 0.08358779703750777, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.47518893726177486, 0.47518893726177486, 0.06367531759307783, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[29.322274881516588, 29.322274881516588, 29.322274881516588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[29.322274881516588, 29.322274881516588, 29.322274881516588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",5.864454976303318,8.597142857142856,3.190433830564565,9.599852907200615,1.0,"{'n': 0.0887424878187048, 'w': nan, 's': 0.06760204594601607, 'e': nan}",1.067,7.148899999999999,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.917333372217833, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",2.134000000000003,3.0485714285714285,1 +144499,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.6114966806006519, 0.6114966806006519, 0.08194055520048735, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,9.692941176470587,2.1693364794899095,9.98073538023927,nan,"{'n': nan, 'w': 0.06906931551075825, 's': nan, 'e': nan}",1.067,7.148899999999999,"{'n': nan, 'w': 0.0, 's': nan, 'e': nan}","{'n': nan, 'w': 0.0, 's': nan, 'e': nan}","{'n': nan, 'w': 0.0, 's': nan, 'e': nan}",nan,0.6276470588235294,0.0 +144774,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +144777,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,4.13,0.0,4.13,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.41300000000000014,2.7670999999999997,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +145003,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,2.05,2.05,3.6765258215962437,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.41000000000000003,2.747,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +145108,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,6.52,0.0,6.519999999999999,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.6519999999999999,4.3684,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,2.1733333333333333,1 +146558,"{'n': [0.006279867624494521, 0.712452818217507, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.00643469487266609, 0.7300180147936968, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.18595, 21.748538011695906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.18595, 21.748538011695906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",1.462299200779727,14.103,5.3401386686115195,27.750782980977185,1.0,"{'n': 0.06491180978930043, 'w': nan, 's': 0.06651218060672236, 'e': nan}",0.9849999999999998,6.599500000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.8918540437601535,1.23125,1 +146881,"{'n': [0.006232887087803631, 0.6850878725404558, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.7224237871425861, 0.7007510735283086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[18.77903682719547, 18.77903682719547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[18.77903682719547, 18.77903682719547, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",2.503871576959396,13.551304347826088,3.089892786022119,13.313526639051561,1.0,"{'n': 0.17025239429722483, 'w': nan, 's': 0.17414488397253008, 'e': nan}",0.9849999999999998,6.599500000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 1.2468571080316608, 'w': nan, 's': 1.210651053147299, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",1.3133333342126476,0.38627450980392153,1 +146925,"{'n': [0.006242088322626667, 0.7113490965956316, 0.7113490965956316, 0.16503299041018654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.034761904761906,3.822385965221223,25.190828977882394,nan,"{'n': 0.09256766844271945, 'w': nan, 's': nan, 'e': nan}",1.6159999999999999,10.827200000000003,"{'n': 0.0, 'w': nan, 's': nan, 'e': nan}","{'n': 0.0, 'w': nan, 's': nan, 'e': nan}","{'n': 0.0, 'w': nan, 's': nan, 'e': nan}",nan,0.49723076923076925,1 +147122,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.5072388653434236, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,7.346000000000001,4.46388888750605,9.84970615890926,nan,"{'n': nan, 'w': nan, 's': nan, 'e': 0.03628388177168262}",0.4269999999999998,2.8609000000000004,"{'n': nan, 'w': nan, 's': nan, 'e': 0.0}","{'n': nan, 'w': nan, 's': nan, 'e': 2.7677673086307317}","{'n': nan, 'w': nan, 's': nan, 'e': 0.0}",nan,0,0.0 +147127,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.7384457645487352, 0.5508805403533565, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.6932557175612193, 0.5171687653006697, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,12.419999999999998,6.749430952444672,29.181240083300278,nan,"{'n': nan, 'w': 0.0652680635118612, 's': nan, 'e': 0.061273908492653247}",0.8729999999999998,5.849100000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +147134,"{'n': [0.006407856215872229, 0.7227465731855885, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.006279867624494521, 0.7083106506697306, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.17575, 20.436046511627907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.17575, 20.436046511627907, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",1.3741197674418606,14.31739130434783,5.015339268416016,27.286229369086517,1.0,"{'n': 0.06300874794382795, 'w': nan, 's': 0.06175023017717953, 'e': nan}",0.9849999999999998,6.599500000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.8809727661793244,0.5969696969696969,1 +147262,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.7251591297457278, 0.7251591297457278, 0.7251591297457278, 0.0449598660442352, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,14.5765,2.216329792697829,14.43068312184947,nan,"{'n': nan, 'w': 0.08659677661385515, 's': nan, 'e': nan}",1.5309999999999997,10.257700000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': nan}","{'n': nan, 'w': 0.0, 's': nan, 'e': nan}","{'n': nan, 'w': 0.0, 's': nan, 'e': nan}",nan,1.5310000000000001,0.0 +147579,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,10.069999999999999,8.388301377513805,16.44722266881029,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.8299999999999992,12.261,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,1.7023255813953488,1 +148225,"{'n': [0.006164888465764601, 0.725280995972306, 0.725280995972306, 0.19002362094474395, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.06942857142857,0.7881332115725571,18.00904383907632,nan,"{'n': 0.10941908484036798, 'w': nan, 's': nan, 'e': nan}",1.631,10.927699999999996,"{'n': 0.0, 'w': nan, 's': nan, 'e': nan}","{'n': 0.0, 'w': nan, 's': nan, 'e': nan}","{'n': 0.0, 'w': nan, 's': nan, 'e': nan}",nan,1.9188235294117646,1 +148285,"{'n': [0.006343064111684507, 0.7549413728017142, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.7647714218163965, 0.7418282791619045, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[20.880368098159508, 20.880368098159508, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[20.880368098159508, 20.880368098159508, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",2.784049079754601,13.625833333333333,3.0458796166114133,13.400248837845224,1.0,"{'n': 0.10952878133035976, 'w': nan, 's': 0.10762630092912137, 'e': nan}",0.9849999999999998,6.599500000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.1328547368700623, 'w': nan, 's': 2.1758147974493065, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",1.313333333400356,0,1 +148356,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.7835335153485932, 0.7835335153485932, 0.7835335153485932, 0.7835335153485932, 0.059548547166492924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,17.01742857142857,2.0390506794754724,17.02202450032237,nan,"{'n': nan, 'w': nan, 's': nan, 'e': 0.12702178628331567}",2.038,13.654599999999995,"{'n': nan, 'w': nan, 's': nan, 'e': 0.0}","{'n': nan, 'w': nan, 's': nan, 'e': 0.0}","{'n': nan, 'w': nan, 's': nan, 'e': 0.0}",nan,0.7838461538461539,0.0 +148367,"{'n': [0.006375389921533323, 0.736205740938967, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0063699530018190495, 0.7355779061624378, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.1628, 19.38095238095238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.1628, 19.38095238095238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",1.3029168253968253,14.31739130434783,5.015339268416016,27.286229369086517,1.0,"{'n': 0.08036324106232362, 'w': nan, 's': 0.08029470745182885, 'e': nan}",0.9849999999999998,6.599500000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.992521427170659, 'w': nan, 's': 2.9952004436101287, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.8668504494495402,0,1 +148615,"{'n': [0.006388233157480624, 0.7443346742049496, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.761929623025166, 0.739071734334411, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[21.05105105105105, 21.05105105105105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[21.05105105105105, 21.05105105105105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",2.8068068068068066,13.7456,3.0414708020955916,13.522635801657236,1.0,"{'n': 0.08208302347324478, 'w': nan, 's': 0.0815026420508784, 'e': nan}",0.9849999999999998,6.599500000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.9266061152748852, 'w': nan, 's': 2.948572439707434, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",1.3133333333876822,0,1 +148989,"{'n': [0.0063699530018190495, 0.7921608220210868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.8215200276759268, 0.7968744268456489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[21.721153846153847, 21.721153846153847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[21.721153846153847, 21.721153846153847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",2.896153846153846,14.31739130434783,5.015339268416016,27.286229369086517,1.0,"{'n': 0.07746103455627992, 'w': nan, 's': 0.07792195195594191, 'e': nan}",0.9849999999999998,6.599500000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",1.313333333357184,0,1 +149031,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.455574169765235, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.455311943669095, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,5.075,4.015054794146651,8.940967861374409,nan,"{'n': nan, 'w': 0.0210311468132919, 's': nan, 'e': 0.021019041395794153}",0.30100000000000005,2.0167,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.10561403508771929,0.0 +149105,"{'n': [0.006388282236834043, 0.7919020791985969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.8163876239591852, 0.7918959952404097, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[22.415335463258785, 22.415335463258785, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[22.415335463258785, 22.415335463258785, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",2.9887113951011712,13.805769230769233,2.9975428053361446,13.585465736040604,1.0,"{'n': 0.06519568371097638, 'w': nan, 's': 0.06519518283110234, 'e': nan}",0.9849999999999998,6.599500000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",1.3133333333434833,0,1 +149423,"{'n': [0.006215695122818832, 0.8232708771945473, 0.8150381684226017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.006215695122818832, 0.8232708771945473, 0.8150381684226017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.38155, 50.5364238410596, 50.5364238410596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.38155, 50.5364238410596, 50.5364238410596, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",6.763626512141281,15.816315789473684,0.571936174757557,15.832151520806121,1.0,"{'n': 0.12450999516424277, 'w': nan, 's': 0.12450999516424277, 'e': nan}",1.4950000000000006,10.016500000000004,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.7891892155452984, 'w': nan, 's': 2.7891892155452984, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",2.611506661233264,1.5736842105263158,1 +149642,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.7758474340311049, 0.7758474340311049, 0.7758474340311049, 0.2513745686260781, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.7783135870073552, 0.7783135870073552, 0.7783135870073552, 0.2521736021903832, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.176166666666667,1.267976198076639,16.162257736886126,nan,"{'n': nan, 'w': 0.09950880903201459, 's': nan, 'e': 0.09982511341712072}",1.6619999999999997,11.135400000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.6925,0.0 +149803,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,2.433333333333333,4.781155137040049,7.867646098596148,1.0,"{'n': 3.95924487601195e-21, 'w': nan, 's': 3.95927475638059e-21, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.5531922049343e-22, 'w': nan, 's': 5.553192204934387e-22, 'e': nan}","{'n': 4.103440955183606e-09, 'w': nan, 's': 4.103425470963978e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +149855,"{'n': [0.006198109467957859, 0.7946294189689563, 0.7946294189689563, 0.18435402520079788, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.006211101497516112, 0.796295063784117, 0.796295063784117, 0.18474045479791515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.332525, 42.631410256410255, 42.631410256410255, 42.631410256410255, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.332525, 42.631410256410255, 42.631410256410255, 42.631410256410255, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",8.548450384615384,14.932641509433958,2.210079953256534,14.808577201329596,1.0,"{'n': 0.10067435974199682, 'w': nan, 's': 0.10088538606611835, 'e': nan}",1.6159999999999999,10.827200000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",3.8392202694424205,0,1 +149861,"{'n': [0.006293947072239693, 0.8419996083263803, 0.8419996083263803, 0.2677558754477889, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0062505859273847665, 0.8361987862722096, 0.8361987862722096, 0.26591121403456264, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.4704, 62.929765886287626, 62.929765886287626, 62.929765886287626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.4704, 62.929765886287626, 62.929765886287626, 62.929765886287626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",12.617313177257525,16.006233766233763,1.1710856756185954,15.999109486314218,1.0,"{'n': 0.10772226831925087, 'w': nan, 's': 0.10698013292677283, 'e': nan}",1.6589999999999996,11.1153,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",4.1029396500073,0.7373333333333333,1 +149904,"{'n': [0.006211211960284936, 0.7963092256775559, 0.7963092256775559, 0.2118182540302296, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.27717948717948,1.4960142751237684,16.264682562076757,nan,"{'n': 0.1148339459667374, 'w': nan, 's': nan, 'e': nan}",1.6329999999999996,10.941100000000002,"{'n': 0.0, 'w': nan, 's': nan, 'e': nan}","{'n': 0.0, 'w': nan, 's': nan, 'e': nan}","{'n': 0.0, 'w': nan, 's': nan, 'e': nan}",nan,1.1907291666666666,1 +149937,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.7717912703445785, 0.7717912703445785, 0.7717912703445785, 0.20838364299303644, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.7696256155736817, 0.7696256155736817, 0.7696256155736817, 0.20779891620489427, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.29109090909091,1.4264420744409976,16.272797900602598,nan,"{'n': nan, 'w': 0.1106449871232778, 's': nan, 'e': 0.11033451607566884}",1.6350000000000007,10.9545,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.45103448275862074,0.0 +149986,"{'n': [0.006265692159458752, 0.7807716086552963, 0.7354868553532892, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.7807716086332265, 0.7807716086332265, 0.7354868553324995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[46.16822429906542, 46.16822429906542, 46.16822429906542, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[46.16822429906542, 46.16822429906542, 46.16822429906542, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",9.233644859813085,16.593684210526316,1.7206084517218483,16.590331488156536,1.0,"{'n': 0.1292690260466696, 'w': nan, 's': 0.12926902604301563, 'e': nan}",1.471,9.855700000000002,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.624629413957808, 'w': nan, 's': 2.624629414046555, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",2.942,0.6004081632653061,1 +150028,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.7862293620613843, 0.7862293620613843, 0.7862293620613843, 0.20913701030832796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[61.19303797468354, 61.19303797468354, 61.19303797468354, 61.19303797468354, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[61.19303797468354, 61.19303797468354, 61.19303797468354, 61.19303797468354, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",16.31814345991561,16.27717948717948,1.4960142751237684,16.264682562076757,1.0,"{'n': nan, 'w': nan, 's': 0.10666441809177646, 'e': nan}",1.6329999999999996,10.941100000000002,"{'n': nan, 'w': nan, 's': 0.0, 'e': nan}","{'n': nan, 'w': nan, 's': 0.0, 'e': nan}","{'n': nan, 'w': nan, 's': 0.0, 'e': nan}",4.354666666666666,1.327642276422764,1 +150033,"{'n': [0.0062505859273847665, 0.7764703015384803, 0.7764703015384803, 0.24691755588923672, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.010126582278478,1.1564190621345127,16.003681238615673,nan,"{'n': 0.11229783680807291, 'w': nan, 's': nan, 'e': nan}",1.6589999999999996,11.1153,"{'n': 0.0, 'w': nan, 's': nan, 'e': nan}","{'n': 0.0, 'w': nan, 's': nan, 'e': nan}","{'n': 0.0, 'w': nan, 's': nan, 'e': nan}",nan,0.6463636363636364,1 +150107,"{'n': [0.006281500375390674, 0.8431544128041173, 0.7942514568614786, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.8410325046253359, 0.8410325046253359, 0.7922526193570666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[48.32214765100671, 48.32214765100671, 48.32214765100671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[48.32214765100671, 48.32214765100671, 48.32214765100671, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",9.664429530201343,16.593214285714286,1.7358994242825498,16.58980873780048,1.0,"{'n': 0.12390155070545837, 'w': nan, 's': 0.12358973627406472, 'e': nan}",1.471,9.855700000000002,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.7603562793700864, 'w': nan, 's': 2.768584481128841, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",2.942,0.6129166666666667,1 +150138,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8327971501703674, 0.8327971501703674, 0.8327971501703674, 0.2698262766551992, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8455777063867244, 0.8455777063867244, 0.8455777063867244, 0.27396717686929883, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.028541666666667,2.2074249605812706,14.916354375896697,nan,"{'n': nan, 'w': 0.10499595904855458, 's': nan, 'e': 0.10660728391540347}",1.6619999999999997,11.135400000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.3296000000000001,0.0 +150294,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.7829312694855821, 0.7829312694855821, 0.7829312694855821, 0.051673463786048424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.7827831339690665, 0.7827831339690665, 0.7827831339690665, 0.051663686841958406, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.49546875,1.659107374546155,16.49023501226399,nan,"{'n': nan, 'w': 0.12496235246806961, 's': nan, 'e': 0.1249387088056571}",1.5330000000000004,10.271099999999999,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.847831426807557, 's': nan, 'e': 2.848469809572135}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.2264,0.0 +150376,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.786602432822841, 0.786602432822841, 0.786602432822841, 0.2123826568621673, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.7818187582062338, 0.7818187582062338, 0.7818187582062338, 0.21109106471568334, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.21,1.0770440146641216,16.217181155648095,nan,"{'n': nan, 'w': 0.138669306461989, 's': nan, 'e': 0.13782599755046654}",1.6350000000000007,10.9545,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.6799555115009563, 's': nan, 'e': 2.699974462777214}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.2111111111111112,0.0 +150549,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.7699428434786211, 0.7699428434786211, 0.7699428434786211, 0.050816227669589, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.7718444022211253, 0.7718444022211253, 0.7718444022211253, 0.050941730546594274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.616727272727267,1.7427491913071285,16.611543226322095,nan,"{'n': nan, 'w': 0.1322344584662303, 's': nan, 'e': 0.13256104321558745}",1.5330000000000004,10.271099999999999,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.661798751750801, 's': nan, 'e': 2.6539011322041666}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.2264,0.0 +150576,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8292286976495429, 0.8292286976495429, 0.8292286976495429, 0.2686700980384521, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.7976328528223472, 0.7976328528223472, 0.7976328528223472, 0.25843304431444064, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.004137931034485,0.8041659514843649,16.009095698524852,nan,"{'n': nan, 'w': 0.10830506441445545, 's': nan, 'e': 0.10417835001233913}",1.6619999999999997,11.135400000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.582857142857143,0.0 +150678,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8733374465341185, 0.8733374465341185, 0.8733374465341185, 0.059386946364320035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8733710255721474, 0.8733710255721474, 0.8733710255721474, 0.05938922973890601, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.942972972972973,1.0788366228159845,15.936666179550889,nan,"{'n': nan, 'w': 0.10536916659284663, 's': nan, 'e': 0.10537321794237496}",1.5339999999999998,10.277800000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +150831,"{'n': [0.006227035687638965, 0.8559499226995142, 0.8559499226995142, 0.22425887974727246, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.8524268093195954, 0.8524268093195954, 0.8524268093195954, 0.22333582404173374, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[37.35395189003437, 37.35395189003437, 37.35395189003437, 37.35395189003437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[37.35395189003437, 37.35395189003437, 37.35395189003437, 37.35395189003437, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",9.961053837342497,16.807954545454546,1.8773235052564672,16.80667822410147,1.0,"{'n': 0.1367601600928095, 'w': nan, 's': 0.13619725151943965, 'e': nan}",1.631,10.927699999999996,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.7189474145682695, 'w': nan, 's': 2.732611541701905, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",4.349333333333333,0.4306270627062706,1 +151034,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.837699175754678, 0.837699175754678, 0.837699175754678, 0.055288145599808755, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8440726481952281, 0.8440726481952281, 0.8440726481952281, 0.05570879478088507, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.15853333333333,1.3703485623089555,16.139067796610174,nan,"{'n': nan, 'w': 0.10520626851563056, 's': nan, 'e': 0.10600671009700545}",1.5330000000000004,10.271099999999999,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.6523404255319148,0.0 +151057,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8651052925855921, 0.8651052925855921, 0.8651052925855921, 0.2335784289981101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8666623218366991, 0.8666623218366991, 0.8666623218366991, 0.23399882689590903, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.292444444444445,1.2177304127041795,16.30555421298534,nan,"{'n': nan, 'w': 0.1376140583176409, 's': nan, 'e': 0.13786173812725538}",1.6350000000000007,10.9545,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.7050427164628768, 's': nan, 'e': 2.6991212500586252}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.4217391304347828,0.0 +151078,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,9.24722222222222,2.37040738541701,9.7384211834908,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.067,7.148899999999999,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,2.2463157894736843,1 +151119,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8586255471843233, 0.8586255471843233, 0.8586255471843233, 0.058386537208533956, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8482584707042171, 0.8482584707042171, 0.8482584707042171, 0.057681576007886745, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.811323529411759,0.5633014667010405,15.81622244648643,nan,"{'n': nan, 'w': 0.11919149129526477, 's': nan, 'e': 0.1177523688395121}",1.5339999999999998,10.277800000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.6458947368421053,0.0 +151134,"{'n': [0.006181607015891471, 0.870648875477672, 0.870648875477672, 0.22811000537514983, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.8682941501076903, 0.8682941501076903, 0.8682941501076903, 0.2274930673282146, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[30.904929577464788, 30.904929577464788, 30.904929577464788, 30.904929577464788, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[30.904929577464788, 30.904929577464788, 30.904929577464788, 30.904929577464788, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",8.24131455399061,15.96941176470588,0.5378713009002988,15.945264417845483,1.0,"{'n': 0.15197443641830305, 'w': nan, 's': 0.15156341186971392, 'e': nan}",1.631,10.927699999999996,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.386755435964713, 'w': nan, 's': 2.3948775705311527, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",4.349333333333334,1.3048,1 +151198,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8399626389440071, 0.8399626389440071, 0.8399626389440071, 0.05543753417030448, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8377382333980126, 0.8377382333980126, 0.8377382333980126, 0.05529072340426884, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.43214285714285,1.6097913732239097,16.428393446055598,nan,"{'n': nan, 'w': 0.1148078034569844, 's': nan, 'e': 0.11450376717859202}",1.5330000000000004,10.271099999999999,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.26,0.0 +151231,"{'n': [0.006201475383231173, 0.7751844229038967, 0.7751844229038967, 0.20309831880082072, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.7803692519753902, 0.7803692519753902, 0.7803692519753902, 0.20445674401755204, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[35.628125, 35.628125, 35.628125, 35.628125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[35.628125, 35.628125, 35.628125, 35.628125, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",9.500833333333333,16.774444444444445,1.8696078680426311,16.77523971184896,1.0,"{'n': 0.1449004745573017, 'w': nan, 's': 0.1458696428877792, 'e': nan}",1.631,10.927699999999996,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.5328002127972504, 'w': nan, 's': 2.511977308287592, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",4.349333333333333,1.6945454545454544,1 +151264,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.9561538461538466,3.088725249781705,6.356694729336916,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.9209999999999998,6.1707,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.5262857142857144,1 +151268,"{'n': [0.0062089252112891855, 0.7960160527293828, 0.7960160527293828, 0.18467572423321682, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.006235194667276613, 0.7993839317021298, 0.7993839317021298, 0.18545707215489413, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.361725, 46.375, 46.375, 46.375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.361725, 46.375, 46.375, 46.375, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",9.299115,14.932641509433958,2.210079953256534,14.808577201329596,1.0,"{'n': 0.12859889286421128, 'w': nan, 's': 0.12914298428763285, 'e': nan}",1.6159999999999999,10.827200000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.9013148327607046, 'w': nan, 's': 2.886711640595533, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",3.8762550643257176,0.505,1 +151278,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8661422415572925, 0.8661422415572925, 0.8661422415572925, 0.053700818976552225, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8585070538485904, 0.8585070538485904, 0.8585070538485904, 0.05322743733861269, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.588723404255315,0.46573491237095044,15.601024446142091,nan,"{'n': nan, 'w': 0.11773198012872689, 's': nan, 'e': 0.1166941531709009}",1.5309999999999997,10.257700000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.658494623655914,0.0 +151281,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8434414348805817, 0.8434414348805817, 0.8434414348805817, 0.2732750249013086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8435782613778637, 0.8435782613778637, 0.8435782613778637, 0.273319356686428, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.910833333333334,0.5760708627320854,15.925745008807986,nan,"{'n': nan, 'w': 0.11965778577218703, 's': nan, 'e': 0.11967719714447993}",1.6619999999999997,11.135400000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.2784615384615385,0.0 +151298,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8964681843375952, 0.8964681843375952, 0.8964681843375952, 0.8964681843375952, 0.06813158200965705, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8948171833880176, 0.8948171833880176, 0.8948171833880176, 0.8948171833880176, 0.06800610593748917, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.56980392156862,1.8411404076737148,16.56365869241144,nan,"{'n': nan, 'w': 0.14256329089197448, 's': nan, 'e': 0.14230073597619522}",2.038,13.654599999999995,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.7366265060240963,0.0 +151348,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8320324515160982, 0.8320324515160982, 0.8320324515160982, 0.22464876190934674, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8528840561654188, 0.8528840561654188, 0.8528840561654188, 0.23027869516466334, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.446451612903225,1.5120612899062265,16.424824256697086,nan,"{'n': nan, 'w': 0.09553811014709598, 's': nan, 'e': 0.09793239524751549}",1.6350000000000007,10.9545,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.6411764705882353,0.0 +151351,"{'n': [0.006215635768487894, 0.8723699324193535, 0.8636462330951598, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.006215695122818832, 0.8723782628517659, 0.8636544802232481, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.3719, 52.19649122807017, 52.19649122807017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.3719, 52.19649122807017, 52.19649122807017, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",6.984325497076023,15.816315789473684,0.571936174757557,15.832151520806121,1.0,"{'n': 0.11599348769005793, 'w': nan, 's': 0.11599459533473208, 'e': nan}",1.4950000000000006,10.016500000000004,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",2.6008302265216847,1.5736842105263158,1 +151408,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8042529041761223, 0.8042529041761223, 0.8042529041761223, 0.05468919748397629, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8042516372696406, 0.8042516372696406, 0.8042516372696406, 0.05468911133433554, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.48698113207547,1.4912886473894584,15.451507194483124,nan,"{'n': nan, 'w': 0.13686437070686736, 's': nan, 'e': 0.13686415511006017}",1.5339999999999998,10.277800000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.5548761881249793, 's': nan, 'e': 2.5548810836801015}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +151595,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.824273482717753, 0.824273482717753, 0.824273482717753, 0.0494564089630653, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8297038843074492, 0.8297038843074492, 0.8297038843074492, 0.04978223305844706, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.787857142857144,1.0055590383422728,15.795459473247877,nan,"{'n': nan, 'w': 0.09146688044117066, 's': nan, 'e': 0.09206947400188371}",1.5300000000000007,10.251000000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.38734177215189874,0.0 +151636,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8876847307006304, 0.8876847307006304, 0.8876847307006304, 0.2876098527470044, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8876778737729198, 0.8876778737729198, 0.8876778737729198, 0.2876076311024262, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.920204081632654,0.573106428823522,15.934237288135591,nan,"{'n': nan, 'w': 0.12166925747267703, 's': nan, 'e': 0.12166831763753722}",1.6619999999999997,11.135400000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +151671,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,4.86,4.86,9.318029640084687,1.0,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +151700,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8965578855362251, 0.8965578855362251, 0.8965578855362251, 0.06096593621646328, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8944459735818483, 0.8944459735818483, 0.8944459735818483, 0.06082232620356566, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.817377049180326,0.5685469014473575,15.82676730225989,nan,"{'n': nan, 'w': 0.13086412732383582, 's': nan, 'e': 0.13055586667569147}",1.5339999999999998,10.277800000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.6971053755781393, 's': nan, 'e': 2.7047498090843356}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.296338028169014,0.0 +151878,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9235629125055775, 0.9235629125055775, 0.9235629125055775, 0.05541377475033478, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9138953585991624, 0.9138953585991624, 0.9138953585991624, 0.054833721515949875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.502545454545448,1.795550275928922,16.498425212408613,nan,"{'n': nan, 'w': 0.09768688659459819, 's': nan, 'e': 0.09666433227878987}",1.5300000000000007,10.251000000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.67007299270073,0.0 +151911,"{'n': [0.006193111084465884, 0.8943120699589725, 0.8943120699589725, 0.2343097623292506, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0061930407391035105, 0.8943019117839004, 0.8943019117839004, 0.2343071008873817, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.2405, 34.72924187725632, 34.72924187725632, 34.72924187725632, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.2405, 34.72924187725632, 34.72924187725632, 34.72924187725632, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",6.961881708784597,16.86813953488372,1.8707519391248317,16.861250539025434,1.0,"{'n': 0.12981244069105702, 'w': nan, 's': 0.12981096619737256, 'e': nan}",1.631,10.927699999999996,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.895533413750143, 'w': nan, 's': 2.895572806009137, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",3.7420515338648466,1.9188235294117646,1 +151926,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8786057324385362, 0.8786057324385362, 0.8786057324385362, 0.2846682573100859, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8731402647114924, 0.8731402647114924, 0.8731402647114924, 0.2828974457665237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.639777777777777,1.3729408644526362,15.615330368983539,nan,"{'n': nan, 'w': 0.11985642175396614, 's': nan, 'e': 0.11911084113596002}",1.6619999999999997,11.135400000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.9106849315068494,0.0 +151930,"{'n': [0.006201405037800056, 0.908630774769239, 0.908630774769239, 0.23806126298954036, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.9086410817921133, 0.9086410817921133, 0.9086410817921133, 0.23806396342953345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[40.20879120879121, 40.20879120879121, 40.20879120879121, 40.20879120879121, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[40.20879120879121, 40.20879120879121, 40.20879120879121, 40.20879120879121, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",10.722344322344323,16.807954545454546,1.8773235052564672,16.80667822410147,1.0,"{'n': 0.1460293090929657, 'w': nan, 's': 0.14603096557156064, 'e': nan}",1.631,10.927699999999996,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.508572560994238, 'w': nan, 's': 2.5085372758649536, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",4.349333333333333,1.8122222222222222,1 +151961,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9298117496366399, 0.9298117496366399, 0.9298117496366399, 0.9298117496366399, 0.07066569297238444, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9260791932199886, 0.9260791932199886, 0.9260791932199886, 0.9260791932199886, 0.07038201868471894, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.679166666666664,1.8525419848293732,16.678602856040133,nan,"{'n': nan, 'w': 0.14173324119622205, 's': nan, 'e': 0.14116427944768908}",2.038,13.654599999999995,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.45121771217712175,0.0 +152074,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9125135713741931, 0.9125135713741931, 0.9125135713741931, 0.05475081428245171, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9158215941615457, 0.9158215941615457, 0.9158215941615457, 0.05494929564969287, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.294032258064508,1.6688797282448224,16.27745043826107,nan,"{'n': nan, 'w': 0.08058133446304667, 's': nan, 'e': 0.08087345602594856}",1.5300000000000007,10.251000000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.8742857142857143,0.0 +152075,"{'n': [0.0062417253086400415, 0.9281375923628314, 0.9281375923628314, 0.21532792142817692, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.9281375926059302, 0.9281375926059302, 0.9281375926059302, 0.21532792148457586, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[46.078066914498145, 46.078066914498145, 46.078066914498145, 46.078066914498145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[46.078066914498145, 46.078066914498145, 46.078066914498145, 46.078066914498145, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",12.287484510532838,15.237254901960782,3.357463490775102,24.525330881177045,1.0,"{'n': 0.09634334175205142, 'w': nan, 's': 0.0963433417772858, 'e': nan}",1.6159999999999999,10.827200000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",4.309333333333333,0.505,1 +152133,"{'n': [0.006278214637870758, 0.8719742552598275, 0.8719742552598275, 0.20229802722028, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0061763681196902315, 0.8578289055125321, 0.8578289055125321, 0.19901630607890747, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.345325, 47.96180555555556, 47.96180555555556, 47.96180555555556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.345325, 47.96180555555556, 47.96180555555556, 47.96180555555556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",9.615382777777779,14.925576923076921,2.2306366920175837,14.799708048570102,1.0,"{'n': 0.1409305510706355, 'w': nan, 's': 0.13864434603310352, 'e': nan}",1.6159999999999999,10.827200000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.5968838907955605, 'w': nan, 's': 2.6493946092628726, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",3.8557178564467103,0.7182222222222222,1 +152176,"{'n': [0.0062417253102748805, 0.9145385069999825, 0.9145385069999825, 0.21217293362399597, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.914591695622955, 0.914591695622955, 0.914591695622955, 0.21218527338452556, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[40.523809523809526, 40.523809523809526, 40.523809523809526, 40.523809523809526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[40.523809523809526, 40.523809523809526, 40.523809523809526, 40.523809523809526, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",10.806349206349207,15.20173913043478,3.529357808531564,24.94652935463345,1.0,"{'n': 0.09505648119549745, 'w': nan, 's': 0.09506200958309476, 'e': nan}",1.6159999999999999,10.827200000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",4.309333333333333,0.505,1 +152187,"{'n': [0.006211101497516112, 0.9592434745198628, 0.9592434745198628, 0.22254448608860822, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0062089252112891855, 0.9589073685388704, 0.9589073685388704, 0.22246650950101796, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.35125, 54.24710424710425, 54.24710424710425, 54.24710424710425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.35125, 54.24710424710425, 54.24710424710425, 54.24710424710425, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",10.872837516087516,14.932641509433958,2.210079953256534,14.808577201329596,1.0,"{'n': 0.11270004426845738, 'w': nan, 's': 0.11266055569236283, 'e': nan}",1.6159999999999999,10.827200000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",3.863214515007148,0,1 +152272,"{'n': [0.0061930407391035105, 0.9564541682013143, 0.9564541682013143, 0.25059099206874413, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.006181607015891471, 0.954688342222621, 0.954688342222621, 0.25012834566232645, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.221875, 34.26640926640927, 34.26640926640927, 34.26640926640927, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.221875, 34.26640926640927, 34.26640926640927, 34.26640926640927, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",6.8680735199485206,16.53973684210526,1.5777874028660066,16.535466510675633,1.0,"{'n': 0.14469077766121372, 'w': nan, 's': 0.1444236464775502, 'e': nan}",1.631,10.927699999999996,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.53734121907523, 'w': nan, 's': 2.5431444831746512, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",3.7121704190666636,0.8936986301369862,1 +152293,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.858989226116374, 0.858989226116374, 0.858989226116374, 0.2783125092617053, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8888628002559367, 0.8888628002559367, 0.8888628002559367, 0.2879915472829237, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.930545454545454,0.5638743192714886,15.933871452857327,nan,"{'n': nan, 'w': 0.11223173016232718, 's': nan, 'e': 0.11613487913076542}",1.6619999999999997,11.135400000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.1871428571428573,0.0 +152318,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9629347002772647, 0.9629347002772647, 0.9629347002772647, 0.311990842889834, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9311605344497881, 0.9311605344497881, 0.9311605344497881, 0.30169601316173156, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.92222222222222,0.5667440034372655,15.92852300080235,nan,"{'n': nan, 'w': 0.11756457760069636, 's': nan, 'e': 0.11368527365303911}",1.6619999999999997,11.135400000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.6414814814814815,0.0 +152361,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8916496066402325, 0.8916496066402325, 0.8916496066402325, 0.06063217325153579, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8916496066914127, 0.8916496066914127, 0.8916496066914127, 0.060632173255016034, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.87647887323943,0.7752348096654588,15.882958254944835,nan,"{'n': nan, 'w': 0.11418681738582444, 's': nan, 'e': 0.11418681739237863}",1.5339999999999998,10.277800000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +152364,"{'n': [0.0061763681196902315, 0.932281980330601, 0.932281980330601, 0.21628941943669944, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.9421472163984969, 0.9421472163984969, 0.9421472163984969, 0.21857815420445129, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[50.056603773584904, 50.056603773584904, 50.056603773584904, 50.056603773584904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[50.056603773584904, 50.056603773584904, 50.056603773584904, 50.056603773584904, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",13.348427672955975,15.237254901960782,3.357463490775102,24.525330881177045,1.0,"{'n': 0.10712221342777031, 'w': nan, 's': 0.10825576094437658, 'e': nan}",1.6159999999999999,10.827200000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",4.309333333333333,0.4896969696969697,1 +152443,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,4.906666666666667,6.939074546043987,13.995568563685637,1.0,"{'n': 8.852879236174673e-21, 'w': nan, 's': 9.474263659269728e-21, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192212482553e-22, 'w': nan, 's': 5.553192212990763e-22, 'e': nan}","{'n': 2.744176875562761e-09, 'w': nan, 's': 2.652660295718838e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +152445,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9236544724729766, 0.9236544724729766, 0.9236544724729766, 0.9236544724729766, 0.07019773990794605, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9119060308075063, 0.9119060308075063, 0.9119060308075063, 0.9119060308075063, 0.0693048583413703, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.88125,1.9491423594750585,16.880190163934422,nan,"{'n': nan, 'w': 0.12857052012151945, 's': nan, 'e': 0.126935164801361}",2.038,13.654599999999995,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.7531182795698923,0.0 +152460,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +152466,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8995518599672366, 0.8995518599672366, 0.8995518599672366, 0.05397311159803433, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9077773754689662, 0.9077773754689662, 0.9077773754689662, 0.054466642528138105, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.07107142857143,1.5820123696593213,16.05101661086788,nan,"{'n': nan, 'w': 0.09385434274756375, 's': nan, 'e': 0.09471254824469082}",1.5300000000000007,10.251000000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.35581395348837214,0.0 +152510,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9542907795422443, 0.9542907795422443, 0.9542907795422443, 0.06489177300887258, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9542907796806032, 0.9542907796806032, 0.9542907796806032, 0.06489177301828099, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.81830769230769,0.5655564155516211,15.824642618570474,nan,"{'n': nan, 'w': 0.12353562839299895, 's': nan, 'e': 0.12353562841090991}",1.5339999999999998,10.277800000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.888650569644163, 's': nan, 'e': 2.888650569149698}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +152546,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9461284124587551, 0.9461284124587551, 0.9461284124587551, 0.30654560563663685, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9494514456359079, 0.9494514456359079, 0.9494514456359079, 0.30762226838603435, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.0735,0.9800031037365817,16.069952201708787,nan,"{'n': nan, 'w': 0.1026500038464717, 's': nan, 'e': 0.10301053563467816}",1.6619999999999997,11.135400000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.1871428571428573,0.0 +152547,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9187889846390979, 0.9187889846390979, 0.9187889846390979, 0.05696491704762416, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9187565138685089, 0.9187565138685089, 0.9187565138685089, 0.05696290385984764, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.463658536585365,0.9996578831794088,15.457563544568247,nan,"{'n': nan, 'w': 0.11378690979940492, 's': nan, 'e': 0.11378288847491597}",1.5309999999999997,10.257700000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.4784375,0.0 +152562,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8498716069430502, 0.8498716069430502, 0.8498716069430502, 0.8498716069430502, 0.06459024212767164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8611624131914957, 0.8611624131914957, 0.8611624131914957, 0.8611624131914957, 0.0654483434025535, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.806666666666665,1.9311933969719177,16.81362231605426,nan,"{'n': nan, 'w': 0.13525071732517865, 's': nan, 'e': 0.13704756479226224}",2.038,13.654599999999995,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.4055172413793102,0.0 +152567,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8816755533314747, 0.8816755533314747, 0.8816755533314747, 0.058190586519877345, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8816769552632887, 0.8816769552632887, 0.8816769552632887, 0.05819067904737708, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.31135135135135,1.5228683145890367,16.295183681552633,nan,"{'n': nan, 'w': 0.10825416500975528, 's': nan, 'e': 0.10825433714218805}",1.5330000000000004,10.271099999999999,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +152590,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9040982682607891, 0.9040982682607891, 0.9040982682607891, 0.06147868224173363, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8991502105304302, 0.8991502105304302, 0.8991502105304302, 0.061142214316069234, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.82551724137931,0.571224252158869,15.83785371555118,nan,"{'n': nan, 'w': 0.13490998935428197, 's': nan, 'e': 0.13417163774012472}",1.5339999999999998,10.277800000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.5998713405305978, 's': nan, 'e': 2.6171973425191335}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.460952380952381,0.0 +152599,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9369465131714184, 0.9369465131714184, 0.9369465131714184, 0.05621679079028524, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9248240373363068, 0.9248240373363068, 0.9248240373363068, 0.055489442240178544, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.89593220338983,1.3154880754912037,15.88879291520077,nan,"{'n': nan, 'w': 0.08964675019443906, 's': nan, 'e': 0.0884868754869171}",1.5300000000000007,10.251000000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.0551724137931036,0.0 +152690,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9915253030274843, 0.9915253030274843, 0.9915253030274843, 0.06544066999981397, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9914853110672398, 0.9914853110672398, 0.9914853110672398, 0.06543803053043784, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.479848484848482,1.639952412857488,16.4753170164461,nan,"{'n': nan, 'w': 0.12331227188967779, 's': nan, 'e': 0.12330729824002916}",1.5330000000000004,10.271099999999999,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.8929401967012263, 's': nan, 'e': 2.89307788993893}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +152740,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.8928847732593456, 0.8928847732593456, 0.8928847732593456, 0.05535885594207952, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.8815616253558229, 0.8815616253558229, 0.8815616253558229, 0.05465682077206111, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.623207547169809,0.4914812942366673,15.638648339830622,nan,"{'n': nan, 'w': 0.10170677206073318, 's': nan, 'e': 0.10041697425330766}",1.5309999999999997,10.257700000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.4784375,0.0 +152819,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9306226407914371, 0.9306226407914371, 0.9306226407914371, 0.2512681130136883, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9278350081546379, 0.9278350081546379, 0.9278350081546379, 0.25051545220175253, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.446530612244896,1.428545072643175,16.44307606843937,nan,"{'n': nan, 'w': 0.1281028215740396, 's': nan, 'e': 0.12771909610827817}",1.6350000000000007,10.9545,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.9490018181225413, 's': nan, 'e': 2.95957127076818}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.274025974025974,0.0 +152924,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9562639417612272, 0.9562639417612272, 0.9562639417612272, 0.25819126427553163, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9588921843675067, 0.9588921843675067, 0.9588921843675067, 0.2589008897792271, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.37322033898305,1.4679807885386404,16.34334095261629,nan,"{'n': nan, 'w': 0.10241018371717316, 's': nan, 'e': 0.1026916528768977}",1.6350000000000007,10.9545,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.167857142857143,0.0 +153051,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9384169665358154, 0.9384169665358154, 0.9384169665358154, 0.06193551979136384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9471415731979139, 0.9471415731979139, 0.9471415731979139, 0.06251134383106233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.531803278688525,1.6856788370352735,16.52847653906156,nan,"{'n': nan, 'w': 0.12983108054809328, 's': nan, 'e': 0.1310381400437019}",1.5330000000000004,10.271099999999999,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.7210848774118697, 's': nan, 'e': 2.6910498469229247}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.2775,0.0 +153075,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.972383152880988, 0.972383152880988, 0.972383152880988, 0.972383152880988, 0.07390111961895489, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9723156430400787, 0.9723156430400787, 0.9723156430400787, 0.9723156430400787, 0.07389598887104579, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.63625,1.871508554838404,16.633124999999993,nan,"{'n': nan, 'w': 0.14879404213633968, 's': nan, 'e': 0.14878371178242195}",2.038,13.654599999999995,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.7763809523809524,0.0 +153105,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.0244416333092605, 1.0244416333092605, 1.0244416333092605, 0.0696620310650297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.0316850778980586, 1.0316850778980586, 1.0316850778980586, 0.07015458529706795, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.834545454545454,0.5740440850407293,15.850874637447632,nan,"{'n': nan, 'w': 0.13720292018935482, 's': nan, 'e': 0.13817303085012764}",1.5339999999999998,10.277800000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.5472069910051234, 's': nan, 'e': 2.5254311523181205}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.333913043478261,0.0 +153158,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9516675543645517, 0.9516675543645517, 0.9516675543645517, 0.0590033883706023, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9799447699266592, 0.9799447699266592, 0.9799447699266592, 0.06075657573545297, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,14.594146341463412,2.1919775853511223,14.449386852623523,nan,"{'n': nan, 'w': 0.08966370698328151, 's': nan, 'e': 0.0923279146247376}",1.5309999999999997,10.257700000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.6185858585858586,0.0 +153160,"{'n': [0.006235194667276613, 0.9704583139730136, 0.9704583139730136, 0.22514632884173919, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.006058164549758013, 0.9429049882891849, 0.9429049882891849, 0.2187539572830909, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.353275, 54.98443579766537, 54.98443579766537, 54.98443579766537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.353275, 54.98443579766537, 54.98443579766537, 54.98443579766537, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",11.020438826199742,14.932641509433958,2.210079953256534,14.808577201329596,1.0,"{'n': 0.13620366650584986, 'w': nan, 's': 0.13233656172810496, 'e': nan}",1.6159999999999999,10.827200000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.7073253360687484, 'w': nan, 's': 2.8033073939803166, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",3.8657566027889243,0.9104225352112676,1 +153243,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9453223739006951, 0.9453223739006951, 0.9453223739006951, 0.05860998718184319, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9531170715984748, 0.9531170715984748, 0.9531170715984748, 0.05909325843910553, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.57772727272727,0.45165284152344065,15.589152542372881,nan,"{'n': nan, 'w': 0.12243719404827132, 's': nan, 'e': 0.12344675537985458}",1.5309999999999997,10.257700000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.9135230482690395, 's': nan, 'e': 2.8854516925172766}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.6804444444444445,0.0 +153300,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9005049504145592, 0.9005049504145592, 0.9005049504145592, 0.054030297024873684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9225077983138319, 0.9225077983138319, 0.9225077983138319, 0.05535046789883005, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.47357142857143,1.7927965271483266,16.468639491107357,nan,"{'n': nan, 'w': 0.09093214789398069, 's': nan, 'e': 0.09315397490153282}",1.5300000000000007,10.251000000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.092857142857143,0.0 +153315,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9942772259109702, 0.9942772259109702, 0.9942772259109702, 0.05965663355465836, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9969473743542784, 0.9969473743542784, 0.9969473743542784, 0.05981684246125684, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.836166666666664,1.163423241511398,15.832253698269147,nan,"{'n': nan, 'w': 0.0852235466539488, 's': nan, 'e': 0.08545241594160922}",1.5300000000000007,10.251000000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.20264900662251656,0.0 +153357,"{'n': [0.006058164549758013, 0.9540416613792145, 0.9540416613792145, 0.22133766543997782, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.006278214637870758, 0.9886952185623241, 0.9886952185623241, 0.22937729070645924, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.347975, 54.7992125984252, 54.7992125984252, 54.7992125984252, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.347975, 54.7992125984252, 54.7992125984252, 54.7992125984252, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",10.983040853018373,14.925576923076921,2.2306366920175837,14.799708048570102,1.0,"{'n': 0.1384114790441326, 'w': nan, 's': 0.1434389849676376, 'e': nan}",1.6159999999999999,10.827200000000003,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.654836997840831, 'w': nan, 's': 2.541129282501965, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",3.859081640381366,0.7182222222222222,1 +153453,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.068206598854553, 1.068206598854553, 1.068206598854553, 0.07050163552440052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.0572039243251592, 1.0572039243251592, 1.0572039243251592, 0.06977545900546052, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.57206896551724,1.7134999055378553,16.572091208930605,nan,"{'n': nan, 'w': 0.13214800313734118, 's': nan, 'e': 0.1307868605739189}",1.5330000000000004,10.271099999999999,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.663895700172034, 's': nan, 'e': 2.697258789332621}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.533,0.0 +153606,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.0387573646594979, 1.0387573646594979, 1.0387573646594979, 0.06440295660888896, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.0060485574710976, 1.0060485574710976, 1.0060485574710976, 0.06237501056320815, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,14.977179487179484,1.7849153520372327,14.883925402860763,nan,"{'n': nan, 'w': 0.11098066472139538, 's': nan, 'e': 0.10748606118113307}",1.5309999999999997,10.257700000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +153612,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9206710560704987, 0.9206710560704987, 0.9206710560704987, 0.9206710560704987, 0.06997100026135772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9230494823665553, 0.9230494823665553, 0.9230494823665553, 0.9230494823665553, 0.07015176065985801, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.699130434782607,1.882624008372306,16.700180187525472,nan,"{'n': nan, 'w': 0.14894097626146913, 's': nan, 'e': 0.1493257446672585}",2.038,13.654599999999995,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +153749,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.0963461269795678, 1.0963461269795678, 1.0963461269795678, 0.07235884438065149, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.0962932691398177, 1.0962932691398177, 1.0962932691398177, 0.07235535576322798, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.248266666666666,1.4413043845381472,16.23389418144512,nan,"{'n': nan, 'w': 0.10817727214869738, 's': nan, 'e': 0.10817205662708874}",1.5330000000000004,10.271099999999999,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +153850,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.0010667500230892, 1.0010667500230892, 1.0010667500230892, 0.0600640050013855, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.0073100853068213, 1.0073100853068213, 1.0073100853068213, 0.060438605118409434, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.968909090909088,1.485026688131499,15.96269006613843,nan,"{'n': nan, 'w': 0.09593905180183572, 's': nan, 'e': 0.09653739318835003}",1.5300000000000007,10.251000000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.29423076923076924,0.0 +153865,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.1088014759437699, 1.1088014759437699, 1.1088014759437699, 0.07539850036417632, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.1087469021700282, 1.1087469021700282, 1.1087469021700282, 0.0753947893475619, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.936351351351352,0.9242200134756792,15.939676269531258,nan,"{'n': nan, 'w': 0.10738630367138689, 's': nan, 'e': 0.10738101825648919}",1.5339999999999998,10.277800000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +153894,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.0429600742491507, 1.0429600742491507, 1.0429600742491507, 0.06466352460344744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.0430514292829103, 1.0430514292829103, 1.0430514292829103, 0.06466918861554054, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.59658536585366,0.46226172375533775,15.607042179722297,nan,"{'n': nan, 'w': 0.12547086501671018, 's': nan, 'e': 0.12548185526973368}",1.5309999999999997,10.257700000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 2.8304591857593158, 's': nan, 'e': 2.8301651847049882}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +153986,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,1.341,4.023000000000001,9.173262754251418,1.0,"{'n': 2.612415743032505e-20, 'w': nan, 's': 2.612390144941977e-20, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192218850426e-22, 'w': nan, 's': 5.5531922188503815e-22, 'e': nan}","{'n': 1.5974718872784387e-09, 'w': nan, 's': 1.5974797138524896e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0,1 +153998,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.1055971592938854, 1.1055971592938854, 1.1055971592938854, 1.1055971592938854, 0.08402538410633506, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.1056093468095507, 1.1056093468095507, 1.1056093468095507, 1.1056093468095507, 0.08402631035752564, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.738863636363636,1.9122074534530293,16.740329510441622,nan,"{'n': nan, 'w': 0.14253032963237106, 's': nan, 'e': 0.1425319008109967}",2.038,13.654599999999995,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.5159493670886076,0.0 +154003,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.0328839541795969, 1.0328839541795969, 1.0328839541795969, 0.3346544011541896, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.0667135839511777, 1.0667135839511777, 1.0667135839511777, 0.34561520120018174, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.905192307692307,0.5717735242364338,15.915185389386627,nan,"{'n': nan, 'w': 0.11345119281571138, 's': nan, 'e': 0.11716701377949841}",1.6619999999999997,11.135400000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.9776470588235294,0.0 +154117,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.009812398433361, 1.009812398433361, 1.009812398433361, 0.27264934757700776, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.989385844908433, 0.989385844908433, 0.989385844908433, 0.2671341781252772, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.504230769230773,1.497111765718663,16.50112921269752,nan,"{'n': nan, 'w': 0.11951164908588813, 's': nan, 'e': 0.11709415936136838}",1.6350000000000007,10.9545,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.6350000000000002,0.0 +154144,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,1.8257142857142856,3.859831073812344,11.764609776419942,1.0,"{'n': 4.478419547926351e-21, 'w': nan, 's': 4.482127956521049e-21, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192206295812e-22, 'w': nan, 's': 5.553192206304677e-22, 'e': nan}","{'n': 3.8582643663346396e-09, 'w': nan, 's': 3.85666791687634e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +154146,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.9952837290961435, 0.9952837290961435, 0.9952837290961435, 0.9952837290961435, 0.0756415634113067, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9952914487527632, 0.9952914487527632, 0.9952914487527632, 0.9952914487527632, 0.0756421501052098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.589,1.851456993829454,16.58518943826799,nan,"{'n': nan, 'w': 0.14621869354220202, 's': nan, 'e': 0.14621982764906274}",2.038,13.654599999999995,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.6418897637795276,0.0 +154248,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.0030426983674072, 1.0030426983674072, 1.0030426983674072, 0.06018256190204457, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.9959324163922978, 0.9959324163922978, 0.9959324163922978, 0.059755944983538006, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.180338983050845,1.6306783096298514,16.162857764515724,nan,"{'n': nan, 'w': 0.08395044274040234, 's': nan, 'e': 0.08335534213223174}",1.5300000000000007,10.251000000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.0551724137931036,0.0 +154260,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.0237586542263257, 1.0237586542263257, 1.0237586542263257, 0.06142551925357969, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.0237957142247045, 1.0237957142247045, 1.0237957142247045, 0.06142774285348241, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.43862068965517,1.7741675544592947,16.434432503770736,nan,"{'n': nan, 'w': 0.08690123667921651, 's': nan, 'e': 0.08690438249847493}",1.5300000000000007,10.251000000000003,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.092857142857143,0.0 +154387,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,2.3236363636363637,4.219535245255147,11.868444242084617,1.0,"{'n': 5.695982938571858e-21, 'w': nan, 's': 5.76976589068292e-21, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192208723282e-22, 'w': nan, 's': 5.553192208845145e-22, 'e': nan}","{'n': 3.421133569624226e-09, 'w': nan, 's': 3.3991887002217735e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +154403,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.0761921140707449, 1.0761921140707449, 1.0761921140707449, 0.06672391107238629, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.1023628528910996, 1.1023628528910996, 1.1023628528910996, 0.06834649687924828, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,15.603877551020407,0.48086578519748546,15.616668376318875,nan,"{'n': nan, 'w': 0.10786564525840751, 's': nan, 'e': 0.11048871189570984}",1.5309999999999997,10.257700000000002,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.17597701149425288,0.0 +154532,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,7.804285714285714,3.9928305646955957,11.572308504221956,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.3419999999999999,2.2914000000000003,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.10311557788944724,1 +154554,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,2.235,4.997611929712031,12.255991238491239,1.0,"{'n': 4.278635842534218e-21, 'w': nan, 's': 4.278635841534274e-21, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.5531922058013005e-22, 'w': nan, 's': 5.5531922058013005e-22, 'e': nan}","{'n': 3.947314299498034e-09, 'w': nan, 's': 3.94731429995929e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +154695,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,5.136666666666667,5.043162587988701,11.876231442292934,1.0,"{'n': 2.0914354516059016e-21, 'w': nan, 's': 2.0914354516059016e-21, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192196368803e-22, 'w': nan, 's': 5.553192196368803e-22, 'e': nan}","{'n': 5.645886428149574e-09, 'w': nan, 's': 5.645886428149574e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0,1 +154768,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.186,2.888872444397641,6.8043550250288805,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.3840000000000001,2.5728000000000004,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +155094,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,8.746875,3.1957427124809343,9.86137768938709,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.5519999999999998,3.6984,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0736,1 +155155,"{'n': [0.006242954015803121, 1.124856579423986, 1.124856579423986, 0.294712423809084, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [1.1165037768189563, 1.1165037768189563, 1.1165037768189563, 0.2925239895265663, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[52.13963963963964, 52.13963963963964, 52.13963963963964, 52.13963963963964, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[52.13963963963964, 52.13963963963964, 52.13963963963964, 52.13963963963964, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",13.903903903903904,16.74304347826087,1.8611332096861297,16.74009533042494,1.0,"{'n': 0.13870283814276532, 'w': nan, 's': 0.13767287801366407, 'e': nan}",1.631,10.927699999999996,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.672609831063992, 'w': nan, 's': 2.697020217843212, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",4.349333333333333,0.6480794701986754,1 +155574,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,5.154545454545455,3.8364599298557036,8.610683880437685,nan,"{'n': nan, 'w': 5.53177536898249e-21, 's': nan, 'e': 5.531775290572806e-21}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': 5.553192208443371e-22, 's': nan, 'e': 5.553192208443367e-22}","{'n': nan, 'w': 3.4715394289218953e-09, 's': nan, 'e': 3.4715394535254165e-09}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +155710,"{'n': [0.0061965959613452075, 1.3114488807079803, 1.3114488807079803, 0.3435996067454905, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.006193393645634648, 1.310771141933259, 1.310771141933259, 0.34342203918651354, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.283525, 60.00529100529101, 60.00529100529101, 60.00529100529101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.283525, 60.00529100529101, 60.00529100529101, 60.00529100529101, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",12.019959867724868,16.73468085106383,1.842100848607868,16.731949058693235,1.0,"{'n': 0.1284765679654542, 'w': nan, 's': 0.1284101730391751, 'e': nan}",1.631,10.927699999999996,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 2.9315753411778784, 'w': nan, 's': 2.9333853037995334, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",3.807107019687378,1.8122222222222222,1 +155777,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,9.386,6.905025995606388,13.037699385721206,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +155920,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.462693651524223, 1.462693651524223, 1.3807828070388666, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.462690130706169, 1.462690130706169, 1.3807794833866238, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,14.72,0.0,14.720000000000002,nan,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",1.4720000000000004,9.862400000000004,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.8554583987650778, 's': nan, 'e': 0.8554571264673954}",nan,0,0.0 +155994,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,2.0655555555555556,4.323859158748277,11.851466901408452,1.0,"{'n': 4.088243600664367e-21, 'w': nan, 's': 4.088223986338706e-21, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192205296691e-22, 'w': nan, 's': 5.5531922052966335e-22, 'e': nan}","{'n': 4.038182920038611e-09, 'w': nan, 's': 4.038192607147261e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +156084,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,3.3525,5.806700332374661,12.723632929931396,1.0,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +156130,"{'n': [0.006193062104223138, 1.2143259027888507, 1.2143259027888507, 0.31815338653067854, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.006193111084465884, 1.2143355067580166, 1.2143355067580166, 0.3181559027706001, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.258725, 50.73039215686274, 50.73039215686274, 50.73039215686274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.258725, 50.73039215686274, 50.73039215686274, 50.73039215686274, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",10.163326764705882,16.73468085106383,1.842100848607868,16.731949058693235,1.0,"{'n': 0.11716619015352013, 'w': nan, 's': 0.11716711680795028, 'e': nan}",1.631,10.927699999999996,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",3.770271095639792,1.8122222222222222,1 +156215,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,5.0442857142857145,4.630744639727756,9.218669585418157,nan,"{'n': nan, 'w': 4.9691712611171604e-21, 's': nan, 'e': 4.969982878514856e-21}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': 5.5531922073813e-22, 's': nan, 'e': 5.553192207382961e-22}","{'n': nan, 'w': 3.6627931045889483e-09, 's': nan, 'e': 3.662494018248196e-09}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.0,0.0 +156286,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.2633696173446145, 1.2633696173446145, 1.2633696173446145, 0.34110979668304625, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.2508619832186354, 1.2508619832186354, 1.2508619832186354, 0.337732735469032, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.504230769230773,1.497111765718663,16.50112921269752,nan,"{'n': nan, 'w': 0.11765726709958883, 's': nan, 'e': 0.11649243455261238}",1.6350000000000007,10.9545,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.5092307692307694,0.0 +156325,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,6.984999999999999,4.154137495718375,9.25318638507279,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0820000000000003,7.249399999999998,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +156396,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +156405,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.2905718874477985, 1.2905718874477985, 1.2905718874477985, 0.348454409610906, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.312371903670187, 1.312371903670187, 1.312371903670187, 0.3543404139909509, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.55563636363636,1.5538512431859146,16.54824282209402,nan,"{'n': nan, 'w': 0.10960906094784482, 's': nan, 'e': 0.11146054967933199}",1.6350000000000007,10.9545,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0,0.0 +156500,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.9561538461538466,3.088725249781705,6.356694729336916,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.2599999999999999,1.7420000000000004,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.09454545454545454,1 +156521,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.385688769797013, 1.385688769797013, 1.385688769797013, 0.374135967845194, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.3758748918925423, 1.3758748918925423, 1.3758748918925423, 0.3714862208109868, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,16.53543859649123,1.5347073212893336,16.511021443246015,nan,"{'n': nan, 'w': 0.1075585629024344, 's': nan, 'e': 0.10679679978007071}",1.6350000000000007,10.9545,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,1.167857142857143,0.0 +156880,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,4.7925,6.012667357338172,13.134208086785009,1.0,"{'n': 1.0525617828473164e-20, 'w': nan, 's': 1.0525661869695696e-20, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192213745806e-22, 'w': nan, 's': 5.553192213745833e-22, 'e': nan}","{'n': 2.5166949151645486e-09, 'w': nan, 's': 2.5166896500117172e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +156885,"{'n': [0.005284902414011525, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.9873275345319744, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[31.58823529411765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[31.58823529411765, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",2.1058823529411765,9.758571428571429,2.232534936993811,10.157804676184565,1.0,"{'n': 0.02285971461683422, 'w': nan, 's': 0.019965339329697136, 'e': nan}",0.42900000000000016,2.8743,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.286,0.14359832635983263,1 +156925,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.3548183339891846, 1.3548183339891846, 0.18154565675455073, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,9.692941176470587,2.1693364794899095,9.98073538023927,nan,"{'n': nan, 'w': 0.09895728611313823, 's': nan, 'e': nan}",1.067,7.148899999999999,"{'n': nan, 'w': 0.0, 's': nan, 'e': nan}","{'n': nan, 'w': 2.589854265305427, 's': nan, 'e': nan}","{'n': nan, 'w': 0.0, 's': nan, 'e': nan}",nan,0,0.0 +157051,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [1.3446223184321995, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [1.3589709309760911, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.9561538461538466,3.088725249781705,6.356694729336916,nan,"{'n': nan, 'w': 0.06794957906945873, 's': nan, 'e': 0.06867467649586842}",0.49500000000000005,3.3164999999999996,"{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}","{'n': nan, 'w': 1.7865406449579813, 's': nan, 'e': 1.7675625509809594}","{'n': nan, 'w': 0.0, 's': nan, 'e': 0.0}",nan,0.3535714285714286,0.0 +157252,"{'n': [0.006193393645634648, 1.4403241036359649, 1.4403241036359649, 0.3773649151526224, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.006193062104223138, 1.440247000982125, 1.440247000982125, 0.3773447142573164, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.2709, 63.0, 63.0, 63.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.2709, 63.0, 63.0, 63.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",12.618059999999998,16.73468085106383,1.842100848607868,16.731949058693235,1.0,"{'n': 0.1227068526317083, 'w': nan, 's': 0.12270028395459014, 'e': nan}",1.631,10.927699999999996,"{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",3.788576319829141,1.9188235294117646,1 +157327,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,7.346000000000001,4.46388888750605,9.84970615890926,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +157516,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,1.9661538461538461,3.970918394957051,12.101557745875295,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.6969999999999998,4.669899999999999,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.9957142857142857,1 +158199,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +158287,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,4.3549999999999995,3.492372402823044,7.10654528843644,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.45199999999999996,3.0283999999999995,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.14349206349206348,1 +158356,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.8340000000000005,5.709345321488271,12.46078499251497,nan,"{'n': nan, 'w': nan, 's': nan, 'e': 2.2990457334300355e-20}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': 5.553192218265151e-22}","{'n': nan, 'w': nan, 's': nan, 'e': 1.7028663555225934e-09}","{'n': nan, 'w': nan, 's': nan, 'e': 0.0}",nan,0,0.0 +158402,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,4.96375,3.5314796385509575,7.449406767859629,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +158533,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,5.033333333333334,1.6486829760616672,7.046828762387648,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.33699999999999997,2.2579,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +158631,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +158749,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,9.24722222222222,2.37040738541701,9.7384211834908,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.067,7.148899999999999,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,3.5566666666666666,1 +158816,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.2,0.0,3.2,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.3200000000000002,2.1439999999999992,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +158824,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,11.616,2.8479999999999994,13.00315887691916,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.3039999999999998,8.7368,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +158850,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +158870,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.9066666666666663,3.342447539686383,6.974551400540309,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +158873,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.2,0.0,3.2,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.3200000000000002,2.1439999999999992,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +158880,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.28,0.0,3.28,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.328,2.1976000000000004,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +158888,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.35,0.0,3.35,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.335,2.2445000000000013,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.9571428571428572,1 +158913,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +158947,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,12.587499999999999,7.50103117911131,17.11303529608565,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159037,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +159061,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,4.854,4.207900188930341,7.3794844937358794,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +159260,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,4.95,0.0,4.95,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.49500000000000005,3.3164999999999996,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +159296,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,8.215833333333334,3.559565653122427,11.643162876601643,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159329,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,1.8257142857142856,3.859831073812344,10.976542498056492,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159427,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,2.8233333333333333,7.985592582200076,23.635664408399627,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159440,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,1.9661538461538461,3.970918394957051,12.101557745875295,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159447,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,2.4400000000000004,0.30000000000000004,2.4819354838709677,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.274,1.8357999999999997,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.030614525139664808,1 +159463,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,11.616,2.8479999999999994,13.00315887691916,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.592,3.9664,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +159465,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,1.8257142857142856,3.859831073812344,11.926086436263814,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159474,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,1.5975,3.6606804353835645,10.663598086726667,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +159485,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,1.8257142857142856,3.859831073812344,10.97725364431487,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159489,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,1.0125,2.2933131963747706,2.905731382978723,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159636,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,2.4400000000000004,0.30000000000000004,2.4819354838709677,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.214,1.4338000000000004,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +159687,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,4.076666666666667,3.0355266795438025,6.471005433291258,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159692,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.68,6.373946971853469,13.210797094034586,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +159739,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,1.1045454545454545,2.373970068113227,3.024373702422145,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +159779,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,5.075,4.015054794146651,8.940967861374409,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159784,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,4.285833333333334,2.9870204171083636,6.374349786882991,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.49500000000000005,3.3164999999999996,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.3413793103448276,1 +159785,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,6.62,4.21,10.767925223802001,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",0.24100000000000005,1.6146999999999998,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.27542857142857147,1 +159794,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.9346153846153845,2.219801153203438,1.3975759513911095,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159801,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,11.616,2.8479999999999994,13.00315887691916,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.3039999999999998,8.7368,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +159832,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.9561538461538466,3.088725249781705,6.356694729336916,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159844,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,4.285833333333334,2.9870204171083636,6.374349786882991,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159854,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,3.9561538461538466,3.088725249781705,6.356694729336916,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159913,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,2.8525,3.14258949753225,6.923756077795787,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159923,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +159931,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0.0,1 +159934,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +159967,"{'n': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.0,12.587499999999999,7.50103117911131,16.56708097165992,1.0,"{'n': 1.373472209328098e-20, 'w': nan, 's': 1.3734760461913004e-20, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': 5.553192215486969e-22, 'w': nan, 's': 5.553192215486986e-22, 'e': nan}","{'n': 2.203151853022365e-09, 'w': nan, 's': 2.2031487757214506e-09, 'e': nan}","{'n': 0.0, 'w': nan, 's': 0.0, 'e': nan}",0.0,0.0,1 +159972,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +159991,"{'n': [0.0147058015309285, 0.07273798209931248, 0.07273798209931248, 0.07273798209931248, 0.07273798209931248, 0.07273798209931248, 0.07273798209931248, 0.014984024312458386, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.027057577507656402, 0.027057577507656402, 0.027057577507656402, 0.027057577507656402, 0.027057577507656402, 0.027057577507656402, 0.027057577507656402, 0.005573860966577225, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,36.03,0.0,36.03,nan,"{'n': 0.0, 'w': 0.0, 's': nan, 'e': nan}",3.6030000000000006,24.14010000000001,"{'n': 0.0, 'w': 0.0, 's': nan, 'e': nan}","{'n': 0.0, 'w': 0.0, 's': nan, 'e': nan}","{'n': 7.501963903232501, 'w': 4.235526657930999, 's': nan, 'e': nan}",nan,0,0.0 +160010,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,1.9849999999999999,1.987127323550255,3.5081502086230874,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +160021,"{'n': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'w': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 's': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan], 'e': [nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]}","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]","[nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan]",nan,0.0,0.0,0.0,nan,"{'n': nan, 'w': nan, 's': nan, 'e': nan}",1.0000000000000002e-19,6.700000000000002e-19,"{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}","{'n': nan, 'w': nan, 's': nan, 'e': nan}",nan,0,1 +163411,"{'n': [0.04256905211406047, 0.06476972894231424, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'w': [0.03654129169354603, 0.025396232157239348, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 's': [0.027153842529139438, 0.03123377030330035, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 'e': [0.02324848816651349, 0.015257552914245626, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}","[1.4213978019686353, 2.1872706039372707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]","[1.4213978019686353, 2.1872706039372707, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]",0.2405778937270604,4.24,3.7185749958821592,7.899121572078018,1.0,"{'n': 0.08816686763098545, 'w': 0.034570257981584425, 's': 0.04251652333453927, 'e': 0.020769125795803988}",0.728,4.8776,"{'n': 0.024802614484073185, 'w': 0.0, 's': 0.0, 'e': 0.0}","{'n': 0.4764285425645666, 'w': 0.0, 's': 0.3548588453280444, 'e': 0.0}","{'n': 0.0030451323525662387, 'w': 0.0, 's': 0.0, 'e': 0.0}",0.987290077469725,0.13153894080996886,2.2563613065351045 diff --git a/NATURF/tests/compare_dc_output.py b/NATURF/tests/compare_dc_output.py new file mode 100644 index 00000000000..d9b6f24621c --- /dev/null +++ b/NATURF/tests/compare_dc_output.py @@ -0,0 +1,16 @@ +import filecmp + +def test_DC(): + """ + Temporary test for comparing the output of DC's C-5 3.2x3.2km region before and after refactoring. + """ + actual_dir = "./NATURF/_C-5/" + expected_dir = "./NATURF/tests/" + files = ["00065-00096.00065-00096", "C-5.csv", "index"] + + for file in files: + assert filecmp.cmp(f"{actual_dir}{file}", f"{expected_dir}{file}") + + +if __name__ == "__main__": + test_DC() \ No newline at end of file diff --git a/NATURF/tests/index b/NATURF/tests/index new file mode 100644 index 00000000000..3b4f8760838 --- /dev/null +++ b/NATURF/tests/index @@ -0,0 +1,21 @@ +type=continuous + projection=albers_nad83 + missing_value=-999900. + dy=100.0 + dx=100.0 + known_x=1 + known_y=1 + known_lat=38.794034 + known_lon=-77.129474 + truelat1=45.5 + truelat2=29.5 + stdlon=-77.0 + wordsize=4 + endian=big + signed=no + tile_x=32 + tile_y=32 + tile_z=132 + units="dimensionless" + scale_factor=0.0001 + description="Urban_Parameters" diff --git a/README.md b/README.md old mode 100644 new mode 100755 index 1171e539dc0..07a6379f472 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ -# IM3_ORNL +[![build](https://github.com/IMMM-SFA/naturf/actions/workflows/build.yml/badge.svg)](https://github.com/IMMM-SFA/naturf/actions/workflows/build.yml) This repository contains: -- Code -- data, and +- Code +- data, and - products related to IM3 - and much more - diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000000..c2a7ece7c60 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,4 @@ +GDAL==3.4.1 +numpy==1.21.5 +pandas==1.4.1 +setuptools==61.2.0 \ No newline at end of file diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 00000000000..5a87726d0c6 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,3 @@ +[metadata] +description_file = README.md +license_files = LICENSE.txt \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 00000000000..7a3eeff878b --- /dev/null +++ b/setup.py @@ -0,0 +1,34 @@ +import re +from setuptools import setup, find_packages + + +def readme(): + """Return the contents of the project README file.""" + with open('README.md') as f: + return f.read() + + +def get_requirements(): + """Return a list of package requirements from the requirements.txt file.""" + with open('requirements.txt') as f: + return f.read().split() + + +version = re.search(r"__version__ = ['\"]([^'\"]*)['\"]", open('NATURF/__init__.py').read(), re.M).group(1) + +setup( + name='naturf', + version=version, + packages=find_packages(), + url='https://github.com/IMMM-SFA/naturf', + download_url=f'https://github.com/IMMM-SFA/naturf/archive/refs/tags/v{version}.tar.gz', + license='MIT', + author='Levi Sweet-Breu, Melissa Allen-Dumas, Emily Rexer', + author_email='', + description='An open-source Python package to address the effect of the geometry of a neighborhood on the local meteorology. ', + long_description=readme(), + long_description_content_type="text/markdown", + python_requires='>=3.8.5', + include_package_data=True, + install_requires=get_requirements() +) \ No newline at end of file