コード例 #1
0
ファイル: minor_planet_views.py プロジェクト: skybber/czsky
def minor_planet_chart_pos_img(minor_planet_id, ra, dec):
    minor_planet = MinorPlanet.query.filter_by(id=minor_planet_id).first()
    if minor_planet is None:
        abort(404)

    minor_planet_ra = to_float(request.args.get('obj_ra'), None)
    minor_planet_dec = to_float(request.args.get('obj_dec'), None)

    flags = request.args.get('json')
    visible_objects = [] if flags else None
    trajectory_b64 = request.args.get('trajectory')
    if trajectory_b64:
        trajectory_json = base64.b64decode(trajectory_b64)
        trajectory = json.loads(trajectory_json)
    else:
        trajectory = None

    img_bytes = common_chart_pos_img(minor_planet_ra,
                                     minor_planet_dec,
                                     ra,
                                     dec,
                                     visible_objects=visible_objects,
                                     trajectory=trajectory)
    if visible_objects is not None:
        img = base64.b64encode(img_bytes.read()).decode()
        return jsonify(img=img, img_map=visible_objects)
    else:
        return send_file(img_bytes, mimetype='image/png')
コード例 #2
0
ファイル: double_star_views.py プロジェクト: skybber/czsky
def double_star_chart_pos_img(double_star_id, ra, dec):
    double_star = DoubleStar.query.filter_by(id=double_star_id).first()
    if double_star is None:
        abort(404)

    flags = request.args.get('json')
    visible_objects = [] if flags else None
    img_bytes = common_chart_pos_img(double_star.ra_first, double_star.dec_first, ra, dec, visible_objects=visible_objects)
    if visible_objects is not None:
        img = base64.b64encode(img_bytes.read()).decode()
        return jsonify(img=img, img_map=visible_objects)
    else:
        return send_file(img_bytes, mimetype='image/png')
コード例 #3
0
def observed_list_chart_pos_img(ra, dec):
    observed_list = ObservedList.create_get_observed_list_by_user_id(current_user.id)
    if observed_list is None:
        abort(404)

    highlights_dso_list = [ x.deepskyObject for x in observed_list.observed_list_items if observed_list.observed_list_items ]

    flags = request.args.get('json')
    visible_objects = [] if flags else None
    img_bytes = common_chart_pos_img(None, None, ra, dec, visible_objects=visible_objects, highlights_dso_list=highlights_dso_list)
    if visible_objects is not None:
        img = base64.b64encode(img_bytes.read()).decode()
        return jsonify(img=img, img_map=visible_objects)
    else:
        return send_file(img_bytes, mimetype='image/png')
コード例 #4
0
ファイル: constellation_views.py プロジェクト: skybber/czsky
def constellation_chart_pos_img(constellation_id, ra, dec):
    constellation = _find_constellation(constellation_id)
    if constellation is None:
        abort(404)

    flags = request.args.get('json')
    visible_objects = [] if flags else None
    img_bytes = common_chart_pos_img(constellation.label_ra,
                                     constellation.label_dec,
                                     ra,
                                     dec,
                                     visible_objects=visible_objects,
                                     hl_constellation=constellation.iau_code)
    if visible_objects is not None:
        img = base64.b64encode(img_bytes.read()).decode()
        return jsonify(img=img, img_map=visible_objects)
    else:
        return send_file(img_bytes, mimetype='image/png')
コード例 #5
0
ファイル: dso_list_views.py プロジェクト: skybber/czsky
def dso_list_chart_pos_img(dso_list_id, ra, dec):
    highlights_dso_list = _find_highlights_dso_list(dso_list_id)
    if highlights_dso_list is None:
        abort(404)

    flags = request.args.get('json')
    visible_objects = [] if flags else None
    img_bytes = common_chart_pos_img(None,
                                     None,
                                     ra,
                                     dec,
                                     visible_objects=visible_objects,
                                     highlights_dso_list=highlights_dso_list)
    if visible_objects is not None:
        img = base64.b64encode(img_bytes.read()).decode()
        return jsonify(img=img, img_map=visible_objects)
    else:
        return send_file(img_bytes, mimetype='image/png')
コード例 #6
0
def news_chart_pos_img(news_id, ra, dec):
    news = News.query.filter_by(id=news_id).first()
    if news is None:
        abort(404)
    if not news.is_released and (current_user.is_anonymous
                                 or not current_user.is_editor):
        abort(404)

    flags = request.args.get('json')
    visible_objects = [] if flags else None
    img_bytes = common_chart_pos_img(news.ra,
                                     news.dec,
                                     ra,
                                     dec,
                                     visible_objects=visible_objects)

    if visible_objects is not None:
        img = base64.b64encode(img_bytes.read()).decode()
        return jsonify(img=img, img_map=visible_objects)
    else:
        return send_file(img_bytes, mimetype='image/png')
