小编gie*_*s0r的帖子

如何阻止传单拖动地图以适应标记弹出窗口?

目前我们正在制作一个带有gmaps的传单项目,我遇到了一些问题.

添加多个标记(每个都有一个弹出窗口)后,我们要打开它们.

为此,我使用以下代码安静:

L.Map = L.Map.extend({
    openPopup: function(popup) {
    //        this.closePopup(); 
    this._popup = popup;

    return this.addLayer(popup).fire('popupopen', {
        popup: this._popup
    });
    }
});
Run Code Online (Sandbox Code Playgroud)

在页面加载上一切都按预期工作.

但是这里出现了失败的情况:

之后pageload,用户zooms in和一些标记是out of the “view area”用户的.

几秒钟后,网站加载new position data(用于标记)using a rest interface.

在发送位置数据之后,我当前移除所有标记并在发送的位置重新创建它们并打开它们.

而这就marker.openPopup()触发了,那map moves就是那个popup fits in the “view area” of the user.

prevent leaflet to drag the map在这种情况下我该怎么办?

javascript leaflet

8
推荐指数
1
解决办法
6358
查看次数

实时更新不同python进程中的DataFrame

因此,假设您有一个 Python 进程,它正在以每秒大约 500 行的速度实时收集来自排队系统的数据(这可以进一步并行化以减少到大约 50 ps)并将其附加到DataFrame

rq = MyRedisQueue(..)
df = pd.DataFrame()
while 1:
    recv = rq.get(block=True)
    # some converting
    df.append(recv, ignore_index = True)
Run Code Online (Sandbox Code Playgroud)

现在的问题是:如何根据这些数据利用 CPU?所以我充分认识到的局限性GIL,看着成多处理管理器 的命名空间这里太,但它看起来像有一些缺点关于延迟的centerally保持数据帧。在深入研究之前,我还尝试pool.map了我认为pickle在进程之间应用的方法,这种方法很慢并且开销太大。

所以在所有这一切之后,我终于想知道,如何(如果)每秒 500 行(甚至每秒 50 行)的插入可以传输到不同的进程,同时还有一些 CPU 时间用于对子项中的数据应用统计和启发式流程?

也许在两个进程之间实现自定义 tcp 套接字或排队系统会更好?或者在pandas其他库中是否有一些实现可以真正允许快速访问父进程中的一个大数据框?我爱熊猫!

dataframe python-3.x pandas python-multiprocessing

8
推荐指数
1
解决办法
530
查看次数

Pycharm pydev 调试器:进程永远连接

/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/bin/python3.6 "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevd.py" --multiproc --qt-support=auto --client 127.0.0.1 --port 55819 --file "/Applications/PyCharm CE.app/Contents/helpers/pycharm/_jb_unittest_runner.py" --target test_output.TestMispOutputBot.test_event
Testing started at 10:31 ...
pydev debugger: process 3170 is connecting
Run Code Online (Sandbox Code Playgroud)

在我放弃并终止进程之前 10 分钟没有输出。

Traceback (most recent call last):
  File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevd.py", line 1599, in <module>
    globals = debugger.run(setup['file'], None, None, is_module)
  File "/Applications/PyCharm CE.app/Contents/helpers/pydev/pydevd.py", line 994, in run
    time.sleep(0.1)  # busy wait until we receive run command
KeyboardInterrupt
Run Code Online (Sandbox Code Playgroud)

我尝试了我发现的有关该错误消息的所有内容:

debugging pydev pycharm python-3.x

7
推荐指数
1
解决办法
1万
查看次数

如何设置导入模块的日志级别?

用漂亮的记录器编写代码

import logging

def init_logging():
     logFormatter = logging.Formatter("[%(asctime)s] %(levelname)s::%(module)s::%(funcName)s() %(message)s")
     rootLogger = logging.getLogger()
     LOG_DIR = os.getcwd() + '/' + 'logs'
     if not os.path.exists(LOG_DIR):
          os.makedirs(LOG_DIR)
     fileHandler = logging.FileHandler("{0}/{1}.log".format(LOG_DIR, "g2"))
     fileHandler.setFormatter(logFormatter)
     rootLogger.addHandler(fileHandler)
     rootLogger.setLevel(logging.DEBUG)
     consoleHandler = logging.StreamHandler()
     consoleHandler.setFormatter(logFormatter)
     rootLogger.addHandler(consoleHandler)
     return rootLogger

logger = init_logging()
Run Code Online (Sandbox Code Playgroud)

按预期工作.使用logger.debug("Hello! :)")日志记录到文件和控制台.

在第二步中,您要导入一个外部模块,该模块也使用日志记录模块进行日志记录:

  1. 使用pip3 install pymisp(或任何其他外部模块)安装它
  2. 使用from pymisp import PyMISP(或任何其他外部模块)导入它
  3. 使用self.pymisp = PyMISP(self.ds_model.api_url, self.ds_model.api_key, False, 'json')(或任何其他...)创建它的对象

现在发生的是,从导入的模块输出的每个调试日志都会记录到日志文件和控制台.现在的问题是,如何为导入的模块设置不同的(更高)日志级别.

python logging python-import python-3.x

6
推荐指数
1
解决办法
3035
查看次数

timedelta64[ns] -&gt; FutureWarning:不推荐传递 timedelta64-dtype 数据,将在未来版本中引发 TypeError

