示例#1
0
def uploadFileName():
    path = '/Users/hugh/Projects/Feeling_Code/ToolProject/Upload-Python/static/wedding/'
    fileNames = os.listdir(path)
    print(fileNames)
    for fileName in fileNames:
        photoSet = PhotoSet()
        photoSet.set('tags', ['婚纱'])
        photoSet.set('title', '婚纱')
        print(fileName + ' uploading!')
        with open(path + fileName) as f:
            print(path + fileName)
            avatar = leancloud.File(fileName, f, 'image/jpeg')
            photo = Photo()
            photo.set(
                'metaData', {
                    "format": "jpeg",
                    "height": 1365,
                    "orientation": "Top-left",
                    "colorModel": "ycbcr",
                    "width": 2048
                })
            photo.set('photoFile', avatar)
            photo.save()
            photoSet.set('coverPhoto', photo)
            relation = photoSet.relation('photos')
            relation.add(photo)
            photoSet.save()
def addIcon(rootdir, extradir):
    query = leancloud.Query(Clothes)
    cnt = 0
    for parent, dirnames, filenames in os.walk(rootdir):
        for filename in filenames:
            if filename.find('PNG') > 0 or filename.find('png') > 0:
                rid = str(filename).split('.')[0].split('icon')[1]
                print(rid)
                query.equal_to('rid', rid)
                res = query.find()
                if len(res) == 1:
                    cloth = query.first()
                    try:
                        with open(os.path.join(parent, filename)) as f:
                            avatar = leancloud.File('fileFromLocalFile', f)
                            avatar.save()
                            # avatar_id = avatar.id
                            iconUrl = avatar.url
                            cloth.set('iconUrl', iconUrl)
                            cloth.save()
                            cnt += 1

                    except:
                        shutil.copy(os.path.join(parent, filename),
                                    os.path.join(extradir, filename))
                        print filename, 'failed to update'

                else:
                    shutil.copy(os.path.join(parent, filename),
                                os.path.join(extradir, filename))
                    print filename, 'failed to find'
    print cnt, 'updated'
示例#3
0
def uploadImageByPath(folderpath=str, filename=str):
    tempfilepath = folderpath + '/' + filename
    with open(tempfilepath, 'r+b') as f:
        avatar = leancloud.File(filename, f)
        avatar.save()
        object_id = avatar.id
        return object_id
示例#4
0
文件: utils.py 项目: dlmyb/python-sdk
def decode(key, value):
    if isinstance(value, get_dumpable_types()):
        return value

    if isinstance(value, (tuple, list)):
        return [decode(key, x) for x in value]

    if not isinstance(value, dict):
        return value

    if '__type' not in value:
        return dict([(k, decode(k, v)) for k, v in iteritems(value)])

    _type = value['__type']

    if _type == 'Pointer':
        value = copy.deepcopy(value)
        class_name = value['className']
        pointer = leancloud.Object.create(class_name)
        if 'createdAt' in value:
            value.pop('__type')
            value.pop('className')
            pointer._update_data(value)
        else:
            pointer._update_data({'objectId': value['objectId']})
        return pointer

    if _type == 'Object':
        value = copy.deepcopy(value)
        class_name = value['className']
        value.pop('__type')
        value.pop('className')
        obj = leancloud.Object.create(class_name)
        obj._update_data(value)
        return obj

    if _type == 'Date':
        return arrow.get(iso8601.parse_date(value['iso'])).to('local').datetime

    if _type == 'GeoPoint':
        return leancloud.GeoPoint(latitude=value['latitude'], longitude=value['longitude'])

    if key == 'ACL':
        if isinstance(value, leancloud.ACL):
            return value
        return leancloud.ACL(value)

    if _type == 'Relation':
        relation = leancloud.Relation(None, key)
        relation.target_class_name = value['className']
        return relation

    if _type == 'File':
        f = leancloud.File(value['name'])
        meta_data = value.get('metaData')
        if meta_data:
            f._metadata = meta_data
        f._url = value['url']
        f.id = value['objectId']
        return f
 def post(self, request):
     src = request.body.decode('utf-8')
     # 检测用户上传文件是否为图片
     if src[9:14] != 'image':
         return JsonResponse({"msg": "fail"})
     # 定位文件所包含base64编码信息的位置并进行解码转换存入内存文件
     res = src.find('base64,')
     result_src = src[res + len('base64,'):]
     f = BytesIO()
     data = base64.b64decode(result_src)
     f.write(data)
     img = InMemoryUploadedFile(f, None, "image", len(data), None, None)
     # 将文件上传至云服务器
     leancloud.init('tiM1T9UGqwf6QTyXkn9kcL9z-gzGzoHsz',
                    '1GzzyA6uv4l8JNGd6etu5V5o')
     execute = leancloud.File('image', img)
     execute.save()
     result_qrcode = qrcode.make(execute.url)
     buf = BytesIO()
     result_qrcode.save(buf)
     img_stream = buf.getvalue()
     result_img = base64.b64encode(img_stream)
     return JsonResponse({
         "msg": "success",
         "image": bytes.decode(result_img, 'utf-8')
     })
