def main(args=sys.argv[1:]): parser = argparse.ArgumentParser() parser.add_argument('-o', '--output', type=argparse.FileType('w'), default=sys.stdout, help="Output (default: stdout)") parser.add_argument('-d', '--delimiter', default='\t', metavar='DELIMITER', help='Delimiter (default: Tab)') parser.add_argument('files', metavar='1DD_FILE', nargs='+') parsed_args = parser.parse_args(args) with contextlib.closing(parsed_args.output): writer = csv.writer(parsed_args.output, delimiter=parsed_args.delimiter, lineterminator='\n') writer.writerow(('year', 'month', 'latitude', 'longitude', 'reading_count', 'total', 'mean', 'sd', 'minimum', 'maximum')) for outfile in parsed_args.files: with open(outfile, 'rb') as fp: reader = onedd.reader(fp) indices = xrange(onedd.MEASUREMENTS_PER_DAY) coordinates = reader.coordinate_iter() days = list(reader) for (i, (lat, lon)) in itertools.izip(indices, coordinates): summary = summarize_coordinate(days, i) row = [reader.year, reader.month, lat, lon] row.extend(summary) writer.writerow(row)
def main(args=sys.argv[1:]): """ Parses arguments, reads file(s), prints results to output """ parser = argparse.ArgumentParser( description="""GPCP 1DD Extraction utility filters the file(s) specified by the provided coordinates.""" ) parser.add_argument("latitude", type=float) parser.add_argument("longitude", type=float) parser.add_argument("file", nargs="+") parser.add_argument( "-o", "--output", type=argparse.FileType("w"), default=sys.stdout, help="Output file (default: stdout)" ) args = parser.parse_args() writer = csv.writer(args.output, delimiter="\t", lineterminator="\n") writer.writerow(("date", "latitude", "longitude", "precipitation")) with contextlib.closing(args.output): for path in args.file: fp = open(path, "rb") with contextlib.closing(fp): data_file = onedd.reader(fp) data = ( i for i in data_file.data_iter() if i.latitude == args.latitude and i.longitude == args.longitude ) writer.writerows(data)
def main(args=sys.argv[1:]): """ Reads arguments, writes date, latitude, longitude, precipitation to output """ parser = argparse.ArgumentParser() parser.add_argument('-o', '--output', type=argparse.FileType('w'), default=sys.stdout, metavar='OUTPUT', help="Output (default: stdout)") parser.add_argument('-d', '--delimiter', default='\t', metavar='DELIM', help='Output delimiter (default: Tab)') parser.add_argument('files', nargs='+', metavar="FILE", help='1DD file to read') parsed_args = parser.parse_args(args) with contextlib.closing(parsed_args.output): writer = csv.writer(parsed_args.output, delimiter=parsed_args.delimiter) # Headers headers = ('date', 'latitude', 'longitude', 'precipitation') writer.writerow(headers) for infile in parsed_args.files: with open(infile, 'rb') as fp: reader = onedd.reader(fp) writer.writerows(reader.data_iter())