Changeset 480
- Timestamp:
- 02/10/12 21:34:31
- Files:
-
- qscatv4/trunk/ascat.py (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
qscatv4/trunk/ascat.py
r479 r480 10 10 start_year is YYYY format, 11 11 start_month is 1-12 for Jan-Dec, 12 start_day is 1-31, 12 13 end_year is YYYY format, 13 end_month is 1-12 for Jan-Dec. 14 end_month is 1-12 for Jan-Dec, 15 end_day is 1-31. 14 16 """ 15 17 … … 126 128 127 129 128 def _process(f, year, month):130 def _process(f, date): 129 131 """ 130 132 Fetch and extract all the files for a month. 131 133 """ 132 134 133 format = {'year': year, 'month': month,} 134 try: 135 os.chdir(work_dir) 136 sub_dir = os.path.join(base_subdir, 137 year_spec % format, 138 month_spec % format) 139 os.makedirs(sub_dir) 140 os.chdir(sub_dir) 141 except OSError, e: 142 if not str(e).startswith("[Errno 17] File exists"): 143 traceback.print_exc() 144 return False 145 day_range = range(1, calendar.monthrange(year, month)[1] + 1) 135 day_range = date['range'] 146 136 for day in day_range: 147 format.update({'day': day,})137 date.update({'day': day,}) 148 138 try: 149 139 print f.cwd(os.path.join(os.path.sep, 150 140 ftp_dir, 151 year_spec % format,152 month_spec % format,153 day_spec % format,141 year_spec % date, 142 month_spec % date, 143 day_spec % date, 154 144 "").replace(os.path.sep, '/')) 155 145 except KeyboardInterrupt: … … 163 153 return True 164 154 165 def ascat(start_year, start_month, end_year, end_month): 155 def ascat(start_year, start_month, start_day, 156 end_year, end_month, end_day): 166 157 """ 167 158 Fetch and extract a range of files. 168 159 169 ascat(start_year, start_month, end_year, end_month) -> None 170 171 start_year is inclusive. 172 start_month is 1-12 inclusive. 173 end_year is exclusive. 174 end_month is 2-13 exclusive. 160 ascat(start_year, start_month, start_day, 161 end_year, end_month, end_day ) -> None 162 163 start_year is inclusive, 164 start_month is 1-12 inclusive, 165 start_day is 1-31 inclusive, 166 end_year is exclusive, 167 end_month is 2-13 exclusive, 168 end_day is 2-32 exclusive. 175 169 """ 176 170 … … 189 183 month_range = range(_start_month, _end_month) 190 184 for month in month_range: 191 if not _process(f, year, month): continue 185 if year == year_range[0] and month == month_range[0]: 186 _start_day = start_day 187 else: 188 _start_day = 1 189 if year == year_range[-1] and month == month_range[-1]: 190 _end_day = end_day 191 else: 192 _end_day = calendar.monthrange(year, month)[1] + 1 193 day_range = range(_start_day, _end_day) 194 date = {'year': year, 195 'month': month, 196 'range': day_range, 197 } 198 try: 199 os.chdir(work_dir) 200 sub_dir = os.path.join(base_subdir, 201 year_spec % date, 202 month_spec % date) 203 os.makedirs(sub_dir) 204 os.chdir(sub_dir) 205 except OSError, e: 206 if not str(e).startswith("[Errno 17] File exists"): 207 traceback.print_exc() 208 continue 209 if not _process(f, date): continue 192 210 print f.quit() 193 211 194 212 if __name__ == '__main__': 195 213 try: 196 if len(sys.argv) != 5: raise214 if len(sys.argv) != 7: raise 197 215 start_year = int(sys.argv[1]) 198 216 start_month = int(sys.argv[2]) 199 end_year = int(sys.argv[3]) + 1 200 end_month = int(sys.argv[4]) + 1 217 start_day = int(sys.argv[3]) 218 end_year = int(sys.argv[4]) + 1 219 end_month = int(sys.argv[5]) + 1 220 end_day = int(sys.argv[6]) + 1 201 221 except KeyboardInterrupt: 202 222 raise … … 204 224 print __doc__ 205 225 sys.exit() 206 ascat(start_year, start_month, end_year, end_month) 226 ascat(start_year, start_month, start_day, 227 end_year, end_month, end_day)