示例#6
0
def upload_file():
    fn = str(int(time.time() * 1000)) + ".jpg"
    io = StringIO()
    io.write(request.files['file'].read())
    file = leancloud.File(fn, io)
    file.save()
    io.close()
    return '{"status": 0, "url": "%s", "id": "%s"}' % (file.url, file.id)
示例#7
0
def uplean(upurl, filename):
    # leancloud 密钥 上传文件代码
    # leancloud密钥
    leancloud.init("<您的AppID>", "<您的appKey>")
    with open(upurl, 'rb') as f:
        file = leancloud.File(filename, f)
        files = file.save()
        return file._url
示例#8
0
def get_image(url, key):
    print('http://app.haidais.cn' + url, key)
    r = requests.get('http://app.haidais.cn' + url, stream=True)
    data = StringIO('LeanCloud')
    file = leancloud.File(key, r.content)
    try:
        file.save()
        print(file.url)
        return file.url
    except:
        pass
 def post(self, request):
     file_obj = request.FILES.get('file')
     if file_obj:
         print(file_obj)
         leancloud.init('tiM1T9UGqwf6QTyXkn9kcL9z-gzGzoHsz',
                        '1GzzyA6uv4l8JNGd6etu5V5o')
         execute = leancloud.File('File', file_obj)
         execute.save()
         result_qrcode = qrcode.make(execute.url)
         buf = BytesIO()
         result_qrcode.save(buf)
         image_stream = buf.getvalue()
         resule_image = base64.b64encode(image_stream)
         return JsonResponse({
             "msg": "success",
             "image": bytes.decode(resule_image, 'utf-8')
         })
     return JsonResponse({"msg": 'fail'})
def updatePic(rootdir):
    query = leancloud.Query(Clothes)
    cnt = 0
    for parent, dirnames, filenames in os.walk(rootdir):
        for filename in filenames:
            if filename.find('PNG') > 0 or filename.find('png') > 0:
                im = Image.open(rootdir + filename)
                clothname = str(filename).split('.PNG')[0]
                query.equal_to('name', clothname)
                res = query.find()
                if len(res) == 1:
                    cloth = query.first()
                    cloth.get('pic')
                    old_pic = str(cloth.get('picUrl')).strip()
                    # noinspection PyBroadException
                    if old_pic is not None or old_pic is not '':
                        try:
                            desc = PicProcessing.getDesc(
                                os.path.join(parent, filename))

                            with open(os.path.join(parent, filename)) as f:
                                avatar = leancloud.File('fileFromLocalFile', f)
                                avatar.save()
                                # avatar_id = avatar.id
                                picUrl = avatar.url
                                cloth.set('pic', avatar)
                                cloth.set('picUrl', picUrl)
                                cloth.set('description', resFormat(desc))

                                cloth.save()
                                cnt += 1

                        except:
                            print filename, 'failed to update'
                            im.save(
                                '/users/gejiali/Documents/Game/nikkic/pic/en/'
                                + filename)
                    else:
                        print filename, 'already has pic'
                else:
                    print filename, 'failed to find'
                    im.save('/users/gejiali/Documents/Game/nikkic/pic/en/' +
                            filename)
    print cnt, 'updated'
示例#11
0
def save_file(filename, data):
    # data_hash = hashlib.md5(data).hexdigest() # 一致 26771cad667b860261090a8d52f3299c wwj 缓存在user_img_cache里做
    # https://leancloud.cn/docs/leanstorage_guide-python.html#从数据流构建文件
    cloud_file = leancloud.File(filename, data)
    cloud_file.save()
    return cloud_file.url
示例#12
0
import leancloud
import logging

logging.basicConfig(level=logging.DEBUG)

leancloud.init("3AJTBW5QyGw17hLxNN3njGHW-gzGzoHsz", "P8cKdEvRxusfuR27MuhvFOzr")

with open('JBL-GO2-QSG_Multilingual_HD.pdf') as f:
    test_upload_text_file = leancloud.File('fileFromLocalFile', f)
    test_upload_text_file.save()
示例#13
0
def print_group_image_msg(msg):
    file = leancloud.File(msg.file_name, msg.get_file())
    file.save()
    rcv_msg(msg.receiver.puid, msg.receiver.name, msg.sender.puid,
            msg.sender.name, msg.file_name)
示例#14
0
def print_friend_image_msg(msg):
    file = leancloud.File(msg.file_name, msg.get_file())
    file.save()
    rcv_msg(msg.sender.puid, None, msg.sender.puid, msg.sender.name,
            msg.file_name)
示例#15
0
import leancloud

leancloud.init("Yf3MSyqMdVjhofKx5vflC4eF-MdYXbMMI", "n63Ne1Jj2bs17yGUPzSuYq7K")

Person = leancloud.Object.extend('Person')