コード例 #7
0
ファイル: sessionplan_views.py プロジェクト: skybber/czsky
def session_plan_chart_pos_img(session_plan_id, ra, dec):
    session_plan = SessionPlan.query.filter_by(id=session_plan_id).first()
    _check_session_plan(session_plan, allow_public=True)

    highlights_dso_list = [
        x.deepskyObject for x in session_plan.session_plan_items
        if session_plan
    ]

    flags = request.args.get('json')
    visible_objects = [] if flags else None
    img_bytes = common_chart_pos_img(None,
                                     None,
                                     ra,
                                     dec,
                                     visible_objects=visible_objects,
                                     highlights_dso_list=highlights_dso_list)
    if visible_objects is not None:
        img = base64.b64encode(img_bytes.read()).decode()
        return jsonify(img=img, img_map=visible_objects)
    else:
        return send_file(img_bytes, mimetype='image/png')
コード例 #8
0
ファイル: chart_views.py プロジェクト: skybber/czsky
def chart_pos_img(ra, dec):
    flags = request.args.get('json')

    mark_ra = request.args.get('mra', None)
    mark_dec = request.args.get('mdec', None)
    if mark_ra is not None and mark_dec is not None:
        f_mark_ra = float(mark_ra)
        f_mark_dec = float(mark_dec)
    else:
        f_mark_ra, f_mark_dec = None, None

    visible_objects = [] if flags else None
    img_bytes = common_chart_pos_img(f_mark_ra,
                                     f_mark_dec,
                                     ra,
                                     dec,
                                     visible_objects=visible_objects)

    if visible_objects is not None:
        img = base64.b64encode(img_bytes.read()).decode()
        return jsonify(img=img, img_map=visible_objects)
    else:
        return send_file(img_bytes, mimetype='image/png')
コード例 #9
0
def observing_session_chart_pos_img(observing_session_id, ra, dec):
    observing_session = ObservingSession.query.filter_by(
        id=observing_session_id).first()
    is_mine_observing_session = _check_observing_session(observing_session,
                                                         allow_public=True)

    highlights_dso_list = []

    for observation in observing_session.observations:
        highlights_dso_list.extend(observation.deepsky_objects)

    flags = request.args.get('json')
    visible_objects = [] if flags else None
    img_bytes = common_chart_pos_img(None,
                                     None,
                                     ra,
                                     dec,
                                     visible_objects=visible_objects,
                                     highlights_dso_list=highlights_dso_list)
    if visible_objects is not None:
        img = base64.b64encode(img_bytes.read()).decode()
        return jsonify(img=img, img_map=visible_objects)
    else:
        return send_file(img_bytes, mimetype='image/png')
コード例 #10
0
ファイル: deepskyobject_views.py プロジェクト: skybber/czsky
def deepskyobject_chart_pos_img(dso_id, ra, dec):
    dso, orig_dso = _find_dso(dso_id)
    if dso is None:
        abort(404)

    flags = request.args.get('json')
    visible_objects = [] if flags else None

    highlights_dso_list = None

    back = request.args.get('back')
    back_id = request.args.get('back_id')

    if back == 'dso_list' and back_id is not None:
        dso_list = DsoList.query.filter_by(id=back_id).first()
        if dso_list:
            highlights_dso_list = [
                x.deepskyObject for x in dso_list.dso_list_items if dso_list
            ]
    elif back == 'wishlist' and current_user.is_authenticated:
        wish_list = WishList.create_get_wishlist_by_user_id(current_user.id)
        highlights_dso_list = [
            x.deepskyObject for x in wish_list.wish_list_items
            if wish_list.wish_list_items
        ]
    elif back == 'session_plan':
        session_plan = SessionPlan.query.filter_by(id=back_id).first()
        if _allow_view_session_plan(session_plan):
            highlights_dso_list = [
                x.deepskyObject for x in session_plan.session_plan_items
                if session_plan
            ]
    elif back == 'observation':
        observing_session = ObservingSession.query.filter_by(
            id=back_id).first()
        if observing_session and (observing_session.is_public
                                  or observing_session.user_id
                                  == current_user.id):
            highlights_dso_list = []
            for observation in observing_session.observations:
                highlights_dso_list.extend(observation.deepsky_objects)
    elif back == 'observed_list' and current_user.is_authenticated:
        observed_list = ObservedList.create_get_observed_list_by_user_id(
            current_user.id)
        highlights_dso_list = [
            x.deepskyObject for x in observed_list.observed_list_items
            if observed_list.observed_list_items
        ]
    elif back == 'running_plan' and back_id is not None:
        observation_plan_run = ObsSessionPlanRun.query.filter_by(
            id=back_id).first()
        if observation_plan_run and _allow_view_session_plan(
                observation_plan_run.session_plan):
            highlights_dso_list = [
                x.deepskyObject
                for x in observation_plan_run.session_plan.session_plan_items
            ]

    img_bytes = common_chart_pos_img(dso.ra,
                                     dso.dec,
                                     ra,
                                     dec,
                                     dso_names=(dso.name, ),
                                     visible_objects=visible_objects,
                                     highlights_dso_list=highlights_dso_list)

    if visible_objects is not None:
        img = base64.b64encode(img_bytes.read()).decode()
        return jsonify(img=img, img_map=visible_objects)
    else:
        return send_file(img_bytes, mimetype='image/png')