假设df['time']是从类型timedelta64[ns]df['a']以及df['b']从类型float64,这两个系列可以被绘制这样的:

import pandas as pd
import matplotlib.pyplot as plt
fig, axs = plt.subplots(2, sharex=True)

time_values = pd.to_datetime(df['time'])
axs[0].plot(time_values, df['a'])
axs[1].plot(time_values, df['b'])
plt.show()
Run Code Online (Sandbox Code Playgroud)

这有效..但给出了以下警告:

FutureWarning: Passing timedelta64-dtype data is deprecated, will raise a TypeError in a future version
Run Code Online (Sandbox Code Playgroud)

那么应该使用什么来代替在pd.to_datetime中显示timedelta64[ns]为人类可读的时间matplotlib

python plot matplotlib python-3.x pandas

5
推荐指数
1
解决办法
1249
查看次数

Dask:持续提交,处理所有提交的数据

有 500 个,不断增长DataFrames,我想将(对于每个 DataFrame 独立的)数据的操作提交到dask. 我的主要问题是:可以dask保存不断提交的数据,所以我可以submit对所有提交的数据进行函数处理——而不仅仅是新提交的数据?

但是让我们用一个例子来解释它:

创建一个dask_server.py

from dask.distributed import Client, LocalCluster
HOST = '127.0.0.1'
SCHEDULER_PORT = 8711
DASHBOARD_PORT = ':8710'

def run_cluster():
    cluster = LocalCluster(dashboard_address=DASHBOARD_PORT, scheduler_port=SCHEDULER_PORT, n_workers=8)
    print("DASK Cluster Dashboard = http://%s%s/status" % (HOST, DASHBOARD_PORT))
    client = Client(cluster)
    print(client)
    print("Press Enter to quit ...")
    input()

if __name__ == '__main__':
    run_cluster()
Run Code Online (Sandbox Code Playgroud)

现在,我可以从我的连接my_stream.py,并开始submitgather数据:

DASK_CLIENT_IP = '127.0.0.1'
dask_con_string = 'tcp://%s:%s' % (DASK_CLIENT_IP, DASK_CLIENT_PORT)
dask_client …
Run Code Online (Sandbox Code Playgroud)

python-3.x dask dask-distributed streamz

5
推荐指数
1
解决办法
216
查看次数

如何基于http-header content-type的mod_rewrite

是否可以根据HTTP-Header重定向用户content-type

例如:

1)

应用程序正在尝试加载,localhost/res/123/var/abccontent-type设置为:

application/json
Run Code Online (Sandbox Code Playgroud)

服务器应该只将JSON-Result返回给应用程序(已实现).

2)

如果正常的Web浏览器正在访问该URL localhost/res/123/var/abc,则将content-type其设置为:

text/html
Run Code Online (Sandbox Code Playgroud)

在这种情况下,服务器应该重定向浏览器以输出webview(例如index_web.html).

我可以在不使用PHP的情况下实现这样的事情吗

apache .htaccess mod-rewrite json content-type

3
推荐指数
1
解决办法
2898
查看次数

使用JSON的Jersey RESTfull服务

我想将JSON-Post中的值解析为Java-Variables.但他们总是空着的!

JSON-帖子:

{"algID":0,"vertices":[1,2,3]}
Run Code Online (Sandbox Code Playgroud)

我尝试将其解析为Java-Variables:

  @POST
  @Consumes(MediaType.APPLICATION_JSON)
  @Path("getCloseness_vertices")
  public String getCloseness_vertices(
  @FormParam("algID") int algID,
  @FormParam("vertices") IntArray vertices)
Run Code Online (Sandbox Code Playgroud)

如果我这样尝试:

public String getCloseness_vertices(int algID)
Run Code Online (Sandbox Code Playgroud)

Tomcat说:

用于Java类int的消息体读取器,Java类型int和MIME媒体类型application/json; charset =未找到UTF-8.

任何帮助都会很好,我只是不明白.

java parsing json jersey

2
推荐指数
1
解决办法
7634
查看次数

matplotlib pandas:根据另一个列值更改数据点之间的宽度

尽我所能把它放在一张照片中:

matplotlib-set-width-based-on-column

我想增加width具有更高z值的两个数据点之间的此类线的数量。当它们超过某个阈值时将它们涂成红色会很好。

  1. 这可能与 matplotlib 吗?
  2. 或者使用可用于的替代库pd.DataFrame()
  3. 在使用更大的数据集以这种方式绘制时,是否需要记住某些限制?

样机示例:

import pandas as pd
import numpy as np
from datetime import datetime, timedelta

date_today = datetime.now()
days = pd.date_range(date_today, date_today + timedelta(minutes=1), freq='s')

np.random.seed(seed=1111)
y = np.random.randint(10, high=13, size=len(days))
z = np.random.randint(1, high=10, size=len(days))
df = pd.DataFrame({'ts': days, 'y': y, 'z': z})
df = df.set_index('ts')
print(df)

df.y.plot()
Run Code Online (Sandbox Code Playgroud)

data-visualization matplotlib dataframe pandas

2
推荐指数
1
解决办法
251
查看次数

如何找到消耗最多 I/O 的 postgresql 查询

可以说我有iotop这样的观点:

输入/输出顶部

如何找到SELECT硬盘造成如此严重影响的硬盘?

postgresql io query-performance

1
推荐指数
1
解决办法
1971
查看次数