with open('testfile.jpg', 'rb') as f:
    file = leancloud.File('testfile.jpg', f)
    file.save()

D = Person()
D.set('Name', 'Unknown')
D.set('Profile', file)
D.save()
        face = cv2.imdecode(arr, -1)
        # now I get the image: face

        name = 'unknown'
        face_locations = face_recognition.face_locations(face)
        face_encodings = face_recognition.face_encodings(face, face_locations)

        for face_encoding in face_encodings:  # actually, only one face
            # See if the face is a match for the known face(s)
            match = face_recognition.compare_faces([master_face_encoding],
                                                   face_encoding)
            name = "unknown"

            if match[0]:  #
                name = "master"

        g_count = g_count + 1
        Todo = visitRecord()
        Todo.set('name', name)
        mbuffer = cv2.imencode('.jpg', face)[1].tostring()
        recoged_face = leancloud.File('image.jpg', StringIO(mbuffer))
        t_time = str(datetime.now()).split('.')[0]
        Todo.set('visittime', t_time)
        Todo.set('image', recoged_face)
        Todo.set('num', g_count)
        Todo.save()

        cv2.imshow('face', face)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
示例#17
0
def decode(key, value):
    if isinstance(value, get_dumpable_types()):
        return value

    if isinstance(value, (tuple, list)):
        return [decode(key, x) for x in value]

    if not isinstance(value, dict):
        return value

    if key == "ACL":
        if isinstance(value, leancloud.ACL):
            return value
        return leancloud.ACL(value)

    if "__type" not in value:
        return dict([(k, decode(k, v)) for k, v in six.iteritems(value)])

    _type = value["__type"]

    if _type == "Pointer":
        value = copy.deepcopy(value)
        class_name = value["className"]
        pointer = leancloud.Object.create(class_name)
        if "createdAt" in value:
            value.pop("__type")
            value.pop("className")
            pointer._update_data(value)
        else:
            pointer._update_data({"objectId": value["objectId"]})
        return pointer

    if _type == "Object":
        value = copy.deepcopy(value)
        class_name = value["className"]
        value.pop("__type")
        value.pop("className")
        obj = leancloud.Object.create(class_name)
        obj._update_data(value)
        return obj

    if _type == "Date":
        return arrow.get(iso8601.parse_date(value["iso"])).to("local").datetime

    if _type == "GeoPoint":
        return leancloud.GeoPoint(
            latitude=value["latitude"], longitude=value["longitude"]
        )

    if _type == "Relation":
        relation = leancloud.Relation(None, key)
        relation.target_class_name = value["className"]
        return relation

    if _type == "File":
        f = leancloud.File(value["name"])
        meta_data = value.get("metaData")
        if meta_data:
            f._metadata = meta_data
        f._url = value["url"]
        f.id = value["objectId"]
        return f
