POST
|
Hi! Do you have a general estimate of how much you paid for this ? $ / Area? Thank you. S. Even with the automated tools, you would probably still have a huge cleanup job where the automated process drew many of the polygons incorrectly. You might try to consider hiring a company that is expert at performing this work, so you have a relatively clean dataset when the job is complete (Creative financing and hard-sell of multiple uses of this data to money managers). My organization was able to somehow come up with the money to do this. We can now spend our money on making the flat dataset more useful by relating it to parcel and assessment data instead of spending our time digitizing polygons.
... View more
10-08-2013
07:00 AM
|
0
|
0
|
691
|
POST
|
Try the code below, it should give you a general idea of how you can approach this. You'd need to point the "folderLocation" variable in the code below to the folder path and the code will spit out a csv file with details extracted from Hec-RAS geometry files. https://gist.github.com/anonymous/df899701271a62ff4543#file-gistfile1-py
########################################################################
import os
import re
import time
import csv
from operator import floordiv
folderLocation = "x:\folderlocation\Models"
listSubFolders = os.listdir(folderLocation)
flowChangeLocationsTable = []
streamGeometry = {}
for subFolder in listSubFolders:
subFolderPath = folderLocation + "\\" + subFolder
if os.path.isdir(subFolderPath):
listSubFolderFiles = os.listdir(subFolderPath)
for file in listSubFolderFiles:
#Geometry files in hecras have a ".g0*" extension, the code below filters to look that geometry files only
if file.find(".g") != -1:
openFile = open(subFolderPath + "\\" + file, "r")
readFile= openFile.read()
pattern1 = re.compile(r"Type RM Length L Ch R =.+\n")
pattern2 = re.compile("(?<=\n#Mann=).+(?![A-z]+)")
pattern3 = re.compile(r"(?<=Type RM Length L Ch R =).+(\d+)")
manningsCoeff = pattern2.finditer(readFile)
stations = pattern3.finditer(readFile)
stationsList = []
for station in stations:
if int(station.group().split(",")[0].strip()) == 1:
stationsList.append(station.group().split())
manningsCoeffList = []
for coeffs in manningsCoeff:
numberOfIter = floordiv(int(coeffs.group().split(",")[0])-1, 3) + 1
newStartLocation = coeffs.start() + readFile[coeffs.start():].find("\n") + 1
TempList = []
while numberOfIter > 0:
line = readFile[newStartLocation:newStartLocation + readFile[newStartLocation:].find("\n")]
newStartLocation = newStartLocation + readFile[newStartLocation:].find("\n") + 1
numberOfIter = numberOfIter - 1
for item in line.split():
TempList.append(item)
manningsCoeffList.append(TempList)
streamGeometryData = map(list.__add__,stationsList,manningsCoeffList)
streamGeometry[file] = streamGeometryData
outputCheckMannings = csv.writer(open(folderLocation + "\\" +'streamGeometry'+ str(time.gmtime().tm_sec) + '.csv', 'wb'))
list = []
for key,value in streamGeometry.items():
temp = []
for i in range(len(value)):
temp1 = []
temp1.append(key)
for item in value:
temp1.append(item)
temp.append(temp1)
for items in temp:
finalRow = []
for item in items:
for i in item.split(","):
finalRow.append(i)
outputCheckMannings.writerow(finalRow)
======================================================================================== Update: Had sort of an epiphany the other day and noticed that if you changed the prj, geometry, flow, or plan files to a text file then they are perfectly legible to read in as input cards. Never really thought it about like this, but I guess that's how the HEC-RAS program works. Probably just reads in these input cards, and searches for keywords to store the appropriate input values in the right variables. Reading input lines from a text file and storing info in different variables when keywords are flagged isn't difficult. But the shear amount of different keywords and variables is crazy I feel. With this is in mind, I emailed the ACOE to see if I could get their source code for reading the input files only. No response yet. It also crossed my mind that maybe I could file a request under the Freedom of Information Act. I don't think I'd be able to get the "brains" of the HEC-RAS program, but I feel receiving code that reads the input files and stores it into its separate variables would be game.
... View more
05-21-2013
11:25 AM
|
0
|
0
|
2274
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|