def __search_events_snuba(self, request, project): from functools32 import partial from sentry.api.paginator import GenericOffsetPaginator from sentry.api.serializers.models.event import SnubaEvent from sentry.utils.snuba import raw_query query = request.GET.get('query') conditions = [] if query: conditions.append( [['positionCaseInsensitive', ['message', "'%s'" % (query, )]], '!=', 0]) now = timezone.now() data_fn = partial( # extract 'data' from raw_query result lambda *args, **kwargs: raw_query(*args, **kwargs)['data'], start=now - timedelta(days=90), end=now, conditions=conditions, filter_keys={'project_id': [project.id]}, selected_columns=SnubaEvent.selected_columns) return self.paginate(request=request, on_results=lambda results: serialize( [SnubaEvent(row) for row in results], request.user), paginator=GenericOffsetPaginator(data_fn=data_fn))
def get(self, request, organization): try: snuba_args = self.get_snuba_query_args(request, organization) except OrganizationEventsError as exc: return Response({'detail': exc.message}, status=400) except NoProjects: # return empty result if org doesn't have projects # or user doesn't have access to projects in org data_fn = lambda *args, **kwargs: [] else: data_fn = partial( # extract 'data' from raw_query result lambda *args, **kwargs: raw_query(*args, **kwargs)['data'], selected_columns=SnubaEvent.selected_columns, orderby='-timestamp', referrer='api.organization-events', **snuba_args ) return self.paginate( request=request, on_results=lambda results: serialize( [SnubaEvent(row) for row in results], request.user), paginator=GenericOffsetPaginator(data_fn=data_fn) )
def get(self, request, organization): query = request.GET.get('query') conditions = [] if query: conditions.append( [['positionCaseInsensitive', ['message', "'%s'" % (query,)]], '!=', 0]) try: start, end = get_date_range_from_params(request.GET) except InvalidParams as exc: return Response({'detail': exc.message}, status=400) try: project_ids = self.get_project_ids(request, organization) except ValueError: return Response({'detail': 'Invalid project ids'}, status=400) data_fn = partial( # extract 'data' from raw_query result lambda *args, **kwargs: raw_query(*args, **kwargs)['data'], start=start, end=end, conditions=conditions, filter_keys={'project_id': project_ids}, selected_columns=SnubaEvent.selected_columns, orderby='-timestamp', ) return self.paginate( request=request, on_results=lambda results: serialize( [SnubaEvent(row) for row in results], request.user), paginator=GenericOffsetPaginator(data_fn=data_fn) )
def __search_events_snuba(self, request, project): from functools32 import partial from sentry.api.paginator import GenericOffsetPaginator from sentry.api.serializers.models.event import SnubaEvent from sentry.utils.snuba import raw_query query = request.GET.get('query') conditions = [] if query: conditions.append( [['positionCaseInsensitive', ['message', "'%s'" % (query,)]], '!=', 0]) now = timezone.now() data_fn = partial( # extract 'data' from raw_query result lambda *args, **kwargs: raw_query(*args, **kwargs)['data'], start=now - timedelta(days=90), end=now, conditions=conditions, filter_keys={'project_id': [project.id]}, selected_columns=SnubaEvent.selected_columns, orderby='-timestamp', referrer='api.project-events', ) return self.paginate( request=request, on_results=lambda results: serialize( [SnubaEvent(row) for row in results], request.user), paginator=GenericOffsetPaginator(data_fn=data_fn) )
def get(self, request, organization): query = request.GET.get('query') conditions = [] if query: conditions.append(['message', 'LIKE', '%%%s%%' % (query, )]) now = timezone.now() data_fn = partial( # extract 'data' from raw_query result lambda *args, **kwargs: raw_query(*args, **kwargs)['data'], start=now - timedelta(days=90), end=now, conditions=conditions, filter_keys={ 'project_id': self.get_project_ids(request, organization) }, selected_columns=SnubaEvent.selected_columns, orderby='-timestamp', ) return self.paginate(request=request, on_results=lambda results: serialize( [SnubaEvent(row) for row in results], request.user), paginator=GenericOffsetPaginator(data_fn=data_fn))
def __init__(self, train_batch_norm=True): self.layers = [] self.layers.append(snt.Conv2D(16, [5, 5])) self.layers.append( partial(snt.BatchNorm(), is_training=train_batch_norm)) self.layers.append(tf.nn.relu) self.layers.append( partial(tf.nn.max_pool, ksize=[1, 5, 5, 1], strides=[1, 3, 3, 1], padding='SAME')) self.layers.append(snt.Conv2D(8, [5, 5])) self.layers.append( partial(snt.BatchNorm(), is_training=train_batch_norm)) self.layers.append(tf.nn.relu) self.layers.append( partial(tf.nn.max_pool, ksize=[1, 5, 5, 1], strides=[1, 5, 5, 1], padding='SAME')) self.layers.append( partial(snt.BatchNorm(), is_training=train_batch_norm))
def _get_events_snuba(self, request, group, environments, query, tags, start, end): conditions = [] if query: msg_substr = [ 'positionCaseInsensitive', ['message', "'%s'" % (query, )] ] message_condition = [msg_substr, '!=', 0] if is_event_id(query): or_condition = [message_condition, ['event_id', '=', query]] conditions.append(or_condition) else: conditions.append(message_condition) if tags: for tag_name, tag_val in tags.items(): operator = 'IN' if isinstance(tag_val, list) else '=' conditions.append( [u'tags[{}]'.format(tag_name), operator, tag_val]) default_end = timezone.now() default_start = default_end - timedelta(days=90) data_fn = partial( # extract 'data' from raw_query result lambda *args, **kwargs: raw_query(*args, **kwargs)['data'], start=max(start, default_start) if start else default_start, end=min(end, default_end) if end else default_end, conditions=conditions, filter_keys={ 'project_id': [group.project_id], 'issue': [group.id] }, selected_columns=SnubaEvent.selected_columns + ['tags.key', 'tags.value'], orderby='-timestamp', referrer='api.group-events', ) return self.paginate(request=request, on_results=lambda results: serialize( [SnubaEvent(row) for row in results], request.user), paginator=GenericOffsetPaginator(data_fn=data_fn))
def do_query(self, projects, request, **kwargs): requested_query = deepcopy(kwargs) selected_columns = kwargs['selected_columns'] groupby_columns = kwargs['groupby'] if 'project.name' in requested_query['selected_columns']: selected_columns.remove('project.name') if 'project.id' not in selected_columns: selected_columns.append('project.id') if 'project.name' in requested_query['groupby']: groupby_columns.remove('project.name') if 'project.id' not in groupby_columns: groupby_columns.append('project.id') for aggregation in kwargs['aggregations']: if aggregation[1] == 'project.name': aggregation[1] = 'project.id' if not kwargs['aggregations']: data_fn = partial( snuba.transform_aliases_and_query, referrer='discover', **kwargs ) return self.paginate( request=request, on_results=lambda results: self.handle_results(results, requested_query, projects), paginator=GenericOffsetPaginator(data_fn=data_fn), max_per_page=1000 ) else: snuba_results = snuba.transform_aliases_and_query( referrer='discover', **kwargs ) return Response(self.handle_results( snuba_results, requested_query, projects, ), status=200)
def _get_events_snuba(self, request, group, environment, query, tags): conditions = [] if query: msg_substr = [ 'positionCaseInsensitive', ['message', "'%s'" % (query, )] ] message_condition = [msg_substr, '!=', 0] if is_event_id(query): or_condition = [message_condition, ['event_id', '=', query]] conditions.append(or_condition) else: conditions.append(message_condition) if tags: conditions.extend([[u'tags[{}]'.format(k), '=', v] for (k, v) in tags.items()]) now = timezone.now() data_fn = partial( # extract 'data' from raw_query result lambda *args, **kwargs: raw_query(*args, **kwargs)['data'], start=now - timedelta(days=90), end=now, conditions=conditions, filter_keys={ 'project_id': [group.project_id], 'issue': [group.id] }, selected_columns=SnubaEvent.selected_columns + ['tags.key', 'tags.value'], orderby='-timestamp', referrer='api.group-events', ) return self.paginate(request=request, on_results=lambda results: serialize( [SnubaEvent(row) for row in results], request.user), paginator=GenericOffsetPaginator(data_fn=data_fn))
def get(self, request, organization): try: start, end = get_date_range_from_params(request.GET) except InvalidParams as exc: return Response({'detail': exc.message}, status=400) try: project_ids = self.get_project_ids(request, organization) except ValueError: return Response({'detail': 'Invalid project ids'}, status=400) environments = self.get_environments(request, organization) params = { 'start': start, 'end': end, 'project_id': project_ids, } if environments: params['environment'] = environments try: snuba_args = get_snuba_query_args(query=request.GET.get('query'), params=params) except InvalidSearchQuery as exc: return Response({'detail': exc.message}, status=400) data_fn = partial( # extract 'data' from raw_query result lambda *args, **kwargs: raw_query(*args, **kwargs)['data'], selected_columns=SnubaEvent.selected_columns, orderby='-timestamp', referrer='api.organization-events', **snuba_args) return self.paginate(request=request, on_results=lambda results: serialize( [SnubaEvent(row) for row in results], request.user), paginator=GenericOffsetPaginator(data_fn=data_fn))
def __init__(self, train_batch_norm=True): self.layers = [] self.layers.append( snt.Conv2D(output_channels=96, kernel_shape=[11, 11], stride=[4, 4], padding='VALID')) self.layers.append( partial(snt.BatchNorm(), is_training=train_batch_norm)) self.layers.append(tf.nn.relu) self.layers.append( partial(tf.nn.max_pool, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='VALID')) self.layers.append(snt.Conv2D(output_channels=256, kernel_shape=[5, 5])) self.layers.append( partial(snt.BatchNorm(), is_training=train_batch_norm)) self.layers.append(tf.nn.relu) self.layers.append( partial(tf.nn.max_pool, ksize=[1, 3, 3, 1], strides=[1, 2, 2, 1], padding='VALID')) self.layers.append(snt.Conv2D(output_channels=192, kernel_shape=[3, 3])) self.layers.append( partial(snt.BatchNorm(), is_training=train_batch_norm)) self.layers.append(tf.nn.relu) self.layers.append(snt.Conv2D(output_channels=192, kernel_shape=[3, 3])) self.layers.append( partial(snt.BatchNorm(), is_training=train_batch_norm)) self.layers.append(tf.nn.relu) self.layers.append(snt.Conv2D(output_channels=192, kernel_shape=[3, 3])) self.layers.append( partial(snt.BatchNorm(), is_training=train_batch_norm)) self.layers.append(tf.nn.relu)
def get(self, request, organization, key): if not TAG_KEY_RE.match(key): return Response( {'detail': 'Invalid tag key format for "%s"' % (key, )}, status=400) try: filter_params = self.get_filter_params(request, organization) except OrganizationEventsError as exc: return Response({'detail': exc.message}, status=400) query = 'tags_key:%s' % (key, ) try: snuba_args = get_snuba_query_args(query, params=filter_params) except InvalidSearchQuery as exc: return Response({'detail': exc.message}, status=400) data_fn = partial( # extract 'data' from raw_query result lambda *args, **kwargs: raw_query(*args, **kwargs)['data'], aggregations=[ ('count()', '', 'count'), ], orderby='-count', groupby=['tags_value'], referrer='api.organization-tags', **snuba_args) return self.paginate( request=request, on_results=lambda results: [{ 'value': row['tags_value'], 'count': row['count'], } for row in results], paginator=GenericOffsetPaginator(data_fn=data_fn), )
def position_stats(df, name_mapping=None): # print '### position stats' from statsmodels.stats.weightstats import ztest from functools32 import partial, wraps POS = df.position.unique() POS.sort() model = 'value ~ group' allpvals = None header = None DF = None ttest_log_wrap = wraps( partial(ttest_ind_log, equal_var=False))(ttest_ind_log) ttest_ind_nev = wraps( partial(stats.ttest_ind, equal_var=False))(stats.ttest_ind) mwu_test = wraps(partial(stats.mannwhitneyu, use_continuity=False))( stats.mannwhitneyu) bootstrap_sample_num = 1000 # print df stats_test = ttest_ind_nev GROUPS = df.group.unique() # GROUPS = [0,3] for pos in POS: # print pos data = df[df.position == pos] data = data.groupby(['sid']).mean() data = resample_data(data, num_sample_per_pos=BOOTSTRAP_NUM) # print data # print data.group.unique() # data = df[(df.group == 0) | (df.group == 3)] # print data # sys.exit() #cross = smf.ols(model, data=data).fit() #anova = sm.stats.anova_lm(cross, type=1) # print data.group mcp = MultiComparison(data.value, data.group.astype(int)) rtp = mcp.allpairtest(stats_test, method='bonf') mheader = [] for itest in rtp[2]: name1 = itest[0] name2 = itest[1] if name_mapping is not None: name1 = name_mapping[str(name1)] name2 = name_mapping[str(name2)] mheader.append("{} - {}".format(name1, name2)) if not header or len(mheader) > len(header): header = mheader # get the uncorrecte pvals pvals = rtp[1][0][:, 1] ndf = pd.DataFrame(data=[pvals], columns=mheader) if allpvals is None: allpvals = ndf else: allpvals = pd.concat([allpvals, ndf]) # return allpvals # corr_pvals = allpvals # print allpvals # return allpvals flatten = allpvals.values.ravel() flatten = flatten * 2 mcpres = multipletests(flatten, alpha=0.05, method='bonf') # print mcpres corr_pvals = np.array(mcpres[1]) # print corr_pvals corr_pvals = np.reshape(corr_pvals, (len(POS), -1)) # print corr_pvals,corr_pvals.shape,header data = pd.DataFrame(data=corr_pvals, columns=header) data = data[data.columns[:3]] return data
def __get__(self, obj, objtype=None): return partial(self, obj)
def to_meshpoint(meshcode, lat_multiplier, lon_multiplier): """地域メッシュコードから緯度経度を算出する。 下記のメッシュに対応している。 1次(80km四方):1 40倍(40km四方):40000 20倍(20km四方):20000 16倍(16km四方):16000 2次(10km四方):2 8倍(8km四方):8000 5倍(5km四方):5000 4倍(4km四方):4000 2.5倍(2.5km四方):2500 2倍(2km四方):2000 3次(1km四方):3 4次(500m四方):4 5次(250m四方):5 6次(125m四方):6 Args: meshcode: 指定次の地域メッシュコード lat_multiplier: 当該メッシュの基準点(南西端)から、緯度座標上の点の位置を当該メッシュの単位緯度の倍数で指定 lon_multiplier: 当該メッシュの基準点(南西端)から、経度座標上の点の位置を当該メッシュの単位経度の倍数で指定 Return: lat: 世界測地系の緯度(度単位) lon: 世界測地系の経度(度単位) """ def mesh_cord(func_higher_cord, func_unit_cord, func_multiplier): return func_higher_cord() + func_unit_cord() * func_multiplier() lat_multiplier_lv = lambda: lat_multiplier lon_multiplier_lv = lambda: lon_multiplier lat_multiplier_lv1 = _functools.partial( lambda meshcode: int(meshcode[0:2]), meshcode=meshcode) lon_multiplier_lv1 = _functools.partial( lambda meshcode: int(meshcode[2:4]), meshcode=meshcode) lat_multiplier_40000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[4:5])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_40000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[4:5])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) lat_multiplier_20000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[5:6])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_20000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[5:6])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) lat_multiplier_16000 = _functools.partial( lambda meshcode: int(meshcode[4:5])/2, meshcode=meshcode) lon_multiplier_16000 = _functools.partial( lambda meshcode: int(meshcode[5:6])/2, meshcode=meshcode) lat_multiplier_lv2 = _functools.partial( lambda meshcode: int(meshcode[4:5]), meshcode=meshcode) lon_multiplier_lv2 = _functools.partial( lambda meshcode: int(meshcode[5:6]), meshcode=meshcode) lat_multiplier_8000 = _functools.partial( lambda meshcode: int(meshcode[4:5]), meshcode=meshcode) lon_multiplier_8000 = _functools.partial( lambda meshcode: int(meshcode[5:6]), meshcode=meshcode) lat_multiplier_5000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[6:7])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_5000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[6:7])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) lat_multiplier_4000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[7:8])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_4000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[7:8])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) lat_multiplier_2500 = _functools.partial( lambda meshcode: int(bin(int(meshcode[7:8])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_2500 = _functools.partial( lambda meshcode: int(bin(int(meshcode[7:8])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) lat_multiplier_2000 = _functools.partial( lambda meshcode: int(meshcode[6:7])/2, meshcode=meshcode) lon_multiplier_2000 = _functools.partial( lambda meshcode: int(meshcode[7:8])/2, meshcode=meshcode) lat_multiplier_lv3 = _functools.partial( lambda meshcode: int(meshcode[6:7]), meshcode=meshcode) lon_multiplier_lv3 = _functools.partial( lambda meshcode: int(meshcode[7:8]), meshcode=meshcode) lat_multiplier_lv4 = _functools.partial( lambda meshcode: int(bin(int(meshcode[8:9])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_lv4 = _functools.partial( lambda meshcode: int(bin(int(meshcode[8:9])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) lat_multiplier_lv5 = _functools.partial( lambda meshcode: int(bin(int(meshcode[9:10])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_lv5 = _functools.partial( lambda meshcode: int(bin(int(meshcode[9:10])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) lat_multiplier_lv6 = _functools.partial( lambda meshcode: int(bin(int(meshcode[10:11])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_lv6 = _functools.partial( lambda meshcode: int(bin(int(meshcode[10:11])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) mesh_lv1_default_lat = _functools.partial( mesh_cord, func_higher_cord=lambda: 0, func_unit_cord=_unit_lat_lv1, func_multiplier=lat_multiplier_lv1) mesh_lv1_default_lon = _functools.partial( mesh_cord, func_higher_cord=lambda: 100, func_unit_cord=_unit_lon_lv1, func_multiplier=lon_multiplier_lv1) mesh_40000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lat, func_unit_cord=_unit_lat_40000, func_multiplier=lat_multiplier_40000) mesh_40000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lon, func_unit_cord=_unit_lon_40000, func_multiplier=lon_multiplier_40000) mesh_20000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_40000_default_lat, func_unit_cord=_unit_lat_20000, func_multiplier=lat_multiplier_20000) mesh_20000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_40000_default_lon, func_unit_cord=_unit_lon_20000, func_multiplier=lon_multiplier_20000) mesh_16000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lat, func_unit_cord=_unit_lat_16000, func_multiplier=lat_multiplier_16000) mesh_16000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lon, func_unit_cord=_unit_lon_16000, func_multiplier=lon_multiplier_16000) mesh_lv2_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lat, func_unit_cord=_unit_lat_lv2, func_multiplier=lat_multiplier_lv2) mesh_lv2_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lon, func_unit_cord=_unit_lon_lv2, func_multiplier=lon_multiplier_lv2) mesh_8000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lat, func_unit_cord=_unit_lat_8000, func_multiplier=lat_multiplier_8000) mesh_8000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lon, func_unit_cord=_unit_lon_8000, func_multiplier=lon_multiplier_8000) mesh_5000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lat, func_unit_cord=_unit_lat_5000, func_multiplier=lat_multiplier_5000) mesh_5000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lon, func_unit_cord=_unit_lon_5000, func_multiplier=lon_multiplier_5000) mesh_4000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_8000_default_lat, func_unit_cord=_unit_lat_4000, func_multiplier=lat_multiplier_4000) mesh_4000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_8000_default_lon, func_unit_cord=_unit_lon_4000, func_multiplier=lon_multiplier_4000) mesh_2500_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_5000_default_lat, func_unit_cord=_unit_lat_2500, func_multiplier=lat_multiplier_2500) mesh_2500_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_5000_default_lon, func_unit_cord=_unit_lon_2500, func_multiplier=lon_multiplier_2500) mesh_2000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lat, func_unit_cord=_unit_lat_2000, func_multiplier=lat_multiplier_2000) mesh_2000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lon, func_unit_cord=_unit_lon_2000, func_multiplier=lon_multiplier_2000) mesh_lv3_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lat, func_unit_cord=_unit_lat_lv3, func_multiplier=lat_multiplier_lv3) mesh_lv3_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lon, func_unit_cord=_unit_lon_lv3, func_multiplier=lon_multiplier_lv3) mesh_lv4_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lat, func_unit_cord=_unit_lat_lv4, func_multiplier=lat_multiplier_lv4) mesh_lv4_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lon, func_unit_cord=_unit_lon_lv4, func_multiplier=lon_multiplier_lv4) mesh_lv5_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv4_default_lat, func_unit_cord=_unit_lat_lv5, func_multiplier=lat_multiplier_lv5) mesh_lv5_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv4_default_lon, func_unit_cord=_unit_lon_lv5, func_multiplier=lon_multiplier_lv5) mesh_lv6_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv5_default_lat, func_unit_cord=_unit_lat_lv6, func_multiplier=lat_multiplier_lv6) mesh_lv6_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv5_default_lon, func_unit_cord=_unit_lon_lv6, func_multiplier=lon_multiplier_lv6) mesh_lv1_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lat, func_unit_cord=_unit_lat_lv1, func_multiplier=lat_multiplier_lv) mesh_lv1_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lon, func_unit_cord=_unit_lon_lv1, func_multiplier=lon_multiplier_lv) mesh_40000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_40000_default_lat, func_unit_cord=_unit_lat_40000, func_multiplier=lat_multiplier_lv) mesh_40000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_40000_default_lon, func_unit_cord=_unit_lon_40000, func_multiplier=lon_multiplier_lv) mesh_20000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_20000_default_lat, func_unit_cord=_unit_lat_20000, func_multiplier=lat_multiplier_lv) mesh_20000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_20000_default_lon, func_unit_cord=_unit_lon_20000, func_multiplier=lon_multiplier_lv) mesh_16000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_16000_default_lat, func_unit_cord=_unit_lat_16000, func_multiplier=lat_multiplier_lv) mesh_16000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_16000_default_lon, func_unit_cord=_unit_lon_16000, func_multiplier=lon_multiplier_lv) mesh_lv2_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lat, func_unit_cord=_unit_lat_lv2, func_multiplier=lat_multiplier_lv) mesh_lv2_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lon, func_unit_cord=_unit_lon_lv2, func_multiplier=lon_multiplier_lv) mesh_8000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_8000_default_lat, func_unit_cord=_unit_lat_8000, func_multiplier=lat_multiplier_lv) mesh_8000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_8000_default_lon, func_unit_cord=_unit_lon_8000, func_multiplier=lon_multiplier_lv) mesh_5000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_5000_default_lat, func_unit_cord=_unit_lat_5000, func_multiplier=lat_multiplier_lv) mesh_5000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_5000_default_lon, func_unit_cord=_unit_lon_5000, func_multiplier=lon_multiplier_lv) mesh_4000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_4000_default_lat, func_unit_cord=_unit_lat_4000, func_multiplier=lat_multiplier_lv) mesh_4000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_4000_default_lon, func_unit_cord=_unit_lon_4000, func_multiplier=lon_multiplier_lv) mesh_2500_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_2500_default_lat, func_unit_cord=_unit_lat_2500, func_multiplier=lat_multiplier_lv) mesh_2500_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_2500_default_lon, func_unit_cord=_unit_lon_2500, func_multiplier=lon_multiplier_lv) mesh_2000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_2000_default_lat, func_unit_cord=_unit_lat_2000, func_multiplier=lat_multiplier_lv) mesh_2000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_2000_default_lon, func_unit_cord=_unit_lon_2000, func_multiplier=lon_multiplier_lv) mesh_lv3_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lat, func_unit_cord=_unit_lat_lv3, func_multiplier=lat_multiplier_lv) mesh_lv3_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lon, func_unit_cord=_unit_lon_lv3, func_multiplier=lon_multiplier_lv) mesh_lv4_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv4_default_lat, func_unit_cord=_unit_lat_lv4, func_multiplier=lat_multiplier_lv) mesh_lv4_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv4_default_lon, func_unit_cord=_unit_lon_lv4, func_multiplier=lon_multiplier_lv) mesh_lv5_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv5_default_lat, func_unit_cord=_unit_lat_lv5, func_multiplier=lat_multiplier_lv) mesh_lv5_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv5_default_lon, func_unit_cord=_unit_lon_lv5, func_multiplier=lon_multiplier_lv) mesh_lv6_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv6_default_lat, func_unit_cord=_unit_lat_lv6, func_multiplier=lat_multiplier_lv) mesh_lv6_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv6_default_lon, func_unit_cord=_unit_lon_lv6, func_multiplier=lon_multiplier_lv) level = to_meshlevel(meshcode) if level == 1: return mesh_lv1_lat(), mesh_lv1_lon() if level == 40000: return mesh_40000_lat(), mesh_40000_lon() if level == 20000: return mesh_20000_lat(), mesh_20000_lon() if level == 16000: return mesh_16000_lat(), mesh_16000_lon() if level == 2: return mesh_lv2_lat(), mesh_lv2_lon() if level == 8000: return mesh_8000_lat(), mesh_8000_lon() if level == 5000: return mesh_5000_lat(), mesh_5000_lon() if level == 4000: return mesh_4000_lat(), mesh_4000_lon() if level == 2500: return mesh_2500_lat(), mesh_2500_lon() if level == 2000: return mesh_2000_lat(), mesh_2000_lon() if level == 3: return mesh_lv3_lat(), mesh_lv3_lon() if level == 4: return mesh_lv4_lat(), mesh_lv4_lon() if level == 5: return mesh_lv5_lat(), mesh_lv5_lon() if level == 6: return mesh_lv6_lat(), mesh_lv6_lon() raise ValueError("the level is unsupported.")
def to_meshpoint(meshcode, lat_multiplier, lon_multiplier): """地域メッシュコードから緯度経度を算出する。 1次、2次、5倍メッシュ、2倍メッシュ、3次、4次、 5次、6次、100メートルメッシュに対応している。 Args: meshcode: 指定次の地域メッシュコード lat_multiplier: 当該メッシュの基準点(南西端)から、緯度座標上の点の位置を当該メッシュの単位緯度の倍数で指定 lon_multiplier: 当該メッシュの基準点(南西端)から、経度座標上の点の位置を当該メッシュの単位経度の倍数で指定 Return: lat: 世界測地系の緯度(度単位) lon: 世界測地系の経度(度単位) """ def mesh_cord(func_higher_cord, func_unit_cord, func_multiplier): return func_higher_cord() + func_unit_cord() * func_multiplier() lat_multiplier_lv = lambda: lat_multiplier lon_multiplier_lv = lambda: lon_multiplier lat_multiplier_lv1 = _functools.partial( lambda meshcode: int(meshcode[0:2]), meshcode=meshcode) lon_multiplier_lv1 = _functools.partial( lambda meshcode: int(meshcode[2:4]), meshcode=meshcode) lat_multiplier_40000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[4:5])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_40000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[4:5])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) lat_multiplier_20000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[5:6])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_20000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[5:6])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) lat_multiplier_lv2 = _functools.partial( lambda meshcode: int(meshcode[4:5]), meshcode=meshcode) lon_multiplier_lv2 = _functools.partial( lambda meshcode: int(meshcode[5:6]), meshcode=meshcode) lat_multiplier_5000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[6:7])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_5000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[6:7])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) lat_multiplier_2500 = _functools.partial( lambda meshcode: int(bin(int(meshcode[7:8])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_2500 = _functools.partial( lambda meshcode: int(bin(int(meshcode[7:8])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) lat_multiplier_2000 = _functools.partial( lambda meshcode: int(meshcode[6:7])/2, meshcode=meshcode) lon_multiplier_2000 = _functools.partial( lambda meshcode: int(meshcode[7:8])/2, meshcode=meshcode) lat_multiplier_lv3 = _functools.partial( lambda meshcode: int(meshcode[6:7]), meshcode=meshcode) lon_multiplier_lv3 = _functools.partial( lambda meshcode: int(meshcode[7:8]), meshcode=meshcode) lat_multiplier_lv4 = _functools.partial( lambda meshcode: int(bin(int(meshcode[8:9])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_lv4 = _functools.partial( lambda meshcode: int(bin(int(meshcode[8:9])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) lat_multiplier_lv5 = _functools.partial( lambda meshcode: int(bin(int(meshcode[9:10])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_lv5 = _functools.partial( lambda meshcode: int(bin(int(meshcode[9:10])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) lat_multiplier_lv6 = _functools.partial( lambda meshcode: int(bin(int(meshcode[10:11])-1)[2:].zfill(2)[0:1]), meshcode=meshcode) lon_multiplier_lv6 = _functools.partial( lambda meshcode: int(bin(int(meshcode[10:11])-1)[2:].zfill(2)[1:2]), meshcode=meshcode) mesh_lv1_default_lat = _functools.partial( mesh_cord, func_higher_cord=lambda: 0, func_unit_cord=_unit_lat_lv1, func_multiplier=lat_multiplier_lv1) mesh_lv1_default_lon = _functools.partial( mesh_cord, func_higher_cord=lambda: 100, func_unit_cord=_unit_lon_lv1, func_multiplier=lon_multiplier_lv1) mesh_40000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lat, func_unit_cord=_unit_lat_40000, func_multiplier=lat_multiplier_40000) mesh_40000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lon, func_unit_cord=_unit_lon_40000, func_multiplier=lon_multiplier_40000) mesh_20000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_40000_default_lat, func_unit_cord=_unit_lat_20000, func_multiplier=lat_multiplier_20000) mesh_20000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_40000_default_lon, func_unit_cord=_unit_lon_20000, func_multiplier=lon_multiplier_20000) mesh_lv2_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lat, func_unit_cord=_unit_lat_lv2, func_multiplier=lat_multiplier_lv2) mesh_lv2_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lon, func_unit_cord=_unit_lon_lv2, func_multiplier=lon_multiplier_lv2) mesh_5000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lat, func_unit_cord=_unit_lat_5000, func_multiplier=lat_multiplier_5000) mesh_5000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lon, func_unit_cord=_unit_lon_5000, func_multiplier=lon_multiplier_5000) mesh_2500_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_5000_default_lat, func_unit_cord=_unit_lat_2500, func_multiplier=lat_multiplier_2500) mesh_2500_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_5000_default_lon, func_unit_cord=_unit_lon_2500, func_multiplier=lon_multiplier_2500) mesh_2000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lat, func_unit_cord=_unit_lat_2000, func_multiplier=lat_multiplier_2000) mesh_2000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lon, func_unit_cord=_unit_lon_2000, func_multiplier=lon_multiplier_2000) mesh_lv3_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lat, func_unit_cord=_unit_lat_lv3, func_multiplier=lat_multiplier_lv3) mesh_lv3_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lon, func_unit_cord=_unit_lon_lv3, func_multiplier=lon_multiplier_lv3) mesh_lv4_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lat, func_unit_cord=_unit_lat_lv4, func_multiplier=lat_multiplier_lv4) mesh_lv4_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lon, func_unit_cord=_unit_lon_lv4, func_multiplier=lon_multiplier_lv4) mesh_lv5_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv4_default_lat, func_unit_cord=_unit_lat_lv5, func_multiplier=lat_multiplier_lv5) mesh_lv5_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv4_default_lon, func_unit_cord=_unit_lon_lv5, func_multiplier=lon_multiplier_lv5) mesh_lv6_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv5_default_lat, func_unit_cord=_unit_lat_lv6, func_multiplier=lat_multiplier_lv6) mesh_lv6_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv5_default_lon, func_unit_cord=_unit_lon_lv6, func_multiplier=lon_multiplier_lv6) mesh_lv1_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lat, func_unit_cord=_unit_lat_lv1, func_multiplier=lat_multiplier_lv) mesh_lv1_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lon, func_unit_cord=_unit_lon_lv1, func_multiplier=lon_multiplier_lv) mesh_40000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_40000_default_lat, func_unit_cord=_unit_lat_40000, func_multiplier=lat_multiplier_lv) mesh_40000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_40000_default_lon, func_unit_cord=_unit_lon_40000, func_multiplier=lon_multiplier_lv) mesh_20000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_20000_default_lat, func_unit_cord=_unit_lat_20000, func_multiplier=lat_multiplier_lv) mesh_20000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_20000_default_lon, func_unit_cord=_unit_lon_20000, func_multiplier=lon_multiplier_lv) mesh_lv2_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lat, func_unit_cord=_unit_lat_lv2, func_multiplier=lat_multiplier_lv) mesh_lv2_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lon, func_unit_cord=_unit_lon_lv2, func_multiplier=lon_multiplier_lv) mesh_5000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_5000_default_lat, func_unit_cord=_unit_lat_5000, func_multiplier=lat_multiplier_lv) mesh_5000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_5000_default_lon, func_unit_cord=_unit_lon_5000, func_multiplier=lon_multiplier_lv) mesh_2500_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_2500_default_lat, func_unit_cord=_unit_lat_2500, func_multiplier=lat_multiplier_lv) mesh_2500_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_2500_default_lon, func_unit_cord=_unit_lon_2500, func_multiplier=lon_multiplier_lv) mesh_2000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_2000_default_lat, func_unit_cord=_unit_lat_2000, func_multiplier=lat_multiplier_lv) mesh_2000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_2000_default_lon, func_unit_cord=_unit_lon_2000, func_multiplier=lon_multiplier_lv) mesh_lv3_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lat, func_unit_cord=_unit_lat_lv3, func_multiplier=lat_multiplier_lv) mesh_lv3_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lon, func_unit_cord=_unit_lon_lv3, func_multiplier=lon_multiplier_lv) mesh_lv4_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv4_default_lat, func_unit_cord=_unit_lat_lv4, func_multiplier=lat_multiplier_lv) mesh_lv4_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv4_default_lon, func_unit_cord=_unit_lon_lv4, func_multiplier=lon_multiplier_lv) mesh_lv5_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv5_default_lat, func_unit_cord=_unit_lat_lv5, func_multiplier=lat_multiplier_lv) mesh_lv5_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv5_default_lon, func_unit_cord=_unit_lon_lv5, func_multiplier=lon_multiplier_lv) mesh_lv6_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv6_default_lat, func_unit_cord=_unit_lat_lv6, func_multiplier=lat_multiplier_lv) mesh_lv6_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv6_default_lon, func_unit_cord=_unit_lon_lv6, func_multiplier=lon_multiplier_lv) level = to_meshlevel(meshcode) if level == 1: return mesh_lv1_lat(), mesh_lv1_lon() if level == 40000: return mesh_40000_lat(), mesh_40000_lon() if level == 20000: return mesh_20000_lat(), mesh_20000_lon() if level == 2: return mesh_lv2_lat(), mesh_lv2_lon() if level == 5000: return mesh_5000_lat(), mesh_5000_lon() if level == 2500: return mesh_2500_lat(), mesh_2500_lon() if level == 2000: return mesh_2000_lat(), mesh_2000_lon() if level == 3: return mesh_lv3_lat(), mesh_lv3_lon() if level == 4: return mesh_lv4_lat(), mesh_lv4_lon() if level == 5: return mesh_lv5_lat(), mesh_lv5_lon() if level == 6: return mesh_lv6_lat(), mesh_lv6_lon() raise ValueError("the level is unsupported.")
def to_meshpoint(meshcode, lat_multiplier, lon_multiplier): """地域メッシュコードから緯度経度を算出する。 下記のメッシュに対応している。 1次(80km四方):1 40倍(40km四方):40000 20倍(20km四方):20000 16倍(16km四方):16000 2次(10km四方):2 8倍(8km四方):8000 5倍(5km四方):5000 4倍(4km四方):4000 2.5倍(2.5km四方):2500 2倍(2km四方):2000 3次(1km四方):3 4次(500m四方):4 5次(250m四方):5 6次(125m四方):6 0.1倍(100m四方):100 0.01倍(10m四方):10 Args: meshcode: 指定次の地域メッシュコード lat_multiplier: 当該メッシュの基準点(南西端)から、緯度座標上の点の位置を当該メッシュの単位緯度の倍数で指定 lon_multiplier: 当該メッシュの基準点(南西端)から、経度座標上の点の位置を当該メッシュの単位経度の倍数で指定 Return: lat: 世界測地系の緯度(度単位) lon: 世界測地系の経度(度単位) """ meshcode = str(meshcode) def mesh_cord(func_higher_cord, func_unit_cord, func_multiplier): return func_higher_cord() + func_unit_cord() * func_multiplier() lat_multiplier_lv = lambda: lat_multiplier lon_multiplier_lv = lambda: lon_multiplier lat_multiplier_lv1 = _functools.partial(lambda meshcode: int(meshcode[0:2]), meshcode=meshcode) lon_multiplier_lv1 = _functools.partial(lambda meshcode: int(meshcode[2:4]), meshcode=meshcode) lat_multiplier_40000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[4:5]) - 1)[2:].zfill(2)[0:1]), meshcode=meshcode ) lon_multiplier_40000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[4:5]) - 1)[2:].zfill(2)[1:2]), meshcode=meshcode ) lat_multiplier_20000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[5:6]) - 1)[2:].zfill(2)[0:1]), meshcode=meshcode ) lon_multiplier_20000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[5:6]) - 1)[2:].zfill(2)[1:2]), meshcode=meshcode ) lat_multiplier_16000 = _functools.partial(lambda meshcode: int(meshcode[4:5]) / 2, meshcode=meshcode) lon_multiplier_16000 = _functools.partial(lambda meshcode: int(meshcode[5:6]) / 2, meshcode=meshcode) lat_multiplier_lv2 = _functools.partial(lambda meshcode: int(meshcode[4:5]), meshcode=meshcode) lon_multiplier_lv2 = _functools.partial(lambda meshcode: int(meshcode[5:6]), meshcode=meshcode) lat_multiplier_8000 = _functools.partial(lambda meshcode: int(meshcode[4:5]), meshcode=meshcode) lon_multiplier_8000 = _functools.partial(lambda meshcode: int(meshcode[5:6]), meshcode=meshcode) lat_multiplier_5000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[6:7]) - 1)[2:].zfill(2)[0:1]), meshcode=meshcode ) lon_multiplier_5000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[6:7]) - 1)[2:].zfill(2)[1:2]), meshcode=meshcode ) lat_multiplier_4000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[7:8]) - 1)[2:].zfill(2)[0:1]), meshcode=meshcode ) lon_multiplier_4000 = _functools.partial( lambda meshcode: int(bin(int(meshcode[7:8]) - 1)[2:].zfill(2)[1:2]), meshcode=meshcode ) lat_multiplier_2500 = _functools.partial( lambda meshcode: int(bin(int(meshcode[7:8]) - 1)[2:].zfill(2)[0:1]), meshcode=meshcode ) lon_multiplier_2500 = _functools.partial( lambda meshcode: int(bin(int(meshcode[7:8]) - 1)[2:].zfill(2)[1:2]), meshcode=meshcode ) lat_multiplier_2000 = _functools.partial(lambda meshcode: int(meshcode[6:7]) / 2, meshcode=meshcode) lon_multiplier_2000 = _functools.partial(lambda meshcode: int(meshcode[7:8]) / 2, meshcode=meshcode) lat_multiplier_lv3 = _functools.partial(lambda meshcode: int(meshcode[6:7]), meshcode=meshcode) lon_multiplier_lv3 = _functools.partial(lambda meshcode: int(meshcode[7:8]), meshcode=meshcode) lat_multiplier_lv4 = _functools.partial( lambda meshcode: int(bin(int(meshcode[8:9]) - 1)[2:].zfill(2)[0:1]), meshcode=meshcode ) lon_multiplier_lv4 = _functools.partial( lambda meshcode: int(bin(int(meshcode[8:9]) - 1)[2:].zfill(2)[1:2]), meshcode=meshcode ) lat_multiplier_lv5 = _functools.partial( lambda meshcode: int(bin(int(meshcode[9:10]) - 1)[2:].zfill(2)[0:1]), meshcode=meshcode ) lon_multiplier_lv5 = _functools.partial( lambda meshcode: int(bin(int(meshcode[9:10]) - 1)[2:].zfill(2)[1:2]), meshcode=meshcode ) lat_multiplier_lv6 = _functools.partial( lambda meshcode: int(bin(int(meshcode[10:11]) - 1)[2:].zfill(2)[0:1]), meshcode=meshcode ) lon_multiplier_lv6 = _functools.partial( lambda meshcode: int(bin(int(meshcode[10:11]) - 1)[2:].zfill(2)[1:2]), meshcode=meshcode ) lat_multiplier_100 = _functools.partial(lambda meshcode: int(meshcode[8:9]), meshcode=meshcode) lon_multiplier_100 = _functools.partial(lambda meshcode: int(meshcode[9:10]), meshcode=meshcode) lat_multiplier_10 = _functools.partial(lambda meshcode: int(meshcode[10:11]), meshcode=meshcode) lon_multiplier_10 = _functools.partial(lambda meshcode: int(meshcode[11:12]), meshcode=meshcode) mesh_lv1_default_lat = _functools.partial( mesh_cord, func_higher_cord=lambda: 0, func_unit_cord=_unit_lat_lv1, func_multiplier=lat_multiplier_lv1 ) mesh_lv1_default_lon = _functools.partial( mesh_cord, func_higher_cord=lambda: 100, func_unit_cord=_unit_lon_lv1, func_multiplier=lon_multiplier_lv1 ) mesh_40000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lat, func_unit_cord=_unit_lat_40000, func_multiplier=lat_multiplier_40000, ) mesh_40000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lon, func_unit_cord=_unit_lon_40000, func_multiplier=lon_multiplier_40000, ) mesh_20000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_40000_default_lat, func_unit_cord=_unit_lat_20000, func_multiplier=lat_multiplier_20000, ) mesh_20000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_40000_default_lon, func_unit_cord=_unit_lon_20000, func_multiplier=lon_multiplier_20000, ) mesh_16000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lat, func_unit_cord=_unit_lat_16000, func_multiplier=lat_multiplier_16000, ) mesh_16000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lon, func_unit_cord=_unit_lon_16000, func_multiplier=lon_multiplier_16000, ) mesh_lv2_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lat, func_unit_cord=_unit_lat_lv2, func_multiplier=lat_multiplier_lv2, ) mesh_lv2_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lon, func_unit_cord=_unit_lon_lv2, func_multiplier=lon_multiplier_lv2, ) mesh_8000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lat, func_unit_cord=_unit_lat_8000, func_multiplier=lat_multiplier_8000, ) mesh_8000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lon, func_unit_cord=_unit_lon_8000, func_multiplier=lon_multiplier_8000, ) mesh_5000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lat, func_unit_cord=_unit_lat_5000, func_multiplier=lat_multiplier_5000, ) mesh_5000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lon, func_unit_cord=_unit_lon_5000, func_multiplier=lon_multiplier_5000, ) mesh_4000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_8000_default_lat, func_unit_cord=_unit_lat_4000, func_multiplier=lat_multiplier_4000, ) mesh_4000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_8000_default_lon, func_unit_cord=_unit_lon_4000, func_multiplier=lon_multiplier_4000, ) mesh_2500_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_5000_default_lat, func_unit_cord=_unit_lat_2500, func_multiplier=lat_multiplier_2500, ) mesh_2500_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_5000_default_lon, func_unit_cord=_unit_lon_2500, func_multiplier=lon_multiplier_2500, ) mesh_2000_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lat, func_unit_cord=_unit_lat_2000, func_multiplier=lat_multiplier_2000, ) mesh_2000_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lon, func_unit_cord=_unit_lon_2000, func_multiplier=lon_multiplier_2000, ) mesh_lv3_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lat, func_unit_cord=_unit_lat_lv3, func_multiplier=lat_multiplier_lv3, ) mesh_lv3_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lon, func_unit_cord=_unit_lon_lv3, func_multiplier=lon_multiplier_lv3, ) mesh_lv4_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lat, func_unit_cord=_unit_lat_lv4, func_multiplier=lat_multiplier_lv4, ) mesh_lv4_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lon, func_unit_cord=_unit_lon_lv4, func_multiplier=lon_multiplier_lv4, ) mesh_lv5_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv4_default_lat, func_unit_cord=_unit_lat_lv5, func_multiplier=lat_multiplier_lv5, ) mesh_lv5_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv4_default_lon, func_unit_cord=_unit_lon_lv5, func_multiplier=lon_multiplier_lv5, ) mesh_lv6_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv5_default_lat, func_unit_cord=_unit_lat_lv6, func_multiplier=lat_multiplier_lv6, ) mesh_lv6_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv5_default_lon, func_unit_cord=_unit_lon_lv6, func_multiplier=lon_multiplier_lv6, ) mesh_100_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lat, func_unit_cord=_unit_lat_100, func_multiplier=lat_multiplier_100, ) mesh_100_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lon, func_unit_cord=_unit_lon_100, func_multiplier=lon_multiplier_100, ) mesh_10_default_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_100_default_lat, func_unit_cord=_unit_lat_10, func_multiplier=lat_multiplier_10, ) mesh_10_default_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_100_default_lon, func_unit_cord=_unit_lon_10, func_multiplier=lon_multiplier_10, ) mesh_lv1_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lat, func_unit_cord=_unit_lat_lv1, func_multiplier=lat_multiplier_lv, ) mesh_lv1_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv1_default_lon, func_unit_cord=_unit_lon_lv1, func_multiplier=lon_multiplier_lv, ) mesh_40000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_40000_default_lat, func_unit_cord=_unit_lat_40000, func_multiplier=lat_multiplier_lv, ) mesh_40000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_40000_default_lon, func_unit_cord=_unit_lon_40000, func_multiplier=lon_multiplier_lv, ) mesh_20000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_20000_default_lat, func_unit_cord=_unit_lat_20000, func_multiplier=lat_multiplier_lv, ) mesh_20000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_20000_default_lon, func_unit_cord=_unit_lon_20000, func_multiplier=lon_multiplier_lv, ) mesh_16000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_16000_default_lat, func_unit_cord=_unit_lat_16000, func_multiplier=lat_multiplier_lv, ) mesh_16000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_16000_default_lon, func_unit_cord=_unit_lon_16000, func_multiplier=lon_multiplier_lv, ) mesh_lv2_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lat, func_unit_cord=_unit_lat_lv2, func_multiplier=lat_multiplier_lv, ) mesh_lv2_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv2_default_lon, func_unit_cord=_unit_lon_lv2, func_multiplier=lon_multiplier_lv, ) mesh_8000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_8000_default_lat, func_unit_cord=_unit_lat_8000, func_multiplier=lat_multiplier_lv, ) mesh_8000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_8000_default_lon, func_unit_cord=_unit_lon_8000, func_multiplier=lon_multiplier_lv, ) mesh_5000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_5000_default_lat, func_unit_cord=_unit_lat_5000, func_multiplier=lat_multiplier_lv, ) mesh_5000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_5000_default_lon, func_unit_cord=_unit_lon_5000, func_multiplier=lon_multiplier_lv, ) mesh_4000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_4000_default_lat, func_unit_cord=_unit_lat_4000, func_multiplier=lat_multiplier_lv, ) mesh_4000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_4000_default_lon, func_unit_cord=_unit_lon_4000, func_multiplier=lon_multiplier_lv, ) mesh_2500_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_2500_default_lat, func_unit_cord=_unit_lat_2500, func_multiplier=lat_multiplier_lv, ) mesh_2500_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_2500_default_lon, func_unit_cord=_unit_lon_2500, func_multiplier=lon_multiplier_lv, ) mesh_2000_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_2000_default_lat, func_unit_cord=_unit_lat_2000, func_multiplier=lat_multiplier_lv, ) mesh_2000_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_2000_default_lon, func_unit_cord=_unit_lon_2000, func_multiplier=lon_multiplier_lv, ) mesh_lv3_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lat, func_unit_cord=_unit_lat_lv3, func_multiplier=lat_multiplier_lv, ) mesh_lv3_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv3_default_lon, func_unit_cord=_unit_lon_lv3, func_multiplier=lon_multiplier_lv, ) mesh_lv4_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv4_default_lat, func_unit_cord=_unit_lat_lv4, func_multiplier=lat_multiplier_lv, ) mesh_lv4_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv4_default_lon, func_unit_cord=_unit_lon_lv4, func_multiplier=lon_multiplier_lv, ) mesh_lv5_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv5_default_lat, func_unit_cord=_unit_lat_lv5, func_multiplier=lat_multiplier_lv, ) mesh_lv5_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv5_default_lon, func_unit_cord=_unit_lon_lv5, func_multiplier=lon_multiplier_lv, ) mesh_lv6_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_lv6_default_lat, func_unit_cord=_unit_lat_lv6, func_multiplier=lat_multiplier_lv, ) mesh_lv6_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_lv6_default_lon, func_unit_cord=_unit_lon_lv6, func_multiplier=lon_multiplier_lv, ) mesh_100_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_100_default_lat, func_unit_cord=_unit_lat_100, func_multiplier=lat_multiplier_lv, ) mesh_100_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_100_default_lon, func_unit_cord=_unit_lon_100, func_multiplier=lon_multiplier_lv, ) mesh_10_lat = _functools.partial( mesh_cord, func_higher_cord=mesh_10_default_lat, func_unit_cord=_unit_lat_10, func_multiplier=lat_multiplier_lv, ) mesh_10_lon = _functools.partial( mesh_cord, func_higher_cord=mesh_10_default_lon, func_unit_cord=_unit_lon_10, func_multiplier=lon_multiplier_lv, ) level = to_meshlevel(meshcode) if level == 1: return mesh_lv1_lat(), mesh_lv1_lon() if level == 40000: return mesh_40000_lat(), mesh_40000_lon() if level == 20000: return mesh_20000_lat(), mesh_20000_lon() if level == 16000: return mesh_16000_lat(), mesh_16000_lon() if level == 2: return mesh_lv2_lat(), mesh_lv2_lon() if level == 8000: return mesh_8000_lat(), mesh_8000_lon() if level == 5000: return mesh_5000_lat(), mesh_5000_lon() if level == 4000: return mesh_4000_lat(), mesh_4000_lon() if level == 2500: return mesh_2500_lat(), mesh_2500_lon() if level == 2000: return mesh_2000_lat(), mesh_2000_lon() if level == 3: return mesh_lv3_lat(), mesh_lv3_lon() if level == 4: return mesh_lv4_lat(), mesh_lv4_lon() if level == 5: return mesh_lv5_lat(), mesh_lv5_lon() if level == 6: return mesh_lv6_lat(), mesh_lv6_lon() if level == 100: return mesh_100_lat(), mesh_100_lon() if level == 10: return mesh_10_lat(), mesh_10_lon() raise ValueError("the level is unsupported.")