示例#18
0
    async def update(self, fileUrl, fileName):
        def Filter(data_acc, Low_cutoff, High_cutoff, F_sample, N):
            [Low_point, High_point] = map(lambda F: F / F_sample * N,
                                          [Low_cutoff, High_cutoff])
            yf = np.fft.fft(data_acc)
            Filtered_spectrum = [
                yf[i] if i > Low_point and i <= High_point else 0.0
                for i in range(N // 2 + 1)
            ]
            return Filtered_spectrum

        def integration_disp(Filtered_spectrum):
            [omiga] = map(lambda x: 2 * np.pi * x, [xf])
            D_lefthalf = 0.0 - Filtered_spectrum[1:N // 2] * (
                1 / (omiga[1:N // 2] * omiga[1:N // 2]))
            D_righthalf = np.flip(D_lefthalf, 0)
            D_righthalf_conj = np.conjugate(D_righthalf)
            D_index0 = np.insert(D_lefthalf, 0, Filtered_spectrum[0])
            D_index0_ = np.append(D_index0, Filtered_spectrum[-1].real)
            D = np.hstack((D_index0_, D_righthalf_conj))
            return D

        def fpy(beta, h, Ts, Te, F_sample, acc):
            N = len(acc)
            freq = np.linspace(0, F_sample, N)
            T = 1 / freq
            T[0] = N
            Spec = Spectrum(dt, Ts, Te, T)
            Sa = Spec.responseSpectrum(acc, dt, T, h, beta)
            return Sa

        #now = time.strftime('%H%M%S', time.localtime(time.time()))
        date = time.strftime('%Y%m%d', time.localtime(time.time()))
        fileUrl = fileUrl
        fileName = fileName
        #fileUrl = '/Users/mashanmu/Desktop/十九中数据转换/十九中振动监测_20200712063859.txt'
        #fileName = '2020-07-02 06:38:59.txt'

        with open(fileUrl, 'rb') as f:
            data = f.read()
            data = data[3002:]
            data = data.decode()
            data = re.split("\r\n|\t", data)
            data.pop()

        x = []
        y = []
        z = []

        SaX = []
        SaY = []
        SaZ = []

        lenth = int(len(data) / 35)
        for j in range(0, lenth):
            accX = float(data[32 + j * 35])
            accY = float(data[33 + j * 35])
            accZ = float(data[34 + j * 35])

            x.append(accX)
            y.append(accY)
            z.append(accZ)

        #print(x)

        pga = []
        pgaUD = []
        pgaValue = ''
        pgaUDValue = ''

        pga.append(max(x) * 100)
        pga.append(max(y) * 100)
        pgaUD.append(max(z) * 100)

        pgaValue = max(pga)
        pgaUDValue = max(pgaUD)
        print(pgaValue)
        print(pgaUDValue)

        try:
            TriggeredData = leancloud.Object.extend('SHD_PGAValue')
            triggeredData = TriggeredData()
            triggeredData.set('project', '北京市第十九中学')
            triggeredData.set('device', '震创')
            triggeredData.set('pga', pgaValue)
            triggeredData.set('latitude', '39.969362')
            triggeredData.set('longitude', '116.305142')
            triggeredData.save()

        except:
            pass
            print('pga save failed.')

        ## %%
        beta = 1 / 6
        h = 0.05

        Ts = 0.1  # Spectrum Period Starts at Ts (Sec)
        Te = 10  # Spectrum Period End at Te (Sec)

        F_sample = 100
        dt = 1 / F_sample
        N = len(x)  # Length of signal

        freq = np.linspace(0, F_sample, N)
        xf = np.linspace(0.0, F_sample / 2, N // 2 + 1)

        T = 1 / freq
        T[0] = N
        Spec = Spectrum(dt, Ts, Te, T)
        #SaT = Spec.designSpectrum(T)
        SaX = Spec.responseSpectrum(x, dt, T, h, beta)
        SaY = Spec.responseSpectrum(y, dt, T, h, beta)
        SaZ = Spec.responseSpectrum(z, dt, T, h, beta)

        #print(SaX)

        ##通道:1-6 5层
        try:
            #for i in range(0, 35):
            str = ''
            lenth = int(len(data) / 35)

            x = []
            y = []
            z = []

            diftX = []
            diftY = []

            for j in range(0, lenth):

                accX = float(data[3 + j * 35]) * 100
                accY = float(data[4 + j * 35]) * 100
                accZ = float(data[5 + j * 35]) * 100

                dispX = float(data[1 + j * 35])
                dispY = float(data[2 + j * 35])

                value = ';%.6f;%.6f;%.6f;%.6f;%.6f;;%.6f;%.6f;%.6f;' % (
                    accX, accY, accZ, dispX, dispY, SaX[j], SaY[j], SaZ[j])
                str = str + value + '\n'

                x.append(accX)
                y.append(accY)
                z.append(accZ)

                diftX.append(dispX)
                diftY.append(dispY)

            Filtered_spectrum_FLX = Filter(x, 0.1, 10, F_sample, N)
            Filtered_spectrum_FLY = Filter(y, 0.1, 10, F_sample, N)

            D_FLX = integration_disp(Filtered_spectrum_FLX)
            D_FLY = integration_disp(Filtered_spectrum_FLY)

            d_FLX = np.fft.ifft(D_FLX)
            d_FLY = np.fft.ifft(D_FLY)

            maxDiftX = max(d_FLX)
            maxDiftY = max(d_FLY)
            maxDispX = max(diftX)
            #maxDispY = max(diftY)

            print("5层东西向最大层间位移及层间位移角", maxDiftX.real, maxDiftX.real / 420)
            print("5层南北向最大层间位移及层间位移角", maxDiftY.real, maxDiftY.real / 420)
            print("maxDispX", maxDispX)
            print("End")

            pga = []
            pgaUD = []
            pgaValue = ''
            pgaUDValue = ''

            pga.append(max(x))
            pga.append(max(y))
            pgaUD.append(max(z))

            pgaValue = '%.6f' % max(pga)
            pgaUDValue = '%.6f' % max(pgaUD)

            summary = 'Sampling Rate; 100'
            str = str + summary

            #print(str)

            fileData = StringIO(str)
            file = leancloud.File(fileName, fileData)
            file.save()

            deviceName = '教学楼L5'

            TriggeredData = leancloud.Object.extend('TriggeredData')
            triggeredData = TriggeredData()
            triggeredData.set('project', '北京市第十九中学')
            triggeredData.set('device', deviceName)
            triggeredData.set('date', date)
            triggeredData.set('data', file)
            triggeredData.set('pga', pgaValue)
            triggeredData.set('pgaUD', pgaUDValue)
            triggeredData.save()

        except:
            pass
            print('通道:1-6 save file failed.')

        ##通道:7-11
        try:
            #for i in range(0, 35):
            str = ''
            lenth = int(len(data) / 35)

            x = []
            y = []
            z = []

            for j in range(0, lenth):

                accX = float(data[8 + j * 35]) * 100
                accY = float(data[9 + j * 35]) * 100
                accZ = float(data[10 + j * 35]) * 100

                dispX = float(data[6 + j * 35])
                dispY = float(data[7 + j * 35])

                value = ';%.6f;%.6f;%.6f;%.6f;%.6f;;%.6f;%.6f;%.6f;' % (
                    accX, accY, accZ, dispX, dispY, SaX[j], SaY[j], SaZ[j])
                str = str + value + '\n'

                x.append(accX)
                y.append(accY)
                z.append(accZ)

            Filtered_spectrum_FLX = Filter(x, 0.1, 10, F_sample, N)
            Filtered_spectrum_FLY = Filter(y, 0.1, 10, F_sample, N)

            D_FLX = integration_disp(Filtered_spectrum_FLX)
            D_FLY = integration_disp(Filtered_spectrum_FLY)

            d_FLX = np.fft.ifft(D_FLX)
            d_FLY = np.fft.ifft(D_FLY)

            maxDiftX = max(d_FLX)
            maxDiftY = max(d_FLY)

            print("4层东西向最大层间位移及层间位移角", maxDiftX.real, maxDiftX.real / 420)
            print("4层南北向最大层间位移及层间位移角", maxDiftY.real, maxDiftY.real / 420)
            print("End")

            pga = []
            pgaUD = []
            pgaValue = ''
            pgaUDValue = ''

            pga.append(max(x))
            pga.append(max(y))
            pgaUD.append(max(z))

            pgaValue = '%.6f' % max(pga)
            pgaUDValue = '%.6f' % max(pgaUD)

            #print(value)
            #print(len(value))
            summary = 'Sampling Rate; 100'
            str = str + summary

            #print(str)

            fileData = StringIO(str)
            file = leancloud.File(fileName, fileData)
            file.save()

            deviceName = '教学楼L4'

            TriggeredData = leancloud.Object.extend('TriggeredData')
            triggeredData = TriggeredData()
            triggeredData.set('project', '北京市第十九中学')
            triggeredData.set('device', deviceName)
            triggeredData.set('date', date)
            triggeredData.set('data', file)
            triggeredData.set('pga', pgaValue)
            triggeredData.set('pgaUD', pgaUDValue)
            triggeredData.save()

        except:
            pass
            print('通道:7-11 save file failed.')

        ##通道:12-14
        try:
            #for i in range(0, 35):
            str = ''
            lenth = int(len(data) / 35)

            x = []
            y = []
            z = []

            for j in range(0, lenth):

                accX = float(data[11 + j * 35]) * 100
                accY = float(data[12 + j * 35]) * 100
                accZ = float(data[13 + j * 35]) * 100

                #dispX = float(data[7+j*35])
                #dispY = float(data[8+j*35])

                value = ';%.6f;%.6f;%.6f;%.6f;%.6f;;%.6f;%.6f;%.6f;' % (
                    accX, accY, accZ, dispX, dispY, SaX[j], SaY[j], SaZ[j])
                str = str + value + '\n'

                x.append(accX)
                y.append(accY)
                z.append(accZ)

            Filtered_spectrum_FLX = Filter(x, 0.1, 10, F_sample, N)
            Filtered_spectrum_FLY = Filter(y, 0.1, 10, F_sample, N)

            D_FLX = integration_disp(Filtered_spectrum_FLX)
            D_FLY = integration_disp(Filtered_spectrum_FLY)

            d_FLX = np.fft.ifft(D_FLX)
            d_FLY = np.fft.ifft(D_FLY)

            maxDiftX = max(d_FLX)
            maxDiftY = max(d_FLY)

            print("3层东西向最大层间位移及层间位移角", maxDiftX.real, maxDiftX.real / 420)
            print("3层南北向最大层间位移及层间位移角", maxDiftY.real, maxDiftY.real / 420)
            print("End")

            pga = []
            pgaUD = []
            pgaValue = ''
            pgaUDValue = ''

            pga.append(max(x))
            pga.append(max(y))
            pgaUD.append(max(z))

            pgaValue = '%.6f' % max(pga)
            pgaUDValue = '%.6f' % max(pgaUD)

            #print(value)
            #print(len(value))
            summary = 'Sampling Rate; 100'
            str = str + summary

            #print(str)

            fileData = StringIO(str)
            file = leancloud.File(fileName, fileData)
            file.save()

            deviceName = '教学楼L3'

            TriggeredData = leancloud.Object.extend('TriggeredData')
            triggeredData = TriggeredData()
            triggeredData.set('project', '北京市第十九中学')
            triggeredData.set('device', deviceName)
            triggeredData.set('date', date)
            triggeredData.set('data', file)
            triggeredData.set('pga', pgaValue)
            triggeredData.set('pgaUD', pgaUDValue)
            triggeredData.save()

        except:
            pass
            print('通道:12-14 save file failed.')

        ##通道:15-19
        try:
            #for i in range(0, 35):
            str = ''
            lenth = int(len(data) / 35)

            x = []
            y = []
            z = []

            for j in range(0, lenth):

                accX = float(data[14 + j * 35]) * 100
                accY = float(data[15 + j * 35]) * 100
                accZ = float(data[16 + j * 35]) * 100

                #dispX = float(data[7+j*35])
                #dispY = float(data[8+j*35])

                value = ';%.6f;%.6f;%.6f;%.6f;%.6f;;%.6f;%.6f;%.6f;' % (
                    accX, accY, accZ, dispX, dispY, SaX[j], SaY[j], SaZ[j])
                str = str + value + '\n'

                x.append(accX)
                y.append(accY)
                z.append(accZ)

            Filtered_spectrum_FLX = Filter(x, 0.1, 10, F_sample, N)
            Filtered_spectrum_FLY = Filter(y, 0.1, 10, F_sample, N)

            D_FLX = integration_disp(Filtered_spectrum_FLX)
            D_FLY = integration_disp(Filtered_spectrum_FLY)

            d_FLX = np.fft.ifft(D_FLX)
            d_FLY = np.fft.ifft(D_FLY)

            maxDiftX = max(d_FLX)
            maxDiftY = max(d_FLY)

            print("2层东西向最大层间位移及层间位移角", maxDiftX.real, maxDiftX.real / 420)
            print("2层南北向最大层间位移及层间位移角", maxDiftY.real, maxDiftY.real / 420)
            print("End")

            pga = []
            pgaUD = []
            pgaValue = ''
            pgaUDValue = ''

            pga.append(max(x))
            pga.append(max(y))
            pgaUD.append(max(z))

            pgaValue = '%.6f' % max(pga)
            pgaUDValue = '%.6f' % max(pgaUD)

            #print(value)
            #print(len(value))
            summary = 'Sampling Rate; 100'
            str = str + summary

            #print(str)

            fileData = StringIO(str)
            file = leancloud.File(fileName, fileData)
            file.save()

            deviceName = '教学楼L2'

            TriggeredData = leancloud.Object.extend('TriggeredData')
            triggeredData = TriggeredData()
            triggeredData.set('project', '北京市第十九中学')
            triggeredData.set('device', deviceName)
            triggeredData.set('date', date)
            triggeredData.set('data', file)
            triggeredData.set('pga', pgaValue)
            triggeredData.set('pgaUD', pgaUDValue)
            triggeredData.save()

        except:
            pass
            print('通道:15-19 save file failed.')

        ##通道:20-22
        try:
            #for i in range(0, 35):
            str = ''
            lenth = int(len(data) / 35)

            x = []
            y = []
            z = []

            for j in range(0, lenth):

                accX = float(data[19 + j * 35]) * 100
                accY = float(data[20 + j * 35]) * 100
                accZ = float(data[21 + j * 35]) * 100

                #dispX = float(data[7+j*35])
                #dispY = float(data[8+j*35])

                value = ';%.6f;%.6f;%.6f;%.6f;%.6f;;%.6f;%.6f;%.6f;' % (
                    accX, accY, accZ, dispX, dispY, SaX[j], SaY[j], SaZ[j])
                str = str + value + '\n'

                x.append(accX)
                y.append(accY)
                z.append(accZ)

            Filtered_spectrum_FLX = Filter(x, 0.1, 10, F_sample, N)
            Filtered_spectrum_FLY = Filter(y, 0.1, 10, F_sample, N)

            D_FLX = integration_disp(Filtered_spectrum_FLX)
            D_FLY = integration_disp(Filtered_spectrum_FLY)

            d_FLX = np.fft.ifft(D_FLX)
            d_FLY = np.fft.ifft(D_FLY)

            maxDiftX = max(d_FLX)
            maxDiftY = max(d_FLY)

            print("1层东西向最大层间位移及层间位移角", maxDiftX.real, maxDiftX.real / 420)
            print("1层南北向最大层间位移及层间位移角", maxDiftY.real, maxDiftY.real / 420)
            print("End")

            pga = []
            pgaUD = []
            pgaValue = ''
            pgaUDValue = ''

            pga.append(max(x))
            pga.append(max(y))
            pgaUD.append(max(z))

            pgaValue = '%.6f' % max(pga)
            pgaUDValue = '%.6f' % max(pgaUD)

            #print(value)
            #print(len(value))
            summary = 'Sampling Rate; 100'
            str = str + summary

            #print(str)

            fileData = StringIO(str)
            file = leancloud.File(fileName, fileData)
            file.save()

            deviceName = '教学楼L1'

            TriggeredData = leancloud.Object.extend('TriggeredData')
            triggeredData = TriggeredData()
            triggeredData.set('project', '北京市第十九中学')
            triggeredData.set('device', deviceName)
            triggeredData.set('date', date)
            triggeredData.set('data', file)
            triggeredData.set('pga', pgaValue)
            triggeredData.set('pgaUD', pgaUDValue)
            triggeredData.save()

        except:
            pass
            print('通道:20-22 save file failed.')

        ##通道:23-32
        try:
            #for i in range(0, 35):
            str = ''
            lenth = int(len(data) / 35)

            x = []
            y = []
            z = []

            for j in range(0, lenth):

                accX = float(data[22 + j * 35]) * 100
                accY = float(data[23 + j * 35]) * 100
                accZ = float(data[24 + j * 35]) * 100

                #dispX = float(data[7+j*35])
                #dispY = float(data[8+j*35])

                value = ';%.6f;%.6f;%.6f;%.6f;%.6f;;%.6f;%.6f;%.6f;' % (
                    accX, accY, accZ, dispX, dispY, SaX[j], SaY[j], SaZ[j])
                str = str + value + '\n'

                x.append(accX)
                y.append(accY)
                z.append(accZ)

            Filtered_spectrum_FLX = Filter(x, 0.1, 10, F_sample, N)
            Filtered_spectrum_FLY = Filter(y, 0.1, 10, F_sample, N)

            D_FLX = integration_disp(Filtered_spectrum_FLX)
            D_FLY = integration_disp(Filtered_spectrum_FLY)

            d_FLX = np.fft.ifft(D_FLX)
            d_FLY = np.fft.ifft(D_FLY)

            maxDiftX = max(d_FLX)
            maxDiftY = max(d_FLY)

            print("B1层东西向最大层间位移及层间位移角", maxDiftX.real, maxDiftX.real / 420)
            print("B1层南北向最大层间位移及层间位移角", maxDiftY.real, maxDiftY.real / 420)
            print("End")

            pga = []
            pgaUD = []
            pgaValue = ''
            pgaUDValue = ''

            pga.append(max(x))
            pga.append(max(y))
            pgaUD.append(max(z))

            pgaValue = '%.6f' % max(pga)
            pgaUDValue = '%.6f' % max(pgaUD)

            #print(value)
            #print(len(value))
            summary = 'Sampling Rate; 100'
            str = str + summary

            #print(str)

            fileData = StringIO(str)
            file = leancloud.File(fileName, fileData)
            file.save()

            deviceName = '教学楼B1'

            TriggeredData = leancloud.Object.extend('TriggeredData')
            triggeredData = TriggeredData()
            triggeredData.set('project', '北京市第十九中学')
            triggeredData.set('device', deviceName)
            triggeredData.set('date', date)
            triggeredData.set('data', file)
            triggeredData.set('pga', pgaValue)
            triggeredData.set('pgaUD', pgaUDValue)
            triggeredData.save()

        except:
            pass
            print('通道:23-32 save file failed.')

        ##通道:33-35
        try:
            #for i in range(0, 35):
            str = ''
            lenth = int(len(data) / 35)

            x = []
            y = []
            z = []

            for j in range(0, lenth):

                accX = float(data[32 + j * 35]) * 100
                accY = float(data[33 + j * 35]) * 100
                accZ = float(data[34 + j * 35]) * 100

                #dispX = float(data[7+j*35])
                #dispY = float(data[8+j*35])

                value = ';%.6f;%.6f;%.6f;%.6f;%.6f;;%.6f;%.6f;%.6f;' % (
                    accX, accY, accZ, dispX, dispY, SaX[j], SaY[j], SaZ[j])
                str = str + value + '\n'

                x.append(accX)
                y.append(accY)
                z.append(accZ)

            pga = []
            pgaUD = []
            pgaValue = ''
            pgaUDValue = ''

            pga.append(max(x))
            pga.append(max(y))
            pgaUD.append(max(z))

            pgaValue = '%.6f' % max(pga)
            pgaUDValue = '%.6f' % max(pgaUD)

            #print(value)
            #print(len(value))
            summary = 'Sampling Rate; 100'
            str = str + summary

            #print(str)

            fileData = StringIO(str)
            file = leancloud.File(fileName, fileData)
            file.save()

            deviceName = '自由场点'

            TriggeredData = leancloud.Object.extend('TriggeredData')
            triggeredData = TriggeredData()
            triggeredData.set('project', '北京市第十九中学')
            triggeredData.set('device', deviceName)
            triggeredData.set('date', date)
            triggeredData.set('data', file)
            triggeredData.set('pga', pgaValue)
            triggeredData.set('pgaUD', pgaUDValue)
            triggeredData.set('isFreeField', '1')
            triggeredData.save()

        except:
            pass
            print('通道:33-35 save file failed.')
示例#19
0
def camare():
    # 初始化摄像头并且获取一个指向原始数据的引用
    camera = PiCamera()
    camera.resolution = tuple(conf["resolution"])
    camera.framerate = conf["fps"]
    camera.vflip = conf["vertical_flip"]
    camera.hflip = conf["horizontal_flip"]
    rawCapture = PiRGBArray(camera, size=tuple(conf["resolution"]))

    # 等待摄像头模块启动, 随后初始化平均帧, 最后
    # 上传时间戳, 以及运动帧计数器
    print "[INFO] warming up..."
    time.sleep(conf["camera_warmup_time"])
    avg = None
    lastUploaded = datetime.datetime.now()
    motionCounter = 0

    # 从摄像头逐帧捕获数据
    for f in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
        # 抓取原始NumPy数组来表示图像并且初始化
        # 时间戳以及occupied/unoccupied文本
        frame = f.array
        timestamp = datetime.datetime.now()
        text = "Unoccupied"

        # 调整帧尺寸,转换为灰阶图像并进行模糊
        frame = imutils.resize(frame, width=500)
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        gray = cv2.GaussianBlur(gray, (21, 21), 0)

        # 如果平均帧是None,初始化它
        if avg is None:
            print "[INFO] starting background model..."
            avg = gray.copy().astype("float")
            rawCapture.truncate(0)
            continue

        # accumulate the weighted average between the current frame and
        # previous frames, then compute the difference between the current
        # frame and running average
        cv2.accumulateWeighted(gray, avg, 0.5)
        frameDelta = cv2.absdiff(gray, cv2.convertScaleAbs(avg))

        # 对变化图像进行阀值化, 膨胀阀值图像来填补
        # 孔洞, 在阀值图像上找到轮廓线
        thresh = cv2.threshold(frameDelta, conf["delta_thresh"], 255,
                               cv2.THRESH_BINARY)[1]
        thresh = cv2.dilate(thresh, None, iterations=2)
        (cnts, _) = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL,
                                     cv2.CHAIN_APPROX_SIMPLE)

        # 遍历轮廓线
        for c in cnts:
            # if the contour is too small, ignore it
            if cv2.contourArea(c) < conf["min_area"]:
                continue

            # 计算轮廓线的外框, 在当前帧上画出外框,
            # 并且更新文本
            (x, y, w, h) = cv2.boundingRect(c)
            cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
            text = "Occupied"

        # 在当前帧上标记文本和时间戳
        ts = timestamp.strftime("%A %d %B %Y %I:%M:%S%p")
        cv2.putText(frame, "Room Status: {}".format(text), (10, 20),
                    cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
        cv2.putText(frame, ts, (10, frame.shape[0] - 10), cv2.FONT_HERSHEY_SIMPLEX,
                    0.35, (0, 0, 255), 1)

        # check to see if the room is occupied
        if text == "Occupied":
            # check to see if enough time has passed between uploads
            if (timestamp - lastUploaded).seconds >= conf["min_upload_seconds"]:
                # increment the motion counter
                motionCounter += 1

                # check to see if the number of frames with consistent motion is
                # high enough
                if motionCounter >= conf["min_motion_frames"]:
                    #  检查是否需要双船
                    if conf["use_leancloud"]:
                        # write the image to temporary file
                        t = TempImage()
                        cv2.imwrite(t.path, frame)
                        try:
                            with open(t.path) as f:
                                avatar = leancloud.File(t.path, f)
                                avatar.save()
                        finally:
                            t.cleanup()

                    # update the last uploaded timestamp and reset the motion
                    # counter
                    lastUploaded = timestamp
                    motionCounter = 0

        # otherwise, the room is not occupied
        else:
            motionCounter = 0

        # clear the stream in preparation for the next frame
        rawCapture.truncate(0)
示例#20
0
文件: app.py 项目: dlmyb/xdsanxi
def feedback():
    file = request.files
    form = request.form
    try:
        jwtoken = form.get("jwt")
        email = form.get("email")
    except KeyError:
        return Response("", 400)
    try:
        info = jwt.decode(jwtoken, JWT_KEY)
    except jwt.InvalidTokenError:
        return Response("Unexited User", 401)
    imgs = file.getlist("imgs")
    fileList = list()
    for img in imgs:
        if allowed_file(img.filename) and img:
            s = StringIO(img.read())
            fileObject = leancloud.File(img.filename, s)
            width, height = get_image_size(s, img.filename)
            fileObject.metadata['width'] = width
            fileObject.metadata['height'] = height
            fileObject.save()
            fileList.append(fileObject)
        else:
            return Response("", 400)

    # fileObject = leancloud.File(imgs.filename,StringIO(imgs.read()))
    # fileObject.save()
    # fileList.append(fileObject)

    description = form.get("description")
    u = leancloud.User.become(info["token"])
    Obj = leancloud.Object.create("bugList")
    Obj.set("description", description)
    Obj.set("imgs", fileList)
    Obj.set("upload", u)
    Obj.save()
    html = \
        u"""<!doctype html>
    <head>
    <meta charset="utf-8">
    </head>
    <html lang="zh-hans">
    <body>
    <p>存在一个 Bug,由 <b><a href="mailto:{email}">{name}</a></b> 用户提出,说明如下:</p>
    <p>{description}</p>
    </br>
    {img}
    </body></html>""".format(
        name=u.get("name"),
        description=description,
        email=email,
        img="\n".join([u"<img src=\"{}\" alt=\"img\" width=\"{}\" height=\"{}\">".format(
            img.url,
            img.metadata['width'],
            img.metadata['height']
        )
                       for img in fileList])
        )
    send(html)
    return Response("Upload success!", 200)