#!/usr/bin/env python
# -*- coding: cp1251 -*-


###################################
#Скрип позволяет переименовывать название файлов снимков Landsat 8
#вида LO81740192013153LGN00_B4.tif в LO817401902062013LGN00_B4.tif,
#т.е. на основе порядкого номера дня съемки (153 день 2013 г.) вычисляет день и месяц (02 06 2013 - 2 июня 2013 г.)
#Скрипт полезен для работы с снимками Lansat 8, т.к. в отличие от Lansat 5,7
#в названии файлов изображений указывается только номер дня съемки и не расшифровывается дата (день, месяц)
#
#P.s. за код не ругайте, я только учусь ...
#####################################

#landsat_8='LO81740192013153LGN00'
#landsat_5='LT51740192011228MOR00'

import calendar
import os

path=raw_input("Enter path to folder: ")
path=os.path.normpath(path)
while os.path.exists(path)==False:
    print ('directory does not exist')
    path=raw_input('please, enter the directory')
    path=os.path.normpath(path)
    
#path='C:/Arhiv_snimkov/2010/'

folder=os.listdir(path) # отображает список ФАЙЛОВ в заданной директории

def days_month_year(days,year,month):
    while 1:
        weekday_for_first_day, last_month_day = calendar.monthrange(year, month)
        if (days-last_month_day) >0: 
            days-=last_month_day
            month+=1
        else: 
            print days, month, year
            #print calendar.weekday(year, month, days)
            break
    return (days, month, year)

def reName(path,days,month,year):
    listOfFiles=os.listdir(path)
    for i in range(len(listOfFiles)):
        oldName=listOfFiles[i]
        newName=oldName[:9]+str(days)+str(month)+str(year)+oldName[16:]
        print path+'/'+listOfFiles[i]
        os.rename(path+'/'+listOfFiles[i], path+'/'+newName)
   

        
for i in range(len(folder)):
    landsat_8=folder[i]
    if (landsat_8[:3]=='LT5') or (landsat_8[:3]=='LE7') or (landsat_8[:3]=='LC8') or (landsat_8[:3]=='LO8'):
        year=int(landsat_8[9:13])
        days=int(landsat_8[13:16])
        path_row_first=landsat_8[0:9]
        path_row_last=landsat_8[16:]
        month=1
        d_m_y=days_month_year(days,year,month)
        #stroka=path+folder[i]+'/'+path_row_first+str(d_m_y[0])+str(d_m_y[1])+str(d_m_y[2])+path_row_last
        #stroka=os.path.join(path,folder[i],str(d_m_y[0])+'_'+str(d_m_y[1])+"_"+str(d_m_y[2]))
        stroka=os.path.join(path,folder[i])
        print stroka
        #rename('C:/Arhiv_snimkov/2013/LC81760202013103LGN01/',19,5,2013)
        if d_m_y[0]<10: days0='0'+str(d_m_y[0])
        else: days0=str(d_m_y[0])
        if d_m_y[1]<10: month0='0'+str(d_m_y[1])
        else: month0=str(d_m_y[1])
        reName(stroka,days0,month0,str(d_m_y[2]))
        #output_file=open(stroka,'w') # открываем файл для записи, если файла не существует, создаем его заново
        #output_file.write(str(d_m_y[0])+' '+str(d_m_y[1])+' '+str(d_m_y[2]))

#os.mkdir(path) # - создает в заданной директории папку 'my_dir'
#os.rename('aaaaaaaaaa.txt','a.txt') # переименовывает файл в заданной директории










